tenacity
Advanced tools
| name: upload release to PyPI | ||
| on: | ||
| release: | ||
| types: | ||
| - published | ||
| jobs: | ||
| pypi-publish: | ||
| name: upload release to PyPI | ||
| runs-on: ubuntu-latest | ||
| environment: release | ||
| permissions: | ||
| id-token: write | ||
| contents: write | ||
| steps: | ||
| - uses: actions/checkout@v4.2.2 | ||
| with: | ||
| fetch-depth: 0 | ||
| fetch-tags: true | ||
| - uses: actions/setup-python@v5.5.0 | ||
| with: | ||
| python-version: 3.13 | ||
| - name: Install build | ||
| run: | | ||
| pip install setuptools-scm wheel | ||
| - name: Build | ||
| run: | | ||
| python setup.py sdist bdist_wheel | ||
| - name: Publish package distributions to PyPI | ||
| uses: pypa/gh-action-pypi-publish@release/v1 |
| --- | ||
| fixes: | ||
| - | | ||
| Added `re.Pattern` to allowed match types. |
@@ -17,8 +17,6 @@ name: Continuous Integration | ||
| timeout-minutes: 20 | ||
| runs-on: ubuntu-20.04 | ||
| runs-on: ubuntu-24.04 | ||
| strategy: | ||
| matrix: | ||
| include: | ||
| - python: "3.8" | ||
| tox: py38 | ||
| - python: "3.9" | ||
@@ -31,5 +29,7 @@ tox: py39 | ||
| - python: "3.12" | ||
| tox: py312,py312-trio | ||
| tox: py312 | ||
| - python: "3.12" | ||
| tox: pep8 | ||
| - python: "3.13" | ||
| tox: py313,py313-trio | ||
| - python: "3.11" | ||
@@ -39,3 +39,3 @@ tox: mypy | ||
| - name: Checkout 🛎️ | ||
| uses: actions/checkout@v4.1.7 | ||
| uses: actions/checkout@v4.2.2 | ||
| with: | ||
@@ -45,3 +45,3 @@ fetch-depth: 0 | ||
| - name: Setup Python 🔧 | ||
| uses: actions/setup-python@v5.1.0 | ||
| uses: actions/setup-python@v5.5.0 | ||
| with: | ||
@@ -48,0 +48,0 @@ python-version: ${{ matrix.python }} |
+2
-2
@@ -13,7 +13,7 @@ queue_rules: | ||
| - author = dependabot[bot] | ||
| - "check-success=test (3.8, py38)" | ||
| - "check-success=test (3.9, py39)" | ||
| - "check-success=test (3.10, py310)" | ||
| - "check-success=test (3.11, py311)" | ||
| - "check-success=test (3.12, py312,py312-trio)" | ||
| - "check-success=test (3.12, py312)" | ||
| - "check-success=test (3.13, py313,py313-trio)" | ||
| - "check-success=test (3.12, pep8)" | ||
@@ -20,0 +20,0 @@ |
+11
-5
@@ -1,4 +0,4 @@ | ||
| Metadata-Version: 2.1 | ||
| Metadata-Version: 2.4 | ||
| Name: tenacity | ||
| Version: 9.0.0 | ||
| Version: 9.1.2 | ||
| Summary: Retry code until it succeeds | ||
@@ -14,3 +14,2 @@ Home-page: https://github.com/jd/tenacity | ||
| Classifier: Programming Language :: Python :: 3 :: Only | ||
| Classifier: Programming Language :: Python :: 3.8 | ||
| Classifier: Programming Language :: Python :: 3.9 | ||
@@ -20,8 +19,15 @@ Classifier: Programming Language :: Python :: 3.10 | ||
| Classifier: Programming Language :: Python :: 3.12 | ||
| Classifier: Programming Language :: Python :: 3.13 | ||
| Classifier: Topic :: Utilities | ||
| Requires-Python: >=3.8 | ||
| Requires-Python: >=3.9 | ||
| License-File: LICENSE | ||
| Provides-Extra: doc | ||
| Requires-Dist: reno; extra == "doc" | ||
| Requires-Dist: sphinx; extra == "doc" | ||
| Provides-Extra: test | ||
| License-File: LICENSE | ||
| Requires-Dist: pytest; extra == "test" | ||
| Requires-Dist: tornado>=4.5; extra == "test" | ||
| Requires-Dist: typeguard; extra == "test" | ||
| Dynamic: license-file | ||
| Tenacity is a general-purpose retrying library to simplify the task of adding retry behavior to just about anything. |
+1
-1
@@ -14,3 +14,3 @@ [build-system] | ||
| indent-width = 4 | ||
| target-version = "py38" | ||
| target-version = "py39" | ||
@@ -17,0 +17,0 @@ [tool.mypy] |
+2
-2
@@ -16,3 +16,2 @@ [metadata] | ||
| Programming Language :: Python :: 3 :: Only | ||
| Programming Language :: Python :: 3.8 | ||
| Programming Language :: Python :: 3.9 | ||
@@ -22,2 +21,3 @@ Programming Language :: Python :: 3.10 | ||
| Programming Language :: Python :: 3.12 | ||
| Programming Language :: Python :: 3.13 | ||
| Topic :: Utilities | ||
@@ -27,3 +27,3 @@ | ||
| install_requires = | ||
| python_requires = >=3.8 | ||
| python_requires = >=3.9 | ||
| packages = find: | ||
@@ -30,0 +30,0 @@ |
@@ -1,4 +0,4 @@ | ||
| Metadata-Version: 2.1 | ||
| Metadata-Version: 2.4 | ||
| Name: tenacity | ||
| Version: 9.0.0 | ||
| Version: 9.1.2 | ||
| Summary: Retry code until it succeeds | ||
@@ -14,3 +14,2 @@ Home-page: https://github.com/jd/tenacity | ||
| Classifier: Programming Language :: Python :: 3 :: Only | ||
| Classifier: Programming Language :: Python :: 3.8 | ||
| Classifier: Programming Language :: Python :: 3.9 | ||
@@ -20,8 +19,15 @@ Classifier: Programming Language :: Python :: 3.10 | ||
| Classifier: Programming Language :: Python :: 3.12 | ||
| Classifier: Programming Language :: Python :: 3.13 | ||
| Classifier: Topic :: Utilities | ||
| Requires-Python: >=3.8 | ||
| Requires-Python: >=3.9 | ||
| License-File: LICENSE | ||
| Provides-Extra: doc | ||
| Requires-Dist: reno; extra == "doc" | ||
| Requires-Dist: sphinx; extra == "doc" | ||
| Provides-Extra: test | ||
| License-File: LICENSE | ||
| Requires-Dist: pytest; extra == "test" | ||
| Requires-Dist: tornado>=4.5; extra == "test" | ||
| Requires-Dist: typeguard; extra == "test" | ||
| Dynamic: license-file | ||
| Tenacity is a general-purpose retrying library to simplify the task of adding retry behavior to just about anything. |
@@ -14,3 +14,3 @@ .editorconfig | ||
| .github/workflows/ci.yaml | ||
| .github/workflows/deploy.yaml | ||
| .github/workflows/release.yml | ||
| doc/source/api.rst | ||
@@ -23,2 +23,3 @@ doc/source/changelog.rst | ||
| releasenotes/notes/add-async-actions-b249c527d99723bb.yaml | ||
| releasenotes/notes/add-re-pattern-to-match-types-6a4c1d9e64e2a5e1.yaml | ||
| releasenotes/notes/add-reno-d1ab5710f272650a.yaml | ||
@@ -25,0 +26,0 @@ releasenotes/notes/add-retry_except_exception_type-31b31da1924d55f4.yaml |
@@ -79,3 +79,3 @@ # Copyright 2016-2018 Julien Danjou | ||
| # Import all built-in after strategies for easier usage. | ||
| # Import all built-in before sleep strategies for easier usage. | ||
| from .before_sleep import before_sleep_log # noqa | ||
@@ -92,2 +92,4 @@ from .before_sleep import before_sleep_nothing # noqa | ||
| from typing_extensions import Self | ||
| from . import asyncio as tasyncio | ||
@@ -260,3 +262,3 @@ from .retry import RetryBaseT | ||
| ] = _unset, | ||
| ) -> "BaseRetrying": | ||
| ) -> "Self": | ||
| """Copy this object with some parameters changed if needed.""" | ||
@@ -263,0 +265,0 @@ return self.__class__( |
@@ -28,3 +28,3 @@ # Copyright 2016 Julien Danjou | ||
| def before_sleep_nothing(retry_state: "RetryCallState") -> None: | ||
| """Before call strategy that does nothing.""" | ||
| """Before sleep strategy that does nothing.""" | ||
@@ -37,3 +37,3 @@ | ||
| ) -> typing.Callable[["RetryCallState"], None]: | ||
| """Before call strategy that logs to some logger the attempt.""" | ||
| """Before sleep strategy that logs to some logger the attempt.""" | ||
@@ -40,0 +40,0 @@ def log_it(retry_state: "RetryCallState") -> None: |
@@ -210,3 +210,3 @@ # Copyright 2016–2021 Julien Danjou | ||
| message: typing.Optional[str] = None, | ||
| match: typing.Optional[str] = None, | ||
| match: typing.Union[None, str, typing.Pattern[str]] = None, | ||
| ) -> None: | ||
@@ -246,3 +246,3 @@ if message and match: | ||
| message: typing.Optional[str] = None, | ||
| match: typing.Optional[str] = None, | ||
| match: typing.Union[None, str, typing.Pattern[str]] = None, | ||
| ) -> None: | ||
@@ -249,0 +249,0 @@ super().__init__(message, match) |
+5
-4
| [tox] | ||
| envlist = py3{8,9,10,11,12,12-trio}, pep8, pypy3 | ||
| # we only test trio on latest python version | ||
| envlist = py3{9,10,11,12,13,13-trio}, pep8, pypy3 | ||
| skip_missing_interpreters = True | ||
@@ -13,5 +14,5 @@ | ||
| commands = | ||
| py3{8,9,10,11,12},pypy3: pytest {posargs} | ||
| py3{8,9,10,11,12},pypy3: sphinx-build -a -E -W -b doctest doc/source doc/build | ||
| py3{8,9,10,11,12},pypy3: sphinx-build -a -E -W -b html doc/source doc/build | ||
| py3{8,9,10,11,12,13},pypy3: pytest {posargs} | ||
| py3{8,9,10,11,12,13},pypy3: sphinx-build -a -E -W -b doctest doc/source doc/build | ||
| py3{8,9,10,11,12,13},pypy3: sphinx-build -a -E -W -b html doc/source doc/build | ||
@@ -18,0 +19,0 @@ [testenv:pep8] |
| name: Release deploy | ||
| on: | ||
| release: | ||
| types: | ||
| - published | ||
| jobs: | ||
| publish: | ||
| timeout-minutes: 20 | ||
| runs-on: ubuntu-latest | ||
| steps: | ||
| - name: Checkout 🛎️ | ||
| uses: actions/checkout@v4.1.7 | ||
| with: | ||
| fetch-depth: 0 | ||
| - name: Setup Python 🔧 | ||
| uses: actions/setup-python@v5.1.0 | ||
| with: | ||
| python-version: 3.11 | ||
| - name: Build 🔧 & Deploy 🚀 | ||
| env: | ||
| PYPI_TOKEN: ${{ secrets.PYPI_TOKEN }} | ||
| run: | | ||
| pip install tox twine wheel | ||
| echo -e "[pypi]" >> ~/.pypirc | ||
| echo -e "username = __token__" >> ~/.pypirc | ||
| echo -e "password = $PYPI_TOKEN" >> ~/.pypirc | ||
| python setup.py sdist bdist_wheel | ||
| twine upload dist/* |
Alert delta unavailable
Currently unable to show alert delta for PyPI packages.
221029
0.31%84
1.2%3737
0.03%