-
-
Notifications
You must be signed in to change notification settings - Fork 282
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Add async strategies #451
Add async strategies #451
Conversation
|
473c081
to
3c5f788
Compare
tenacity/asyncio/retry.py
Outdated
def __init__( | ||
self, predicate: typing.Callable[[typing.Any], typing.Awaitable[bool]] | ||
) -> None: | ||
super().__init__(predicate) # type: ignore[arg-type] |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Is this really needed?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Not strictly, but it helps with the typing, otherwise mypy
and similar tools would complain about async functions.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Right, that does not look good though.
I think self.predicate
is going to have different types than the one defined in retry_base
. I think we might need to not use retry_base
or simply use a different async base.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
That's fair. I mainly wanted to keep it dry and reuse as much as possible. Would you rather have a whole new (mainly copy-paste) async implementation for these cases then?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I think it'd be better. As we started to type everything, I know from experience that trying to be smarter than mypy ends up haunting you at some point.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
hahah fair, done! 927965d
@hasier sorry for the long delay, that PR slipped my mind. Don't hesitate to harass me more for reviews. |
@jd sorry, I've been busy these last few days, could you take another look at my latest comment? 🙏 |
@jd any idea what might be going on with the Tornado tests? https://github.com/jd/tenacity/actions/runs/9347251510/job/25723863307?pr=451 |
I think it's #460 |
@jd seems like a fix has already been merged and released for the Tornado issue. I guess that means you can close #460, as tests should automatically pick the latest version. Could you rerun the checks here as well, please? 🙏 |
@mergify update |
☑️ Nothing to do
|
@hasier can we add a release note? |
Good point @jd, done! Let me know if you want me to amend in any way 🙂 4aa9ccf Also, I just realised finally I only added a base for |
Thanks for the review and merging @jd! 🙇 Are you expecting to release a new version soon? 😁 |
asyncio folder is missing under tenacity when downloaded |
[![Mend Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com) This PR contains the following updates: | Package | Type | Update | Change | Age | Adoption | Passing | Confidence | |---|---|---|---|---|---|---|---| | | | lockFileMaintenance | All locks refreshed | | | | | | [bandit](https://bandit.readthedocs.io/) ([source](https://togithub.com/PyCQA/bandit), [changelog](https://togithub.com/PyCQA/bandit/releases)) | dev | patch | `1.7.8` -> `1.7.9` | [![age](https://developer.mend.io/api/mc/badges/age/pypi/bandit/1.7.9?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://developer.mend.io/api/mc/badges/adoption/pypi/bandit/1.7.9?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://developer.mend.io/api/mc/badges/compatibility/pypi/bandit/1.7.8/1.7.9?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/pypi/bandit/1.7.8/1.7.9?slim=true)](https://docs.renovatebot.com/merge-confidence/) | | [coverage](https://togithub.com/nedbat/coveragepy) | dependencies | patch | `7.5.1` -> `7.5.3` | [![age](https://developer.mend.io/api/mc/badges/age/pypi/coverage/7.5.3?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://developer.mend.io/api/mc/badges/adoption/pypi/coverage/7.5.3?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://developer.mend.io/api/mc/badges/compatibility/pypi/coverage/7.5.1/7.5.3?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/pypi/coverage/7.5.1/7.5.3?slim=true)](https://docs.renovatebot.com/merge-confidence/) | | [importlib-metadata](https://togithub.com/python/importlib_metadata) | dependencies | minor | `7.1.0` -> `7.2.0` | [![age](https://developer.mend.io/api/mc/badges/age/pypi/importlib-metadata/7.2.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://developer.mend.io/api/mc/badges/adoption/pypi/importlib-metadata/7.2.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://developer.mend.io/api/mc/badges/compatibility/pypi/importlib-metadata/7.1.0/7.2.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/pypi/importlib-metadata/7.1.0/7.2.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | | [jellyfish](https://togithub.com/jamesturk/jellyfish) | dependencies | patch | `1.0.3` -> `1.0.4` | [![age](https://developer.mend.io/api/mc/badges/age/pypi/jellyfish/1.0.4?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://developer.mend.io/api/mc/badges/adoption/pypi/jellyfish/1.0.4?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://developer.mend.io/api/mc/badges/compatibility/pypi/jellyfish/1.0.3/1.0.4?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/pypi/jellyfish/1.0.3/1.0.4?slim=true)](https://docs.renovatebot.com/merge-confidence/) | | [pytest](https://togithub.com/pytest-dev/pytest) ([changelog](https://docs.pytest.org/en/stable/changelog.html)) | dev | patch | `8.2.0` -> `8.2.2` | [![age](https://developer.mend.io/api/mc/badges/age/pypi/pytest/8.2.2?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://developer.mend.io/api/mc/badges/adoption/pypi/pytest/8.2.2?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://developer.mend.io/api/mc/badges/compatibility/pypi/pytest/8.2.0/8.2.2?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/pypi/pytest/8.2.0/8.2.2?slim=true)](https://docs.renovatebot.com/merge-confidence/) | | [requests](https://requests.readthedocs.io) ([source](https://togithub.com/psf/requests), [changelog](https://togithub.com/psf/requests/blob/master/HISTORY.md)) | dependencies | minor | `2.31.0` -> `2.32.3` | [![age](https://developer.mend.io/api/mc/badges/age/pypi/requests/2.32.3?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://developer.mend.io/api/mc/badges/adoption/pypi/requests/2.32.3?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://developer.mend.io/api/mc/badges/compatibility/pypi/requests/2.31.0/2.32.3?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/pypi/requests/2.31.0/2.32.3?slim=true)](https://docs.renovatebot.com/merge-confidence/) | | [ruff](https://docs.astral.sh/ruff) ([source](https://togithub.com/astral-sh/ruff), [changelog](https://togithub.com/astral-sh/ruff/blob/main/CHANGELOG.md)) | dev | patch | `0.4.4` -> `0.4.10` | [![age](https://developer.mend.io/api/mc/badges/age/pypi/ruff/0.4.10?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://developer.mend.io/api/mc/badges/adoption/pypi/ruff/0.4.10?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://developer.mend.io/api/mc/badges/compatibility/pypi/ruff/0.4.4/0.4.10?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/pypi/ruff/0.4.4/0.4.10?slim=true)](https://docs.renovatebot.com/merge-confidence/) | | [selenium](https://www.selenium.dev) | dependencies | minor | `4.20.0` -> `4.21.0` | [![age](https://developer.mend.io/api/mc/badges/age/pypi/selenium/4.21.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://developer.mend.io/api/mc/badges/adoption/pypi/selenium/4.21.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://developer.mend.io/api/mc/badges/compatibility/pypi/selenium/4.20.0/4.21.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/pypi/selenium/4.20.0/4.21.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | | [tenacity](https://togithub.com/jd/tenacity) | dependencies | minor | `8.3.0` -> `8.4.1` | [![age](https://developer.mend.io/api/mc/badges/age/pypi/tenacity/8.4.1?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://developer.mend.io/api/mc/badges/adoption/pypi/tenacity/8.4.1?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://developer.mend.io/api/mc/badges/compatibility/pypi/tenacity/8.3.0/8.4.1?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/pypi/tenacity/8.3.0/8.4.1?slim=true)](https://docs.renovatebot.com/merge-confidence/) | 🔧 This Pull Request updates lock files to use the latest dependency versions. --- ### Release Notes <details> <summary>PyCQA/bandit (bandit)</summary> ### [`v1.7.9`](https://togithub.com/PyCQA/bandit/releases/tag/1.7.9) [Compare Source](https://togithub.com/PyCQA/bandit/compare/1.7.8...1.7.9) #### What's Changed - Bump docker/build-push-action from 5.1.0 to 5.2.0 by [@​dependabot](https://togithub.com/dependabot) in [https://github.com/PyCQA/bandit/pull/1117](https://togithub.com/PyCQA/bandit/pull/1117) - \[pre-commit.ci] pre-commit autoupdate by [@​pre-commit-ci](https://togithub.com/pre-commit-ci) in [https://github.com/PyCQA/bandit/pull/1119](https://togithub.com/PyCQA/bandit/pull/1119) - New logo for Bandit based on raccoon by [@​ericwb](https://togithub.com/ericwb) in [https://github.com/PyCQA/bandit/pull/1121](https://togithub.com/PyCQA/bandit/pull/1121) - Start testing on Python 3.13 by [@​ericwb](https://togithub.com/ericwb) in [https://github.com/PyCQA/bandit/pull/1122](https://togithub.com/PyCQA/bandit/pull/1122) - Bump docker/build-push-action from 5.2.0 to 5.3.0 by [@​dependabot](https://togithub.com/dependabot) in [https://github.com/PyCQA/bandit/pull/1123](https://togithub.com/PyCQA/bandit/pull/1123) - Bump docker/setup-buildx-action from 3.1.0 to 3.2.0 by [@​dependabot](https://togithub.com/dependabot) in [https://github.com/PyCQA/bandit/pull/1124](https://togithub.com/PyCQA/bandit/pull/1124) - Bump docker/login-action from 3.0.0 to 3.1.0 by [@​dependabot](https://togithub.com/dependabot) in [https://github.com/PyCQA/bandit/pull/1125](https://togithub.com/PyCQA/bandit/pull/1125) - \[pre-commit.ci] pre-commit autoupdate by [@​pre-commit-ci](https://togithub.com/pre-commit-ci) in [https://github.com/PyCQA/bandit/pull/1126](https://togithub.com/PyCQA/bandit/pull/1126) - \[pre-commit.ci] pre-commit autoupdate by [@​pre-commit-ci](https://togithub.com/pre-commit-ci) in [https://github.com/PyCQA/bandit/pull/1127](https://togithub.com/PyCQA/bandit/pull/1127) - Bump docker/setup-buildx-action from 3.2.0 to 3.3.0 by [@​dependabot](https://togithub.com/dependabot) in [https://github.com/PyCQA/bandit/pull/1130](https://togithub.com/PyCQA/bandit/pull/1130) - \[pre-commit.ci] pre-commit autoupdate by [@​pre-commit-ci](https://togithub.com/pre-commit-ci) in [https://github.com/PyCQA/bandit/pull/1131](https://togithub.com/PyCQA/bandit/pull/1131) - Bump sigstore/cosign-installer from 3.4.0 to 3.5.0 by [@​dependabot](https://togithub.com/dependabot) in [https://github.com/PyCQA/bandit/pull/1132](https://togithub.com/PyCQA/bandit/pull/1132) - \[pre-commit.ci] pre-commit autoupdate by [@​pre-commit-ci](https://togithub.com/pre-commit-ci) in [https://github.com/PyCQA/bandit/pull/1133](https://togithub.com/PyCQA/bandit/pull/1133) - Updates banner logo so it renders well in dark mode by [@​ericwb](https://togithub.com/ericwb) in [https://github.com/PyCQA/bandit/pull/1134](https://togithub.com/PyCQA/bandit/pull/1134) - \[pre-commit.ci] pre-commit autoupdate by [@​pre-commit-ci](https://togithub.com/pre-commit-ci) in [https://github.com/PyCQA/bandit/pull/1135](https://togithub.com/PyCQA/bandit/pull/1135) - Add a sponsor section to README by [@​ericwb](https://togithub.com/ericwb) in [https://github.com/PyCQA/bandit/pull/1137](https://togithub.com/PyCQA/bandit/pull/1137) - Ensure sarif extra is included as part of doc build by [@​ericwb](https://togithub.com/ericwb) in [https://github.com/PyCQA/bandit/pull/1139](https://togithub.com/PyCQA/bandit/pull/1139) - Bump docker/login-action from 3.1.0 to 3.2.0 by [@​dependabot](https://togithub.com/dependabot) in [https://github.com/PyCQA/bandit/pull/1142](https://togithub.com/PyCQA/bandit/pull/1142) - \[pre-commit.ci] pre-commit autoupdate by [@​pre-commit-ci](https://togithub.com/pre-commit-ci) in [https://github.com/PyCQA/bandit/pull/1143](https://togithub.com/PyCQA/bandit/pull/1143) - \[pre-commit.ci] pre-commit autoupdate by [@​pre-commit-ci](https://togithub.com/pre-commit-ci) in [https://github.com/PyCQA/bandit/pull/1145](https://togithub.com/PyCQA/bandit/pull/1145) - Guard against empty call argument list by [@​ericwb](https://togithub.com/ericwb) in [https://github.com/PyCQA/bandit/pull/1146](https://togithub.com/PyCQA/bandit/pull/1146) - Bump docker/build-push-action from 5.3.0 to 5.4.0 by [@​dependabot](https://togithub.com/dependabot) in [https://github.com/PyCQA/bandit/pull/1144](https://togithub.com/PyCQA/bandit/pull/1144) - Support `configfile` in `.bandit` file by [@​bersbersbers](https://togithub.com/bersbersbers) in [https://github.com/PyCQA/bandit/pull/1052](https://togithub.com/PyCQA/bandit/pull/1052) #### New Contributors - [@​pre-commit-ci](https://togithub.com/pre-commit-ci) made their first contribution in [https://github.com/PyCQA/bandit/pull/1119](https://togithub.com/PyCQA/bandit/pull/1119) - [@​bersbersbers](https://togithub.com/bersbersbers) made their first contribution in [https://github.com/PyCQA/bandit/pull/1052](https://togithub.com/PyCQA/bandit/pull/1052) **Full Changelog**: PyCQA/bandit@1.7.8...1.7.9 </details> <details> <summary>nedbat/coveragepy (coverage)</summary> ### [`v7.5.3`](https://togithub.com/nedbat/coveragepy/blob/HEAD/CHANGES.rst#Version-753--2024-05-28) [Compare Source](https://togithub.com/nedbat/coveragepy/compare/7.5.2...7.5.3) - Performance improvements for combining data files, especially when measuring line coverage. A few different quadratic behaviors were eliminated. In one extreme case of combining 700+ data files, the time dropped from more than three hours to seven minutes. Thanks for Kraken Tech for funding the fix. - Performance improvements for generating HTML reports, with a side benefit of reducing memory use, closing `issue 1791`\_. Thanks to Daniel Diniz for helping to diagnose the problem. .. \_issue 1791:[https://github.com/nedbat/coveragepy/issues/1791](https://togithub.com/nedbat/coveragepy/issues/1791)1 .. \_changes\_7-5-2: ### [`v7.5.2`](https://togithub.com/nedbat/coveragepy/blob/HEAD/CHANGES.rst#Version-752--2024-05-24) [Compare Source](https://togithub.com/nedbat/coveragepy/compare/7.5.1...7.5.2) - Fix: nested matches of exclude patterns could exclude too much code, as reported in `issue 1779`\_. This is now fixed. - Changed: previously, coverage.py would consider a module docstring to be an executable statement if it appeared after line 1 in the file, but not executable if it was the first line. Now module docstrings are never counted as executable statements. This can change coverage.py's count of the number of statements in a file, which can slightly change the coverage percentage reported. - In the HTML report, the filter term and "hide covered" checkbox settings are remembered between viewings, thanks to `Daniel Diniz <pull 1776_>`\_. - Python 3.13.0b1 is supported. - Fix: parsing error handling is improved to ensure bizarre source files are handled gracefully, and to unblock oss-fuzz fuzzing, thanks to `Liam DeVoe <pull 1788_>`*. Closes `issue 1787`*. .. \_pull 1776:[https://github.com/nedbat/coveragepy/pull/1776](https://togithub.com/nedbat/coveragepy/pull/1776)6 .. \_issue 1779[https://github.com/nedbat/coveragepy/issues/1779](https://togithub.com/nedbat/coveragepy/issues/1779)79 .. \_issue 178[https://github.com/nedbat/coveragepy/issues/1787](https://togithub.com/nedbat/coveragepy/issues/1787)787 .. \_pull 17[https://github.com/nedbat/coveragepy/pull/1788](https://togithub.com/nedbat/coveragepy/pull/1788)1788 .. \_changes\_7-5-1: </details> <details> <summary>python/importlib_metadata (importlib-metadata)</summary> ### [`v7.2.0`](https://togithub.com/python/importlib_metadata/compare/v7.1.0...v7.2.0) [Compare Source](https://togithub.com/python/importlib_metadata/compare/v7.1.0...v7.2.0) </details> <details> <summary>jamesturk/jellyfish (jellyfish)</summary> ### [`v1.0.4`](https://togithub.com/jamesturk/jellyfish/compare/v1.0.3...v1.0.4) [Compare Source](https://togithub.com/jamesturk/jellyfish/compare/v1.0.3...v1.0.4) </details> <details> <summary>pytest-dev/pytest (pytest)</summary> ### [`v8.2.2`](https://togithub.com/pytest-dev/pytest/releases/tag/8.2.2) [Compare Source](https://togithub.com/pytest-dev/pytest/compare/8.2.1...8.2.2) # pytest 8.2.2 (2024-06-04) ## Bug Fixes - [#​12355](https://togithub.com/pytest-dev/pytest/issues/12355): Fix possible catastrophic performance slowdown on a certain parametrization pattern involving many higher-scoped parameters. - [#​12367](https://togithub.com/pytest-dev/pytest/issues/12367): Fix a regression in pytest 8.2.0 where unittest class instances (a fresh one is created for each test) were not released promptly on test teardown but only on session teardown. - [#​12381](https://togithub.com/pytest-dev/pytest/issues/12381): Fix possible "Directory not empty" crashes arising from concurent cache dir (`.pytest_cache`) creation. Regressed in pytest 8.2.0. ## Improved Documentation - [#​12290](https://togithub.com/pytest-dev/pytest/issues/12290): Updated Sphinx theme to use Furo instead of Flask, enabling Dark mode theme. - [#​12356](https://togithub.com/pytest-dev/pytest/issues/12356): Added a subsection to the documentation for debugging flaky tests to mention lack of thread safety in pytest as a possible source of flakyness. - [#​12363](https://togithub.com/pytest-dev/pytest/issues/12363): The documentation webpages now links to a canonical version to reduce outdated documentation in search engine results. ### [`v8.2.1`](https://togithub.com/pytest-dev/pytest/releases/tag/8.2.1) [Compare Source](https://togithub.com/pytest-dev/pytest/compare/8.2.0...8.2.1) # pytest 8.2.1 (2024-05-19) ## Improvements - [#​12334](https://togithub.com/pytest-dev/pytest/issues/12334): Support for Python 3.13 (beta1 at the time of writing). ## Bug Fixes - [#​12120](https://togithub.com/pytest-dev/pytest/issues/12120): Fix \[PermissionError]{.title-ref} crashes arising from directories which are not selected on the command-line. - [#​12191](https://togithub.com/pytest-dev/pytest/issues/12191): Keyboard interrupts and system exits are now properly handled during the test collection. - [#​12300](https://togithub.com/pytest-dev/pytest/issues/12300): Fixed handling of 'Function not implemented' error under squashfuse_ll, which is a different way to say that the mountpoint is read-only. - [#​12308](https://togithub.com/pytest-dev/pytest/issues/12308): Fix a regression in pytest 8.2.0 where the permissions of automatically-created `.pytest_cache` directories became `rwx------` instead of the expected `rwxr-xr-x`. ## Trivial/Internal Changes - [#​12333](https://togithub.com/pytest-dev/pytest/issues/12333): pytest releases are now attested using the recent [Artifact Attestation](https://github.blog/2024-05-02-introducing-artifact-attestations-now-in-public-beta/) support from GitHub, allowing users to verify the provenance of pytest's sdist and wheel artifacts. </details> <details> <summary>psf/requests (requests)</summary> ### [`v2.32.3`](https://togithub.com/psf/requests/blob/HEAD/HISTORY.md#2323-2024-05-29) [Compare Source](https://togithub.com/psf/requests/compare/v2.32.2...v2.32.3) **Bugfixes** - Fixed bug breaking the ability to specify custom SSLContexts in sub-classes of HTTPAdapter. ([#​6716](https://togithub.com/psf/requests/issues/6716)) - Fixed issue where Requests started failing to run on Python versions compiled without the `ssl` module. ([#​6724](https://togithub.com/psf/requests/issues/6724)) ### [`v2.32.2`](https://togithub.com/psf/requests/blob/HEAD/HISTORY.md#2322-2024-05-21) [Compare Source](https://togithub.com/psf/requests/compare/v2.32.1...v2.32.2) **Deprecations** - To provide a more stable migration for custom HTTPAdapters impacted by the CVE changes in 2.32.0, we've renamed `_get_connection` to a new public API, `get_connection_with_tls_context`. Existing custom HTTPAdapters will need to migrate their code to use this new API. `get_connection` is considered deprecated in all versions of Requests>=2.32.0. A minimal (2-line) example has been provided in the linked PR to ease migration, but we strongly urge users to evaluate if their custom adapter is subject to the same issue described in CVE-2024-35195. ([#​6710](https://togithub.com/psf/requests/issues/6710)) ### [`v2.32.1`](https://togithub.com/psf/requests/blob/HEAD/HISTORY.md#2321-2024-05-20) [Compare Source](https://togithub.com/psf/requests/compare/v2.32.0...v2.32.1) **Bugfixes** - Add missing test certs to the sdist distributed on PyPI. ### [`v2.32.0`](https://togithub.com/psf/requests/blob/HEAD/HISTORY.md#2320-2024-05-20) [Compare Source](https://togithub.com/psf/requests/compare/v2.31.0...v2.32.0) **Security** - Fixed an issue where setting `verify=False` on the first request from a Session will cause subsequent requests to the *same origin* to also ignore cert verification, regardless of the value of `verify`. (GHSA-9wx4-h78v-vm56) **Improvements** - `verify=True` now reuses a global SSLContext which should improve request time variance between first and subsequent requests. It should also minimize certificate load time on Windows systems when using a Python version built with OpenSSL 3.x. ([#​6667](https://togithub.com/psf/requests/issues/6667)) - Requests now supports optional use of character detection (`chardet` or `charset_normalizer`) when repackaged or vendored. This enables `pip` and other projects to minimize their vendoring surface area. The `Response.text()` and `apparent_encoding` APIs will default to `utf-8` if neither library is present. ([#​6702](https://togithub.com/psf/requests/issues/6702)) **Bugfixes** - Fixed bug in length detection where emoji length was incorrectly calculated in the request content-length. ([#​6589](https://togithub.com/psf/requests/issues/6589)) - Fixed deserialization bug in JSONDecodeError. ([#​6629](https://togithub.com/psf/requests/issues/6629)) - Fixed bug where an extra leading `/` (path separator) could lead urllib3 to unnecessarily reparse the request URI. ([#​6644](https://togithub.com/psf/requests/issues/6644)) **Deprecations** - Requests has officially added support for CPython 3.12 ([#​6503](https://togithub.com/psf/requests/issues/6503)) - Requests has officially added support for PyPy 3.9 and 3.10 ([#​6641](https://togithub.com/psf/requests/issues/6641)) - Requests has officially dropped support for CPython 3.7 ([#​6642](https://togithub.com/psf/requests/issues/6642)) - Requests has officially dropped support for PyPy 3.7 and 3.8 ([#​6641](https://togithub.com/psf/requests/issues/6641)) **Documentation** - Various typo fixes and doc improvements. **Packaging** - Requests has started adopting some modern packaging practices. The source files for the projects (formerly `requests`) is now located in `src/requests` in the Requests sdist. ([#​6506](https://togithub.com/psf/requests/issues/6506)) - Starting in Requests 2.33.0, Requests will migrate to a PEP 517 build system using `hatchling`. This should not impact the average user, but extremely old versions of packaging utilities may have issues with the new packaging format. </details> <details> <summary>astral-sh/ruff (ruff)</summary> ### [`v0.4.10`](https://togithub.com/astral-sh/ruff/blob/HEAD/CHANGELOG.md#0410) [Compare Source](https://togithub.com/astral-sh/ruff/compare/v0.4.9...v0.4.10) ##### Parser - Implement re-lexing logic for better error recovery ([#​11845](https://togithub.com/astral-sh/ruff/pull/11845)) ##### Rule changes - \[`flake8-copyright`] Update `CPY001` to check the first 4096 bytes instead of 1024 ([#​11927](https://togithub.com/astral-sh/ruff/pull/11927)) - \[`pycodestyle`] Update `E999` to show all syntax errors instead of just the first one ([#​11900](https://togithub.com/astral-sh/ruff/pull/11900)) ##### Server - Add tracing setup guide to Helix documentation ([#​11883](https://togithub.com/astral-sh/ruff/pull/11883)) - Add tracing setup guide to Neovim documentation ([#​11884](https://togithub.com/astral-sh/ruff/pull/11884)) - Defer notebook cell deletion to avoid an error message ([#​11864](https://togithub.com/astral-sh/ruff/pull/11864)) ##### Security - Guard against malicious ecosystem comment artifacts ([#​11879](https://togithub.com/astral-sh/ruff/pull/11879)) ### [`v0.4.9`](https://togithub.com/astral-sh/ruff/blob/HEAD/CHANGELOG.md#049) [Compare Source](https://togithub.com/astral-sh/ruff/compare/v0.4.8...v0.4.9) ##### Preview features - \[`pylint`] Implement `consider-dict-items` (`C0206`) ([#​11688](https://togithub.com/astral-sh/ruff/pull/11688)) - \[`refurb`] Implement `repeated-global` (`FURB154`) ([#​11187](https://togithub.com/astral-sh/ruff/pull/11187)) ##### Rule changes - \[`pycodestyle`] Adapt fix for `E203` to work identical to `ruff format` ([#​10999](https://togithub.com/astral-sh/ruff/pull/10999)) ##### Formatter - Fix formatter instability for lines only consisting of zero-width characters ([#​11748](https://togithub.com/astral-sh/ruff/pull/11748)) ##### Server - Add supported commands in server capabilities ([#​11850](https://togithub.com/astral-sh/ruff/pull/11850)) - Use real file path when available in `ruff server` ([#​11800](https://togithub.com/astral-sh/ruff/pull/11800)) - Improve error message when a command is run on an unavailable document ([#​11823](https://togithub.com/astral-sh/ruff/pull/11823)) - Introduce the `ruff.printDebugInformation` command ([#​11831](https://togithub.com/astral-sh/ruff/pull/11831)) - Tracing system now respects log level and trace level, with options to log to a file ([#​11747](https://togithub.com/astral-sh/ruff/pull/11747)) ##### CLI - Handle non-printable characters in diff view ([#​11687](https://togithub.com/astral-sh/ruff/pull/11687)) ##### Bug fixes - \[`refurb`] Avoid suggesting starmap when arguments are used outside call (`FURB140`) ([#​11830](https://togithub.com/astral-sh/ruff/pull/11830)) - \[`flake8-bugbear`] Avoid panic in `B909` when checking large loop blocks ([#​11772](https://togithub.com/astral-sh/ruff/pull/11772)) - \[`refurb`] Fix misbehavior of `operator.itemgetter` when getter param is a tuple (`FURB118`) ([#​11774](https://togithub.com/astral-sh/ruff/pull/11774)) ### [`v0.4.8`](https://togithub.com/astral-sh/ruff/blob/HEAD/CHANGELOG.md#048) [Compare Source](https://togithub.com/astral-sh/ruff/compare/v0.4.7...v0.4.8) ##### Performance - Linter performance has been improved by around 10% on some microbenchmarks by refactoring the lexer and parser to maintain synchronicity between them ([#​11457](https://togithub.com/astral-sh/ruff/pull/11457)) ##### Preview features - \[`flake8-bugbear`] Implement `return-in-generator` (`B901`) ([#​11644](https://togithub.com/astral-sh/ruff/pull/11644)) - \[`flake8-pyi`] Implement `PYI063` ([#​11699](https://togithub.com/astral-sh/ruff/pull/11699)) - \[`pygrep_hooks`] Check blanket ignores via file-level pragmas (`PGH004`) ([#​11540](https://togithub.com/astral-sh/ruff/pull/11540)) ##### Rule changes - \[`pyupgrade`] Update `UP035` for Python 3.13 and the latest version of `typing_extensions` ([#​11693](https://togithub.com/astral-sh/ruff/pull/11693)) - \[`numpy`] Update `NPY001` rule for NumPy 2.0 ([#​11735](https://togithub.com/astral-sh/ruff/pull/11735)) ##### Server - Formatting a document with syntax problems no longer spams a visible error popup ([#​11745](https://togithub.com/astral-sh/ruff/pull/11745)) ##### CLI - Add RDJson support for `--output-format` flag ([#​11682](https://togithub.com/astral-sh/ruff/pull/11682)) ##### Bug fixes - \[`pyupgrade`] Write empty string in lieu of panic when fixing `UP032` ([#​11696](https://togithub.com/astral-sh/ruff/pull/11696)) - \[`flake8-simplify`] Simplify double negatives in `SIM103` ([#​11684](https://togithub.com/astral-sh/ruff/pull/11684)) - Ensure the expression generator adds a newline before `type` statements ([#​11720](https://togithub.com/astral-sh/ruff/pull/11720)) - Respect per-file ignores for blanket and redirected noqa rules ([#​11728](https://togithub.com/astral-sh/ruff/pull/11728)) ### [`v0.4.7`](https://togithub.com/astral-sh/ruff/blob/HEAD/CHANGELOG.md#047) [Compare Source](https://togithub.com/astral-sh/ruff/compare/v0.4.6...v0.4.7) ##### Preview features - \[`flake8-pyi`] Implement `PYI064` ([#​11325](https://togithub.com/astral-sh/ruff/pull/11325)) - \[`flake8-pyi`] Implement `PYI066` ([#​11541](https://togithub.com/astral-sh/ruff/pull/11541)) - \[`flake8-pyi`] Implement `PYI057` ([#​11486](https://togithub.com/astral-sh/ruff/pull/11486)) - \[`pyflakes`] Enable `F822` in `__init__.py` files by default ([#​11370](https://togithub.com/astral-sh/ruff/pull/11370)) ##### Formatter - Fix incorrect placement of trailing stub function comments ([#​11632](https://togithub.com/astral-sh/ruff/pull/11632)) ##### Server - Respect file exclusions in `ruff server` ([#​11590](https://togithub.com/astral-sh/ruff/pull/11590)) - Add support for documents not exist on disk ([#​11588](https://togithub.com/astral-sh/ruff/pull/11588)) - Add Vim and Kate setup guide for `ruff server` ([#​11615](https://togithub.com/astral-sh/ruff/pull/11615)) ##### Bug fixes - Avoid removing newlines between docstring headers and rST blocks ([#​11609](https://togithub.com/astral-sh/ruff/pull/11609)) - Infer indentation with imports when logical indent is absent ([#​11608](https://togithub.com/astral-sh/ruff/pull/11608)) - Use char index rather than position for indent slice ([#​11645](https://togithub.com/astral-sh/ruff/pull/11645)) - \[`flake8-comprehension`] Strip parentheses around generators in `C400` ([#​11607](https://togithub.com/astral-sh/ruff/pull/11607)) - Mark `repeated-isinstance-calls` as unsafe on Python 3.10 and later ([#​11622](https://togithub.com/astral-sh/ruff/pull/11622)) ### [`v0.4.6`](https://togithub.com/astral-sh/ruff/blob/HEAD/CHANGELOG.md#046) [Compare Source](https://togithub.com/astral-sh/ruff/compare/v0.4.5...v0.4.6) ##### Breaking changes - Use project-relative paths when calculating GitLab fingerprints ([#​11532](https://togithub.com/astral-sh/ruff/pull/11532)) ##### Preview features - \[`flake8-async`] Sleep with >24 hour interval should usually sleep forever (`ASYNC116`) ([#​11498](https://togithub.com/astral-sh/ruff/pull/11498)) ##### Rule changes - \[`numpy`] Add missing functions to NumPy 2.0 migration rule ([#​11528](https://togithub.com/astral-sh/ruff/pull/11528)) - \[`mccabe`] Consider irrefutable pattern similar to `if .. else` for `C901` ([#​11565](https://togithub.com/astral-sh/ruff/pull/11565)) - Consider `match`-`case` statements for `C901`, `PLR0912`, and `PLR0915` ([#​11521](https://togithub.com/astral-sh/ruff/pull/11521)) - Remove empty strings when converting to f-string (`UP032`) ([#​11524](https://togithub.com/astral-sh/ruff/pull/11524)) - \[`flake8-bandit`] `request-without-timeout` should warn for `requests.request` ([#​11548](https://togithub.com/astral-sh/ruff/pull/11548)) - \[`flake8-self`] Ignore sunder accesses in `flake8-self` rules ([#​11546](https://togithub.com/astral-sh/ruff/pull/11546)) - \[`pyupgrade`] Lint for `TypeAliasType` usages (`UP040`) ([#​11530](https://togithub.com/astral-sh/ruff/pull/11530)) ##### Server - Respect excludes in `ruff server` configuration discovery ([#​11551](https://togithub.com/astral-sh/ruff/pull/11551)) - Use default settings if initialization options is empty or not provided ([#​11566](https://togithub.com/astral-sh/ruff/pull/11566)) - `ruff server` correctly treats `.pyi` files as stub files ([#​11535](https://togithub.com/astral-sh/ruff/pull/11535)) - `ruff server` searches for configuration in parent directories ([#​11537](https://togithub.com/astral-sh/ruff/pull/11537)) - `ruff server`: An empty code action filter no longer returns notebook source actions ([#​11526](https://togithub.com/astral-sh/ruff/pull/11526)) ##### Bug fixes - \[`flake8-logging-format`] Fix autofix title in `logging-warn` (`G010`) ([#​11514](https://togithub.com/astral-sh/ruff/pull/11514)) - \[`refurb`] Avoid recommending `operator.itemgetter` with dependence on lambda arguments ([#​11574](https://togithub.com/astral-sh/ruff/pull/11574)) - \[`flake8-simplify`] Avoid recommending context manager in `__enter__` implementations ([#​11575](https://togithub.com/astral-sh/ruff/pull/11575)) - Create intermediary directories for `--output-file` ([#​11550](https://togithub.com/astral-sh/ruff/pull/11550)) - Propagate reads on global variables ([#​11584](https://togithub.com/astral-sh/ruff/pull/11584)) - Treat all `singledispatch` arguments as runtime-required ([#​11523](https://togithub.com/astral-sh/ruff/pull/11523)) ### [`v0.4.5`](https://togithub.com/astral-sh/ruff/blob/HEAD/CHANGELOG.md#045) [Compare Source](https://togithub.com/astral-sh/ruff/compare/v0.4.4...v0.4.5) ##### Ruff's language server is now in Beta `v0.4.5` marks the official Beta release of `ruff server`, an integrated language server built into Ruff. `ruff server` supports the same feature set as `ruff-lsp`, powering linting, formatting, and code fixes in Ruff's editor integrations -- but with superior performance and no installation required. We'd love your feedback! You can enable `ruff server` in the [VS Code extension](https://togithub.com/astral-sh/ruff-vscode?tab=readme-ov-file#enabling-the-rust-based-language-server) today. To read more about this exciting milestone, check out our [blog post](https://astral.sh/blog/ruff-v0.4.5)! ##### Rule changes - \[`flake8-future-annotations`] Reword `future-rewritable-type-annotation` (`FA100`) message ([#​11381](https://togithub.com/astral-sh/ruff/pull/11381)) - \[`pycodestyle`] Consider soft keywords for `E27` rules ([#​11446](https://togithub.com/astral-sh/ruff/pull/11446)) - \[`pyflakes`] Recommend adding unused import bindings to `__all__` ([#​11314](https://togithub.com/astral-sh/ruff/pull/11314)) - \[`pyflakes`] Update documentation and deprecate `ignore_init_module_imports` ([#​11436](https://togithub.com/astral-sh/ruff/pull/11436)) - \[`pyupgrade`] Mark quotes as unnecessary for non-evaluated annotations ([#​11485](https://togithub.com/astral-sh/ruff/pull/11485)) ##### Formatter - Avoid multiline quotes warning with `quote-style = preserve` ([#​11490](https://togithub.com/astral-sh/ruff/pull/11490)) ##### Server - Support Jupyter Notebook files ([#​11206](https://togithub.com/astral-sh/ruff/pull/11206)) - Support `noqa` comment code actions ([#​11276](https://togithub.com/astral-sh/ruff/pull/11276)) - Fix automatic configuration reloading ([#​11492](https://togithub.com/astral-sh/ruff/pull/11492)) - Fix several issues with configuration in Neovim and Helix ([#​11497](https://togithub.com/astral-sh/ruff/pull/11497)) ##### CLI - Add `--output-format` as a CLI option for `ruff config` ([#​11438](https://togithub.com/astral-sh/ruff/pull/11438)) ##### Bug fixes - Avoid `PLE0237` for property with setter ([#​11377](https://togithub.com/astral-sh/ruff/pull/11377)) - Avoid `TCH005` for `if` stmt with `elif`/`else` block ([#​11376](https://togithub.com/astral-sh/ruff/pull/11376)) - Avoid flagging `__future__` annotations as required for non-evaluated type annotations ([#​11414](https://togithub.com/astral-sh/ruff/pull/11414)) - Check for ruff executable in 'bin' directory as installed by 'pip install --target'. ([#​11450](https://togithub.com/astral-sh/ruff/pull/11450)) - Sort edits prior to deduplicating in quotation fix ([#​11452](https://togithub.com/astral-sh/ruff/pull/11452)) - Treat escaped newline as valid sequence ([#​11465](https://togithub.com/astral-sh/ruff/pull/11465)) - \[`flake8-pie`] Preserve parentheses in `unnecessary-dict-kwargs` ([#​11372](https://togithub.com/astral-sh/ruff/pull/11372)) - \[`pylint`] Ignore `__slots__` with dynamic values ([#​11488](https://togithub.com/astral-sh/ruff/pull/11488)) - \[`pylint`] Remove `try` body from branch counting ([#​11487](https://togithub.com/astral-sh/ruff/pull/11487)) - \[`refurb`] Respect operator precedence in `FURB110` ([#​11464](https://togithub.com/astral-sh/ruff/pull/11464)) ##### Documentation - Add `--preview` to the README ([#​11395](https://togithub.com/astral-sh/ruff/pull/11395)) - Add Python 3.13 to list of allowed Python versions ([#​11411](https://togithub.com/astral-sh/ruff/pull/11411)) - Simplify Neovim setup documentation ([#​11489](https://togithub.com/astral-sh/ruff/pull/11489)) - Update CONTRIBUTING.md to reflect the new parser ([#​11434](https://togithub.com/astral-sh/ruff/pull/11434)) - Update server documentation with new migration guide ([#​11499](https://togithub.com/astral-sh/ruff/pull/11499)) - \[`pycodestyle`] Clarify motivation for `E713` and `E714` ([#​11483](https://togithub.com/astral-sh/ruff/pull/11483)) - \[`pyflakes`] Update docs to describe WAI behavior (F541) ([#​11362](https://togithub.com/astral-sh/ruff/pull/11362)) - \[`pylint`] Clearly indicate what is counted as a branch ([#​11423](https://togithub.com/astral-sh/ruff/pull/11423)) </details> <details> <summary>jd/tenacity (tenacity)</summary> ### [`v8.4.1`](https://togithub.com/jd/tenacity/releases/tag/8.4.1): tenacity 8.4.1 [Compare Source](https://togithub.com/jd/tenacity/compare/8.4.0...8.4.1) #### What's Changed - Include `tenacity.asyncio` subpackage in release dist by [@​cdce8p](https://togithub.com/cdce8p) in [https://github.com/jd/tenacity/pull/474](https://togithub.com/jd/tenacity/pull/474) **Full Changelog**: jd/tenacity@8.4.0...8.4.1 ### [`v8.4.0`](https://togithub.com/jd/tenacity/releases/tag/8.4.0): tenacity 8.4.0 [Compare Source](https://togithub.com/jd/tenacity/compare/8.3.0...8.4.0) #### What's Changed - Add async strategies by [@​hasier](https://togithub.com/hasier) in [https://github.com/jd/tenacity/pull/451](https://togithub.com/jd/tenacity/pull/451) - Support Trio out-of-the-box by [@​jakkdl](https://togithub.com/jakkdl) in [https://github.com/jd/tenacity/pull/463](https://togithub.com/jd/tenacity/pull/463) **Full Changelog**: jd/tenacity@8.3.0...8.4.0 </details> --- ### Configuration 📅 **Schedule**: Branch creation - "before 4am on monday" in timezone America/Los_Angeles, Automerge - At any time (no schedule defined). 🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied. ♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox. 👻 **Immortal**: This PR will be recreated if closed unmerged. Get [config help](https://togithub.com/renovatebot/renovate/discussions) if that's undesired. --- - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box --- This PR has been generated by [Mend Renovate](https://www.mend.io/free-developer-tools/renovate/). View repository job log [here](https://developer.mend.io/github/cerebrotech/cucu). <!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNy40MTMuMiIsInVwZGF0ZWRJblZlciI6IjM3LjQxMy4yIiwidGFyZ2V0QnJhbmNoIjoibWFpbiIsImxhYmVscyI6W119--> Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
This PR contains the following updates: | Package | Change | Age | Adoption | Passing | Confidence | |---|---|---|---|---|---| | [aws-lambda-powertools](https://togithub.com/aws-powertools/powertools-lambda-python) ([changelog](https://togithub.com/aws-powertools/powertools-lambda-python/releases)) | `2.38.1` -> `2.43.1` | [![age](https://developer.mend.io/api/mc/badges/age/pypi/aws-lambda-powertools/2.43.1?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://developer.mend.io/api/mc/badges/adoption/pypi/aws-lambda-powertools/2.43.1?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://developer.mend.io/api/mc/badges/compatibility/pypi/aws-lambda-powertools/2.38.1/2.43.1?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/pypi/aws-lambda-powertools/2.38.1/2.43.1?slim=true)](https://docs.renovatebot.com/merge-confidence/) | | [awswrangler](https://aws-sdk-pandas.readthedocs.io/) ([source](https://togithub.com/aws/aws-sdk-pandas)) | `3.7.3` -> `3.9.1` | [![age](https://developer.mend.io/api/mc/badges/age/pypi/awswrangler/3.9.1?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://developer.mend.io/api/mc/badges/adoption/pypi/awswrangler/3.9.1?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://developer.mend.io/api/mc/badges/compatibility/pypi/awswrangler/3.7.3/3.9.1?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/pypi/awswrangler/3.7.3/3.9.1?slim=true)](https://docs.renovatebot.com/merge-confidence/) | | [openai](https://togithub.com/openai/openai-python) | `1.34.0` -> `1.43.0` | [![age](https://developer.mend.io/api/mc/badges/age/pypi/openai/1.43.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://developer.mend.io/api/mc/badges/adoption/pypi/openai/1.43.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://developer.mend.io/api/mc/badges/compatibility/pypi/openai/1.34.0/1.43.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/pypi/openai/1.34.0/1.43.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | | [tenacity](https://togithub.com/jd/tenacity) | `8.3.0` -> `8.5.0` | [![age](https://developer.mend.io/api/mc/badges/age/pypi/tenacity/8.5.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://developer.mend.io/api/mc/badges/adoption/pypi/tenacity/8.5.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://developer.mend.io/api/mc/badges/compatibility/pypi/tenacity/8.3.0/8.5.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/pypi/tenacity/8.3.0/8.5.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | --- ### Release Notes <details> <summary>aws-powertools/powertools-lambda-python (aws-lambda-powertools)</summary> ### [`v2.43.1`](https://togithub.com/aws-powertools/powertools-lambda-python/blob/HEAD/CHANGELOG.md#v2431---2024-08-12) [Compare Source](https://togithub.com/aws-powertools/powertools-lambda-python/compare/v2.43.0...v2.43.1) #### \[v2.43.1] - 2024-08-12 ### [`v2.43.0`](https://togithub.com/aws-powertools/powertools-lambda-python/blob/HEAD/CHANGELOG.md#v2430---2024-08-08) [Compare Source](https://togithub.com/aws-powertools/powertools-lambda-python/compare/v2.42.0...v2.43.0) #### \[v2.43.0] - 2024-08-08 ### [`v2.42.0`](https://togithub.com/aws-powertools/powertools-lambda-python/blob/HEAD/CHANGELOG.md#v2420---2024-07-25) [Compare Source](https://togithub.com/aws-powertools/powertools-lambda-python/compare/v2.41.0...v2.42.0) #### \[v2.42.0] - 2024-07-25 ### [`v2.41.0`](https://togithub.com/aws-powertools/powertools-lambda-python/blob/HEAD/CHANGELOG.md#v2410---2024-07-11) [Compare Source](https://togithub.com/aws-powertools/powertools-lambda-python/compare/v2.40.1...v2.41.0) #### \[v2.41.0] - 2024-07-11 ### [`v2.40.1`](https://togithub.com/aws-powertools/powertools-lambda-python/blob/HEAD/CHANGELOG.md#v2401---2024-06-28) [Compare Source](https://togithub.com/aws-powertools/powertools-lambda-python/compare/v2.40.0...v2.40.1) #### \[v2.40.1] - 2024-06-28 ### [`v2.40.0`](https://togithub.com/aws-powertools/powertools-lambda-python/blob/HEAD/CHANGELOG.md#v2400---2024-06-27) [Compare Source](https://togithub.com/aws-powertools/powertools-lambda-python/compare/v2.39.1...v2.40.0) #### \[v2.40.0] - 2024-06-27 ### [`v2.39.1`](https://togithub.com/aws-powertools/powertools-lambda-python/blob/HEAD/CHANGELOG.md#v2391---2024-06-13) [Compare Source](https://togithub.com/aws-powertools/powertools-lambda-python/compare/v2.39.0...v2.39.1) #### \[v2.39.1] - 2024-06-13 ### [`v2.39.0`](https://togithub.com/aws-powertools/powertools-lambda-python/blob/HEAD/CHANGELOG.md#v2390---2024-06-13) [Compare Source](https://togithub.com/aws-powertools/powertools-lambda-python/compare/v2.38.1...v2.39.0) #### \[v2.39.0] - 2024-06-13 </details> <details> <summary>aws/aws-sdk-pandas (awswrangler)</summary> ### [`v3.9.1`](https://togithub.com/aws/aws-sdk-pandas/releases/tag/3.9.1): AWS SDK for pandas 3.9.1 [Compare Source](https://togithub.com/aws/aws-sdk-pandas/compare/3.9.0...3.9.1) #### Bug fixes 🐛 - bucketing error with newer version of Modin (0.31.0) by [@​LeonLuttenberger](https://togithub.com/LeonLuttenberger) in [https://github.com/aws/aws-sdk-pandas/pull/2896](https://togithub.com/aws/aws-sdk-pandas/pull/2896) - `athena.read_sql_query` failing for time columns by [@​LeonLuttenberger](https://togithub.com/LeonLuttenberger) in [https://github.com/aws/aws-sdk-pandas/pull/2895](https://togithub.com/aws/aws-sdk-pandas/pull/2895) - add an argument to control handling nulls in merge criteria by [@​brendan-cook-87](https://togithub.com/brendan-cook-87) in [https://github.com/aws/aws-sdk-pandas/pull/2892](https://togithub.com/aws/aws-sdk-pandas/pull/2892) - address Ray deprecation warnings by [@​LeonLuttenberger](https://togithub.com/LeonLuttenberger) in [https://github.com/aws/aws-sdk-pandas/pull/2929](https://togithub.com/aws/aws-sdk-pandas/pull/2929) - Add deprecation notice to `s3.select_query` by [@​LeonLuttenberger](https://togithub.com/LeonLuttenberger) in [https://github.com/aws/aws-sdk-pandas/pull/2928](https://togithub.com/aws/aws-sdk-pandas/pull/2928) #### Documentation 📚 - Add steps to install "using pip" to the "AWS Glue Python Shell Jobs" part of the install docs by [@​mc51](https://togithub.com/mc51) in [https://github.com/aws/aws-sdk-pandas/pull/2911](https://togithub.com/aws/aws-sdk-pandas/pull/2911) #### Security Dependency Updates 🛡️ - bump aiohttp from 3.10.1 to 3.10.2 by [@​dependabot](https://togithub.com/dependabot) in [https://github.com/aws/aws-sdk-pandas/pull/2930](https://togithub.com/aws/aws-sdk-pandas/pull/2930) #### New Contributors - [@​brendan-cook-87](https://togithub.com/brendan-cook-87) made their first contribution in [https://github.com/aws/aws-sdk-pandas/pull/2892](https://togithub.com/aws/aws-sdk-pandas/pull/2892) **Full Changelog**: aws/aws-sdk-pandas@3.9.0...3.9.1 ### [`v3.9.0`](https://togithub.com/aws/aws-sdk-pandas/releases/tag/3.9.0): AWS SDK for pandas 3.9.0 [Compare Source](https://togithub.com/aws/aws-sdk-pandas/compare/3.8.0...3.9.0) #### Enhancements 🎉 - Support ORC and CSV in `redshift.copy_from_files` function by [@​LeonLuttenberger](https://togithub.com/LeonLuttenberger) in [https://github.com/aws/aws-sdk-pandas/pull/2849](https://togithub.com/aws/aws-sdk-pandas/pull/2849) - Support different merge conditions in `athena.to_iceberg` function by [@​aldder](https://togithub.com/aldder) in [https://github.com/aws/aws-sdk-pandas/pull/2861](https://togithub.com/aws/aws-sdk-pandas/pull/2861) - Manage `NULL` values in `athena.to_iceberg` merge statement by [@​aldder](https://togithub.com/aldder) in [https://github.com/aws/aws-sdk-pandas/pull/2872](https://togithub.com/aws/aws-sdk-pandas/pull/2872) - Upgrade Ray to 2.30 by [@​jaidisido](https://togithub.com/jaidisido) in [https://github.com/aws/aws-sdk-pandas/pull/2870](https://togithub.com/aws/aws-sdk-pandas/pull/2870) #### Bug fixes 🐛 - Fix `tz` attribute check, it was checking `dtype` instead of `dt` by [@​sanrodari](https://togithub.com/sanrodari) in [https://github.com/aws/aws-sdk-pandas/pull/2855](https://togithub.com/aws/aws-sdk-pandas/pull/2855) - PyArrow backend trimming timestamp to date by [@​LeonLuttenberger](https://togithub.com/LeonLuttenberger) in [https://github.com/aws/aws-sdk-pandas/pull/2875](https://togithub.com/aws/aws-sdk-pandas/pull/2875) - Replace deprecated ray parallelism arg with override_num_blocks by [@​kukushking](https://togithub.com/kukushking) in [https://github.com/aws/aws-sdk-pandas/pull/2876](https://togithub.com/aws/aws-sdk-pandas/pull/2876) #### Documentation 📚 - Adding NotebookVersion Parameter as specified in official AWS Docs by [@​DaxterXS](https://togithub.com/DaxterXS) in [https://github.com/aws/aws-sdk-pandas/pull/2867](https://togithub.com/aws/aws-sdk-pandas/pull/2867) - Fix default value in doc string for athena_query_wait_polling_delay parameters by [@​niklasr22](https://togithub.com/niklasr22) in [https://github.com/aws/aws-sdk-pandas/pull/2873](https://togithub.com/aws/aws-sdk-pandas/pull/2873) #### Security Dependency Updates 🛡️ - Bump urllib3 from 1.26.18 to 1.26.19 by [@​dependabot](https://togithub.com/dependabot) in [https://github.com/aws/aws-sdk-pandas/pull/2859](https://togithub.com/aws/aws-sdk-pandas/pull/2859) - Bump certifi from 2024.6.2 to 2024.7.4 by [@​dependabot](https://togithub.com/dependabot) in [https://github.com/aws/aws-sdk-pandas/pull/2886](https://togithub.com/aws/aws-sdk-pandas/pull/2886) #### New Contributors - [@​aldder](https://togithub.com/aldder) made their first contribution in [https://github.com/aws/aws-sdk-pandas/pull/2861](https://togithub.com/aws/aws-sdk-pandas/pull/2861) - [@​DaxterXS](https://togithub.com/DaxterXS) made their first contribution in [https://github.com/aws/aws-sdk-pandas/pull/2867](https://togithub.com/aws/aws-sdk-pandas/pull/2867) - [@​sanrodari](https://togithub.com/sanrodari) made their first contribution in [https://github.com/aws/aws-sdk-pandas/pull/2855](https://togithub.com/aws/aws-sdk-pandas/pull/2855) - [@​niklasr22](https://togithub.com/niklasr22) made their first contribution in [https://github.com/aws/aws-sdk-pandas/pull/2873](https://togithub.com/aws/aws-sdk-pandas/pull/2873) **Full Changelog**: aws/aws-sdk-pandas@3.8.0...3.9.0 ### [`v3.8.0`](https://togithub.com/aws/aws-sdk-pandas/releases/tag/3.8.0): AWS SDK for pandas 3.8.0 [Compare Source](https://togithub.com/aws/aws-sdk-pandas/compare/3.7.3...3.8.0) #### Enhancements 🎉 - support client-side parameter resolution in athena.create_ctas_table by [@​LeonLuttenberger](https://togithub.com/LeonLuttenberger) in [https://github.com/aws/aws-sdk-pandas/pull/2797](https://togithub.com/aws/aws-sdk-pandas/pull/2797) - add commit_transaction to postgres.to_sql by [@​jaidisido](https://togithub.com/jaidisido) in [https://github.com/aws/aws-sdk-pandas/pull/2795](https://togithub.com/aws/aws-sdk-pandas/pull/2795) - add columns parameters support by [@​jaidisido](https://togithub.com/jaidisido) in [https://github.com/aws/aws-sdk-pandas/pull/2814](https://togithub.com/aws/aws-sdk-pandas/pull/2814) - add overwrite_method to `postgresql.to_sql` by [@​LeonLuttenberger](https://togithub.com/LeonLuttenberger) in [https://github.com/aws/aws-sdk-pandas/pull/2820](https://togithub.com/aws/aws-sdk-pandas/pull/2820) - add upsert mode to sqlserver.py and corresponding tests by [@​AntonMantulo](https://togithub.com/AntonMantulo) in [https://github.com/aws/aws-sdk-pandas/pull/2835](https://togithub.com/aws/aws-sdk-pandas/pull/2835) #### Bug fixes 🐛 - correct athena timezone TypeError message by [@​jaidisido](https://togithub.com/jaidisido) in [https://github.com/aws/aws-sdk-pandas/pull/2796](https://togithub.com/aws/aws-sdk-pandas/pull/2796) - update license reference by [@​emmanuel-ferdman](https://togithub.com/emmanuel-ferdman) in [https://github.com/aws/aws-sdk-pandas/pull/2798](https://togithub.com/aws/aws-sdk-pandas/pull/2798) - add missing index in athena.to_iceberg to_parquet by [@​jaidisido](https://togithub.com/jaidisido) in [https://github.com/aws/aws-sdk-pandas/pull/2799](https://togithub.com/aws/aws-sdk-pandas/pull/2799) - support json type in athena2pandas by [@​DavidKatz-il](https://togithub.com/DavidKatz-il) in [https://github.com/aws/aws-sdk-pandas/pull/2806](https://togithub.com/aws/aws-sdk-pandas/pull/2806) - adapt parquet datasource to ray 2.20 by [@​jaidisido](https://togithub.com/jaidisido) in [https://github.com/aws/aws-sdk-pandas/pull/2809](https://togithub.com/aws/aws-sdk-pandas/pull/2809) - add primary keys when upserting in Postgres by [@​AntonMantulo](https://togithub.com/AntonMantulo) in [https://github.com/aws/aws-sdk-pandas/pull/2819](https://togithub.com/aws/aws-sdk-pandas/pull/2819) - add `s3_output` parameter to `athena.delete_from_iceberg_table` by [@​LeonLuttenberger](https://togithub.com/LeonLuttenberger) in [https://github.com/aws/aws-sdk-pandas/pull/2829](https://togithub.com/aws/aws-sdk-pandas/pull/2829) - fix s3.read_parquet_metadata not throwing proper error for empty path by [@​LeonLuttenberger](https://togithub.com/LeonLuttenberger) in [https://github.com/aws/aws-sdk-pandas/pull/2843](https://togithub.com/aws/aws-sdk-pandas/pull/2843) #### Documentation 📚 - fix enumerations in doc pages by [@​LeonLuttenberger](https://togithub.com/LeonLuttenberger) in [https://github.com/aws/aws-sdk-pandas/pull/2821](https://togithub.com/aws/aws-sdk-pandas/pull/2821) - fix readthedocs errors by pinning sphinx version by [@​LeonLuttenberger](https://togithub.com/LeonLuttenberger) in [https://github.com/aws/aws-sdk-pandas/pull/2822](https://togithub.com/aws/aws-sdk-pandas/pull/2822) #### Security Dependency Updates 🛡️ - bump werkzeug from 3.0.1 to 3.0.3 by [@​dependabot](https://togithub.com/dependabot) in [https://github.com/aws/aws-sdk-pandas/pull/2807](https://togithub.com/aws/aws-sdk-pandas/pull/2807) - bump jinja2 from 3.1.3 to 3.1.4 by [@​dependabot](https://togithub.com/dependabot) in [https://github.com/aws/aws-sdk-pandas/pull/2808](https://togithub.com/aws/aws-sdk-pandas/pull/2808) - bump requests from 2.31.0 to 2.32.0 by [@​dependabot](https://togithub.com/dependabot) in [https://github.com/aws/aws-sdk-pandas/pull/2827](https://togithub.com/aws/aws-sdk-pandas/pull/2827) - bump pymysql from 1.1.0 to 1.1.1 by [@​dependabot](https://togithub.com/dependabot) in [https://github.com/aws/aws-sdk-pandas/pull/2830](https://togithub.com/aws/aws-sdk-pandas/pull/2830) #### New Contributors 👏🏼 - [@​emmanuel-ferdman](https://togithub.com/emmanuel-ferdman) made their first contribution in [https://github.com/aws/aws-sdk-pandas/pull/2798](https://togithub.com/aws/aws-sdk-pandas/pull/2798) - [@​DavidKatz-il](https://togithub.com/DavidKatz-il) made their first contribution in [https://github.com/aws/aws-sdk-pandas/pull/2806](https://togithub.com/aws/aws-sdk-pandas/pull/2806) - [@​AntonMantulo](https://togithub.com/AntonMantulo) made their first contribution in [https://github.com/aws/aws-sdk-pandas/pull/2819](https://togithub.com/aws/aws-sdk-pandas/pull/2819) **Full Changelog**: aws/aws-sdk-pandas@3.7.3...3.8.0 </details> <details> <summary>openai/openai-python (openai)</summary> ### [`v1.43.0`](https://togithub.com/openai/openai-python/blob/HEAD/CHANGELOG.md#1430-2024-08-29) [Compare Source](https://togithub.com/openai/openai-python/compare/v1.42.0...v1.43.0) Full Changelog: [v1.42.0...v1.43.0](https://togithub.com/openai/openai-python/compare/v1.42.0...v1.43.0) ##### Features - **api:** add file search result details to run steps ([#​1681](https://togithub.com/openai/openai-python/issues/1681)) ([f5449c0](https://togithub.com/openai/openai-python/commit/f5449c07580ac9707f0387f86f4772fbf0a874b6)) ### [`v1.42.0`](https://togithub.com/openai/openai-python/blob/HEAD/CHANGELOG.md#1420-2024-08-20) [Compare Source](https://togithub.com/openai/openai-python/compare/v1.41.1...v1.42.0) Full Changelog: [v1.41.1...v1.42.0](https://togithub.com/openai/openai-python/compare/v1.41.1...v1.42.0) ##### Features - **parsing:** add support for pydantic dataclasses ([#​1655](https://togithub.com/openai/openai-python/issues/1655)) ([101bee9](https://togithub.com/openai/openai-python/commit/101bee9844f725d2174796c3d09a58d3aa079fad)) ##### Chores - **ci:** also run pydantic v1 tests ([#​1666](https://togithub.com/openai/openai-python/issues/1666)) ([af2a1ca](https://togithub.com/openai/openai-python/commit/af2a1ca408a406098c6c79837aa3561b822e08ec)) ### [`v1.41.1`](https://togithub.com/openai/openai-python/blob/HEAD/CHANGELOG.md#1411-2024-08-19) [Compare Source](https://togithub.com/openai/openai-python/compare/v1.41.0...v1.41.1) Full Changelog: [v1.41.0...v1.41.1](https://togithub.com/openai/openai-python/compare/v1.41.0...v1.41.1) ##### Bug Fixes - **json schema:** remove `None` defaults ([#​1663](https://togithub.com/openai/openai-python/issues/1663)) ([30215c1](https://togithub.com/openai/openai-python/commit/30215c15df613cf9c36cafd717af79158c9db3e5)) ##### Chores - **client:** fix parsing union responses when non-json is returned ([#​1665](https://togithub.com/openai/openai-python/issues/1665)) ([822c37d](https://togithub.com/openai/openai-python/commit/822c37de49eb2ffe8c05122f7520ba87bd76e30b)) ### [`v1.41.0`](https://togithub.com/openai/openai-python/blob/HEAD/CHANGELOG.md#1410-2024-08-16) [Compare Source](https://togithub.com/openai/openai-python/compare/v1.40.8...v1.41.0) Full Changelog: [v1.40.8...v1.41.0](https://togithub.com/openai/openai-python/compare/v1.40.8...v1.41.0) ##### Features - **client:** add uploads.upload_file helper ([aae079d](https://togithub.com/openai/openai-python/commit/aae079daa3c1763ab0e46bad766ae5261b475806)) ### [`v1.40.8`](https://togithub.com/openai/openai-python/blob/HEAD/CHANGELOG.md#1408-2024-08-15) [Compare Source](https://togithub.com/openai/openai-python/compare/v1.40.7...v1.40.8) Full Changelog: [v1.40.7...v1.40.8](https://togithub.com/openai/openai-python/compare/v1.40.7...v1.40.8) ##### Chores - **types:** define FilePurpose enum ([#​1653](https://togithub.com/openai/openai-python/issues/1653)) ([3c2eeae](https://togithub.com/openai/openai-python/commit/3c2eeae32adf5d4ab6bc622be6f9a95a1a298dd3)) ### [`v1.40.7`](https://togithub.com/openai/openai-python/blob/HEAD/CHANGELOG.md#1407-2024-08-15) [Compare Source](https://togithub.com/openai/openai-python/compare/v1.40.6...v1.40.7) Full Changelog: [v1.40.6...v1.40.7](https://togithub.com/openai/openai-python/compare/v1.40.6...v1.40.7) ##### Bug Fixes - **cli/migrate:** change grit binaries download source ([#​1649](https://togithub.com/openai/openai-python/issues/1649)) ([85e8935](https://togithub.com/openai/openai-python/commit/85e8935d9a123b92964d39a98334a975a06ab845)) ##### Chores - **docs:** fix typo in example snippet ([4e83b57](https://togithub.com/openai/openai-python/commit/4e83b57ffbb64e1c98c19968557dc68a0b65d0b3)) - **internal:** use different 32bit detection method ([#​1652](https://togithub.com/openai/openai-python/issues/1652)) ([5831af6](https://togithub.com/openai/openai-python/commit/5831af65048af2a5df9e3ea4a48b8fff2e66dd8c)) ### [`v1.40.6`](https://togithub.com/openai/openai-python/blob/HEAD/CHANGELOG.md#1406-2024-08-12) [Compare Source](https://togithub.com/openai/openai-python/compare/v1.40.5...v1.40.6) Full Changelog: [v1.40.5...v1.40.6](https://togithub.com/openai/openai-python/compare/v1.40.5...v1.40.6) ##### Chores - **examples:** minor formatting changes ([#​1644](https://togithub.com/openai/openai-python/issues/1644)) ([e08acf1](https://togithub.com/openai/openai-python/commit/e08acf1c6edd1501ed70c4634cd884ab1658af0d)) - **internal:** update some imports ([#​1642](https://togithub.com/openai/openai-python/issues/1642)) ([fce1ea7](https://togithub.com/openai/openai-python/commit/fce1ea72a89ba2737bc77775fe04f3a21ecb28e7)) - sync openapi url ([#​1646](https://togithub.com/openai/openai-python/issues/1646)) ([8ae3801](https://togithub.com/openai/openai-python/commit/8ae380123ada0bfaca9961e222a0e9c8b585e2d4)) - **tests:** fix pydantic v1 tests ([2623630](https://togithub.com/openai/openai-python/commit/26236303f0f6de5df887e8ee3e41d5bc39a3abb1)) ### [`v1.40.5`](https://togithub.com/openai/openai-python/blob/HEAD/CHANGELOG.md#1405-2024-08-12) [Compare Source](https://togithub.com/openai/openai-python/compare/v1.40.4...v1.40.5) Full Changelog: [v1.40.4...v1.40.5](https://togithub.com/openai/openai-python/compare/v1.40.4...v1.40.5) ##### Documentation - **helpers:** make async client usage more clear ([34e1edf](https://togithub.com/openai/openai-python/commit/34e1edf29d6008df7196aaebc45172fa536c6410)), closes [#​1639](https://togithub.com/openai/openai-python/issues/1639) ### [`v1.40.4`](https://togithub.com/openai/openai-python/blob/HEAD/CHANGELOG.md#1404-2024-08-12) [Compare Source](https://togithub.com/openai/openai-python/compare/v1.40.3...v1.40.4) Full Changelog: [v1.40.3...v1.40.4](https://togithub.com/openai/openai-python/compare/v1.40.3...v1.40.4) ##### Bug Fixes - **json schema:** unravel `$ref`s alongside additional keys ([c7a3d29](https://togithub.com/openai/openai-python/commit/c7a3d2986acaf3b31844b39608d03265ad87bb04)) - **json schema:** unwrap `allOf`s with one entry ([53d964d](https://togithub.com/openai/openai-python/commit/53d964defebdf385d7d832ec7f13111b4af13c27)) ### [`v1.40.3`](https://togithub.com/openai/openai-python/blob/HEAD/CHANGELOG.md#1403-2024-08-10) [Compare Source](https://togithub.com/openai/openai-python/compare/v1.40.2...v1.40.3) Full Changelog: [v1.40.2...v1.40.3](https://togithub.com/openai/openai-python/compare/v1.40.2...v1.40.3) ##### Chores - **ci:** bump prism mock server version ([#​1630](https://togithub.com/openai/openai-python/issues/1630)) ([214d8fd](https://togithub.com/openai/openai-python/commit/214d8fd8d7d43c06c7dfe02680847a6a60988120)) - **ci:** codeowners file ([#​1627](https://togithub.com/openai/openai-python/issues/1627)) ([c059a20](https://togithub.com/openai/openai-python/commit/c059a20c8cd2124178641c9d8688e276b1cf1d59)) - **internal:** ensure package is importable in lint cmd ([#​1631](https://togithub.com/openai/openai-python/issues/1631)) ([779e6d0](https://togithub.com/openai/openai-python/commit/779e6d081eb55c158f2aa1962190079eb7f1335e)) ### [`v1.40.2`](https://togithub.com/openai/openai-python/blob/HEAD/CHANGELOG.md#1402-2024-08-08) [Compare Source](https://togithub.com/openai/openai-python/compare/v1.40.1...v1.40.2) Full Changelog: [v1.40.1...v1.40.2](https://togithub.com/openai/openai-python/compare/v1.40.1...v1.40.2) ##### Bug Fixes - **client:** raise helpful error message for response_format misuse ([18191da](https://togithub.com/openai/openai-python/commit/18191dac8e1437a0f708525d474b7ecfe459d966)) - **json schema:** support recursive BaseModels in Pydantic v1 ([#​1623](https://togithub.com/openai/openai-python/issues/1623)) ([43e10c0](https://togithub.com/openai/openai-python/commit/43e10c0f251a42f1e6497f360c6c23d3058b3da3)) ##### Chores - **internal:** format some docstrings ([d34a081](https://togithub.com/openai/openai-python/commit/d34a081c30f869646145919b2256ded115241eb5)) - **internal:** updates ([#​1624](https://togithub.com/openai/openai-python/issues/1624)) ([598e7a2](https://togithub.com/openai/openai-python/commit/598e7a23768e7addbe1319ada2e87caee3cf0d14)) ### [`v1.40.1`](https://togithub.com/openai/openai-python/blob/HEAD/CHANGELOG.md#1401-2024-08-07) [Compare Source](https://togithub.com/openai/openai-python/compare/v1.40.0...v1.40.1) Full Changelog: [v1.40.0...v1.40.1](https://togithub.com/openai/openai-python/compare/v1.40.0...v1.40.1) ##### Chores - **internal:** update OpenAPI spec url ([#​1608](https://togithub.com/openai/openai-python/issues/1608)) ([5392753](https://togithub.com/openai/openai-python/commit/53927531fc101e96b9e3f5d44f34b298055f496a)) - **internal:** update test snapshots ([a11d1cb](https://togithub.com/openai/openai-python/commit/a11d1cb5d04aac0bf69dc10a3a21fa95575c0aa0)) ### [`v1.40.0`](https://togithub.com/openai/openai-python/blob/HEAD/CHANGELOG.md#1400-2024-08-06) [Compare Source](https://togithub.com/openai/openai-python/compare/v1.39.0...v1.40.0) Full Changelog: [v1.39.0...v1.40.0](https://togithub.com/openai/openai-python/compare/v1.39.0...v1.40.0) ##### Features - **api:** add structured outputs support ([e8dba7d](https://togithub.com/openai/openai-python/commit/e8dba7d0e08a7d0de5952be716e0efe9ae373759)) ##### Chores - **internal:** bump ruff version ([#​1604](https://togithub.com/openai/openai-python/issues/1604)) ([3e19a87](https://togithub.com/openai/openai-python/commit/3e19a87255d8e92716689656afaa3f16297773b6)) - **internal:** update pydantic compat helper function ([#​1607](https://togithub.com/openai/openai-python/issues/1607)) ([973c18b](https://togithub.com/openai/openai-python/commit/973c18b259a0e4a8134223f50a5f660b86650949)) ### [`v1.39.0`](https://togithub.com/openai/openai-python/blob/HEAD/CHANGELOG.md#1390-2024-08-05) [Compare Source](https://togithub.com/openai/openai-python/compare/v1.38.0...v1.39.0) Full Changelog: [v1.38.0...v1.39.0](https://togithub.com/openai/openai-python/compare/v1.38.0...v1.39.0) ##### Features - **client:** add `retries_taken` to raw response class ([#​1601](https://togithub.com/openai/openai-python/issues/1601)) ([777822b](https://togithub.com/openai/openai-python/commit/777822b39b7f9ebd6272d0af8fc04f9d657bd886)) ##### Bug Fixes - **assistants:** add parallel_tool_calls param to runs.stream ([113e82a](https://togithub.com/openai/openai-python/commit/113e82a82c7390660ad3324fa8f9842f83b27571)) ##### Chores - **internal:** bump pyright ([#​1599](https://togithub.com/openai/openai-python/issues/1599)) ([27f0f10](https://togithub.com/openai/openai-python/commit/27f0f107e39d16adc0d5a50ffe4c687e0e3c42e5)) - **internal:** test updates ([#​1602](https://togithub.com/openai/openai-python/issues/1602)) ([af22d80](https://togithub.com/openai/openai-python/commit/af22d8079cf44cde5f03a206e78b900f8413dc43)) - **internal:** use `TypeAlias` marker for type assignments ([#​1597](https://togithub.com/openai/openai-python/issues/1597)) ([5907ea0](https://togithub.com/openai/openai-python/commit/5907ea04d6f5e0ffd17c38ad6a644a720ece8abe)) ### [`v1.38.0`](https://togithub.com/openai/openai-python/blob/HEAD/CHANGELOG.md#1380-2024-08-02) [Compare Source](https://togithub.com/openai/openai-python/compare/v1.37.2...v1.38.0) Full Changelog: [v1.37.2...v1.38.0](https://togithub.com/openai/openai-python/compare/v1.37.2...v1.38.0) ##### Features - extract out `ImageModel`, `AudioModel`, `SpeechModel` ([#​1586](https://togithub.com/openai/openai-python/issues/1586)) ([b800316](https://togithub.com/openai/openai-python/commit/b800316aee6c8b2aeb609ca4c41972adccd2fa7a)) - make enums not nominal ([#​1588](https://togithub.com/openai/openai-python/issues/1588)) ([ab4519b](https://togithub.com/openai/openai-python/commit/ab4519bc45f5512c8c5165641c217385d999809c)) ### [`v1.37.2`](https://togithub.com/openai/openai-python/blob/HEAD/CHANGELOG.md#1372-2024-08-01) [Compare Source](https://togithub.com/openai/openai-python/compare/v1.37.1...v1.37.2) Full Changelog: [v1.37.1...v1.37.2](https://togithub.com/openai/openai-python/compare/v1.37.1...v1.37.2) ##### Chores - **internal:** add type construction helper ([#​1584](https://togithub.com/openai/openai-python/issues/1584)) ([cbb186a](https://togithub.com/openai/openai-python/commit/cbb186a534b520fa5b11a9b371b175e3f6a6482b)) - **runs/create_and_poll:** add parallel_tool_calls request param ([04b3e6c](https://togithub.com/openai/openai-python/commit/04b3e6c39ee5a7088e0e4dfa4c06f3dcce901a57)) ### [`v1.37.1`](https://togithub.com/openai/openai-python/blob/HEAD/CHANGELOG.md#1371-2024-07-25) [Compare Source](https://togithub.com/openai/openai-python/compare/v1.37.0...v1.37.1) Full Changelog: [v1.37.0...v1.37.1](https://togithub.com/openai/openai-python/compare/v1.37.0...v1.37.1) ##### Chores - **tests:** update prism version ([#​1572](https://togithub.com/openai/openai-python/issues/1572)) ([af82593](https://togithub.com/openai/openai-python/commit/af8259393673af1ef6ec711da6297eb4ad55b66e)) ### [`v1.37.0`](https://togithub.com/openai/openai-python/blob/HEAD/CHANGELOG.md#1370-2024-07-22) [Compare Source](https://togithub.com/openai/openai-python/compare/v1.36.1...v1.37.0) Full Changelog: [v1.36.1...v1.37.0](https://togithub.com/openai/openai-python/compare/v1.36.1...v1.37.0) ##### Features - **api:** add uploads endpoints ([#​1568](https://togithub.com/openai/openai-python/issues/1568)) ([d877b6d](https://togithub.com/openai/openai-python/commit/d877b6dabb9b3e8da6ff2f46de1120af54de398d)) ##### Bug Fixes - **cli/audio:** handle non-json response format ([#​1557](https://togithub.com/openai/openai-python/issues/1557)) ([bb7431f](https://togithub.com/openai/openai-python/commit/bb7431f602602d4c74d75809c6934a7fd192972d)) ##### Documentation - **readme:** fix example snippet imports ([#​1569](https://togithub.com/openai/openai-python/issues/1569)) ([0c90af6](https://togithub.com/openai/openai-python/commit/0c90af6412b3314c2257b9b8eb7fabd767f32ef6)) ### [`v1.36.1`](https://togithub.com/openai/openai-python/blob/HEAD/CHANGELOG.md#1361-2024-07-20) [Compare Source](https://togithub.com/openai/openai-python/compare/v1.36.0...v1.36.1) Full Changelog: [v1.36.0...v1.36.1](https://togithub.com/openai/openai-python/compare/v1.36.0...v1.36.1) ##### Bug Fixes - **types:** add gpt-4o-mini to more assistants methods ([39a8a37](https://togithub.com/openai/openai-python/commit/39a8a372eb3f2d75fd4310d42294d05175a59fd8)) ### [`v1.36.0`](https://togithub.com/openai/openai-python/blob/HEAD/CHANGELOG.md#1360-2024-07-19) [Compare Source](https://togithub.com/openai/openai-python/compare/v1.35.15...v1.36.0) Full Changelog: [v1.35.15...v1.36.0](https://togithub.com/openai/openai-python/compare/v1.35.15...v1.36.0) ##### Features - **api:** add new gpt-4o-mini models ([#​1561](https://togithub.com/openai/openai-python/issues/1561)) ([5672ad4](https://togithub.com/openai/openai-python/commit/5672ad40aaa3498f6143baa48fc22bb1a3475bea)) ### [`v1.35.15`](https://togithub.com/openai/openai-python/blob/HEAD/CHANGELOG.md#13515-2024-07-18) [Compare Source](https://togithub.com/openai/openai-python/compare/v1.35.14...v1.35.15) Full Changelog: [v1.35.14...v1.35.15](https://togithub.com/openai/openai-python/compare/v1.35.14...v1.35.15) ##### Chores - **docs:** document how to do per-request http client customization ([#​1560](https://togithub.com/openai/openai-python/issues/1560)) ([24c0768](https://togithub.com/openai/openai-python/commit/24c076873c5cb2abe0d3e285b99aa110451b0f19)) - **internal:** update formatting ([#​1553](https://togithub.com/openai/openai-python/issues/1553)) ([e1389bc](https://togithub.com/openai/openai-python/commit/e1389bcc26f3aac63fc6bc9bb151c9a330d95b4e)) ### [`v1.35.14`](https://togithub.com/openai/openai-python/blob/HEAD/CHANGELOG.md#13514-2024-07-15) [Compare Source](https://togithub.com/openai/openai-python/compare/v1.35.13...v1.35.14) Full Changelog: [v1.35.13...v1.35.14](https://togithub.com/openai/openai-python/compare/v1.35.13...v1.35.14) ##### Chores - **docs:** minor update to formatting of API link in README ([#​1550](https://togithub.com/openai/openai-python/issues/1550)) ([a6e59c6](https://togithub.com/openai/openai-python/commit/a6e59c6bbff9e1132aa323c0ecb3be7f0692ae42)) - **internal:** minor formatting changes ([ee1c62e](https://togithub.com/openai/openai-python/commit/ee1c62ede01872e76156d886af4aab5f8eb1cc64)) - **internal:** minor options / compat functions updates ([#​1549](https://togithub.com/openai/openai-python/issues/1549)) ([a0701b5](https://togithub.com/openai/openai-python/commit/a0701b5dbeda4ac2d8a4b093aee4bdad9d674ee2)) ### [`v1.35.13`](https://togithub.com/openai/openai-python/blob/HEAD/CHANGELOG.md#13513-2024-07-10) [Compare Source](https://togithub.com/openai/openai-python/compare/v1.35.12...v1.35.13) Full Changelog: [v1.35.12...v1.35.13](https://togithub.com/openai/openai-python/compare/v1.35.12...v1.35.13) ##### Bug Fixes - **threads/runs/create_and_run_stream:** correct tool_resources param ([8effd08](https://togithub.com/openai/openai-python/commit/8effd08be3ab1cf509bdbfd9f174f9186fdbf71f)) ##### Chores - **internal:** add helper function ([#​1538](https://togithub.com/openai/openai-python/issues/1538)) ([81655a0](https://togithub.com/openai/openai-python/commit/81655a012e28c0240e71cf74b77ad1f9ac630906)) ### [`v1.35.12`](https://togithub.com/openai/openai-python/blob/HEAD/CHANGELOG.md#13512-2024-07-09) [Compare Source](https://togithub.com/openai/openai-python/compare/v1.35.11...v1.35.12) Full Changelog: [v1.35.11...v1.35.12](https://togithub.com/openai/openai-python/compare/v1.35.11...v1.35.12) ##### Bug Fixes - **azure:** refresh auth token during retries ([#​1533](https://togithub.com/openai/openai-python/issues/1533)) ([287926e](https://togithub.com/openai/openai-python/commit/287926e4c0920b930af2b9d3d8b46a24e78e2979)) - **tests:** fresh_env() now resets new environment values ([64da888](https://togithub.com/openai/openai-python/commit/64da888ca4d13f0b4b6d9e22ec93a897b2d6bb24)) ### [`v1.35.11`](https://togithub.com/openai/openai-python/blob/HEAD/CHANGELOG.md#13511-2024-07-09) [Compare Source](https://togithub.com/openai/openai-python/compare/v1.35.10...v1.35.11) Full Changelog: [v1.35.10...v1.35.11](https://togithub.com/openai/openai-python/compare/v1.35.10...v1.35.11) ##### Chores - **internal:** minor request options handling changes ([#​1534](https://togithub.com/openai/openai-python/issues/1534)) ([8b0e493](https://togithub.com/openai/openai-python/commit/8b0e49302b3fcc32cf02393bf28354c577188904)) ### [`v1.35.10`](https://togithub.com/openai/openai-python/blob/HEAD/CHANGELOG.md#13510-2024-07-03) [Compare Source](https://togithub.com/openai/openai-python/compare/v1.35.9...v1.35.10) Full Changelog: [v1.35.9...v1.35.10](https://togithub.com/openai/openai-python/compare/v1.35.9...v1.35.10) ##### Chores - **ci:** update rye to v0.35.0 ([#​1523](https://togithub.com/openai/openai-python/issues/1523)) ([dd118c4](https://togithub.com/openai/openai-python/commit/dd118c422019df00b153104b7bddf892c2ec7417)) ### [`v1.35.9`](https://togithub.com/openai/openai-python/blob/HEAD/CHANGELOG.md#1359-2024-07-02) [Compare Source](https://togithub.com/openai/openai-python/compare/v1.35.8...v1.35.9) Full Changelog: [v1.35.8...v1.35.9](https://togithub.com/openai/openai-python/compare/v1.35.8...v1.35.9) ##### Bug Fixes - **client:** always respect content-type multipart/form-data if provided ([#​1519](https://togithub.com/openai/openai-python/issues/1519)) ([6da55e1](https://togithub.com/openai/openai-python/commit/6da55e10c4ba8c78687baedc68d5599ea120d05c)) ##### Chores - minor change to tests ([#​1521](https://togithub.com/openai/openai-python/issues/1521)) ([a679c0b](https://togithub.com/openai/openai-python/commit/a679c0bd1e041434440174daa7a64289746856d1)) ### [`v1.35.8`](https://togithub.com/openai/openai-python/blob/HEAD/CHANGELOG.md#1358-2024-07-02) [Compare Source](https://togithub.com/openai/openai-python/compare/v1.35.7...v1.35.8) Full Changelog: [v1.35.7...v1.35.8](https://togithub.com/openai/openai-python/compare/v1.35.7...v1.35.8) ##### Chores - gitignore test server logs ([#​1509](https://togithub.com/openai/openai-python/issues/1509)) ([936d840](https://togithub.com/openai/openai-python/commit/936d84094a28ad0a2b4a20e2b3bbf1674048223e)) - **internal:** add helper method for constructing `BaseModel`s ([#​1517](https://togithub.com/openai/openai-python/issues/1517)) ([e5ddbf5](https://togithub.com/openai/openai-python/commit/e5ddbf554ce4b6be4b59114a36e69f02ca724acf)) - **internal:** add reflection helper function ([#​1508](https://togithub.com/openai/openai-python/issues/1508)) ([6044e1b](https://togithub.com/openai/openai-python/commit/6044e1bbfa9e46a01faf5a9edf198f86fa4c6dd0)) - **internal:** add rich as a dev dependency ([#​1514](https://togithub.com/openai/openai-python/issues/1514)) ([8a2b4e4](https://togithub.com/openai/openai-python/commit/8a2b4e4c1233dca916531ebc65d65a8d35fa7b7b)) ### [`v1.35.7`](https://togithub.com/openai/openai-python/blob/HEAD/CHANGELOG.md#1357-2024-06-27) [Compare Source](https://togithub.com/openai/openai-python/compare/v1.35.6...v1.35.7) Full Changelog: [v1.35.6...v1.35.7](https://togithub.com/openai/openai-python/compare/v1.35.6...v1.35.7) ##### Bug Fixes - **build:** include more files in sdist builds ([#​1504](https://togithub.com/openai/openai-python/issues/1504)) ([730c1b5](https://togithub.com/openai/openai-python/commit/730c1b53b1a61e218a85aa2d1cf3ba4775618755)) ### [`v1.35.6`](https://togithub.com/openai/openai-python/blob/HEAD/CHANGELOG.md#1356-2024-06-27) [Compare Source](https://togithub.com/openai/openai-python/compare/v1.35.5...v1.35.6) Full Changelog: [v1.35.5...v1.35.6](https://togithub.com/openai/openai-python/compare/v1.35.5...v1.35.6) ##### Documentation - **readme:** improve some wording ([#​1392](https://togithub.com/openai/openai-python/issues/1392)) ([a58a052](https://togithub.com/openai/openai-python/commit/a58a05215b560ebcf3ff3eb1dd997259720a48f3)) ### [`v1.35.5`](https://togithub.com/openai/openai-python/blob/HEAD/CHANGELOG.md#1355-2024-06-26) [Compare Source](https://togithub.com/openai/openai-python/compare/v1.35.4...v1.35.5) Full Changelog: [v1.35.4...v1.35.5](https://togithub.com/openai/openai-python/compare/v1.35.4...v1.35.5) ##### Bug Fixes - **cli/migrate:** avoid reliance on Python 3.12 argument ([be7a06b](https://togithub.com/openai/openai-python/commit/be7a06b3875e3ecb9229d67a41e290ca218f092d)) ### [`v1.35.4`](https://togithub.com/openai/openai-python/blob/HEAD/CHANGELOG.md#1354-2024-06-26) [Compare Source](https://togithub.com/openai/openai-python/compare/v1.35.3...v1.35.4) Full Changelog: [v1.35.3...v1.35.4](https://togithub.com/openai/openai-python/compare/v1.35.3...v1.35.4) ##### Bug Fixes - **docs:** fix link to advanced python httpx docs ([#​1499](https://togithub.com/openai/openai-python/issues/1499)) ([cf45cd5](https://togithub.com/openai/openai-python/commit/cf45cd5942cecec569072146673ddfc0e0ec108e)) - temporarily patch upstream version to fix broken release flow ([#​1500](https://togithub.com/openai/openai-python/issues/1500)) ([4f10470](https://togithub.com/openai/openai-python/commit/4f10470f5f74fc258a78fa6d897d8ab5b70dcf52)) ##### Chores - **doc:** clarify service tier default value ([#​1496](https://togithub.com/openai/openai-python/issues/1496)) ([ba39667](https://togithub.com/openai/openai-python/commit/ba39667c4faa8e10457347be41334ca9639186d4)) ### [`v1.35.3`](https://togithub.com/openai/openai-python/blob/HEAD/CHANGELOG.md#1353-2024-06-20) [Compare Source](https://togithub.com/openai/openai-python/compare/v1.35.2...v1.35.3) Full Changelog: [v1.35.2...v1.35.3](https://togithub.com/openai/openai-python/compare/v1.35.2...v1.35.3) ##### Bug Fixes - **tests:** add explicit type annotation ([9345f10](https://togithub.com/openai/openai-python/commit/9345f104889056b2ef6646d65375925a0a3bae03)) ### [`v1.35.2`](https://togithub.com/openai/openai-python/blob/HEAD/CHANGELOG.md#1352-2024-06-20) [Compare Source](https://togithub.com/openai/openai-python/compare/v1.35.1...v1.35.2) Full Changelog: [v1.35.1...v1.35.2](https://togithub.com/openai/openai-python/compare/v1.35.1...v1.35.2) ##### Bug Fixes - **api:** add missing parallel_tool_calls arguments ([4041e4f](https://togithub.com/openai/openai-python/commit/4041e4f6ea1e2316179a82031001308be23a2524)) ### [`v1.35.1`](https://togithub.com/openai/openai-python/blob/HEAD/CHANGELOG.md#1351-2024-06-19) [Compare Source](https://togithub.com/openai/openai-python/compare/v1.35.0...v1.35.1) Full Changelog: [v1.35.0...v1.35.1](https://togithub.com/openai/openai-python/compare/v1.35.0...v1.35.1) ##### Bug Fixes - **client/async:** avoid blocking io call for platform headers ([#​1488](https://togithub.com/openai/openai-python/issues/1488)) ([ae64c05](https://togithub.com/openai/openai-python/commit/ae64c05cbae76a58b592d913bee6ac1ef9611d4c)) ### [`v1.35.0`](https://togithub.com/openai/openai-python/blob/HEAD/CHANGELOG.md#1350-2024-06-18) [Compare Source](https://togithub.com/openai/openai-python/compare/v1.34.0...v1.35.0) Full Changelog: [v1.34.0...v1.35.0](https://togithub.com/openai/openai-python/compare/v1.34.0...v1.35.0) ##### Features - **api:** add service tier argument for chat completions ([#​1486](https://togithub.com/openai/openai-python/issues/1486)) ([b4b4e66](https://togithub.com/openai/openai-python/commit/b4b4e660b8bb7ae937787fcab9b40feaeba7f711)) </details> <details> <summary>jd/tenacity (tenacity)</summary> ### [`v8.5.0`](https://togithub.com/jd/tenacity/releases/tag/8.5.0) [Compare Source](https://togithub.com/jd/tenacity/compare/8.4.2...8.5.0) #### What's Changed - fix: Restore contents of retry attribute for wrapped functions by [@​hasier](https://togithub.com/hasier) in [https://github.com/jd/tenacity/pull/484](https://togithub.com/jd/tenacity/pull/484) **Full Changelog**: jd/tenacity@8.4.2...8.5.0 ### [`v8.4.2`](https://togithub.com/jd/tenacity/releases/tag/8.4.2): tenacity 8.4.2 [Compare Source](https://togithub.com/jd/tenacity/compare/8.4.1...8.4.2) ##### What's Changed - fix: Avoid overwriting local contexts with retry decorator by [@​hasier](https://togithub.com/hasier) in [https://github.com/jd/tenacity/pull/479](https://togithub.com/jd/tenacity/pull/479) **Full Changelog**: jd/tenacity@8.4.1...8.4.2 ### [`v8.4.1`](https://togithub.com/jd/tenacity/releases/tag/8.4.1): tenacity 8.4.1 [Compare Source](https://togithub.com/jd/tenacity/compare/8.4.0...8.4.1) #### What's Changed - Include `tenacity.asyncio` subpackage in release dist by [@​cdce8p](https://togithub.com/cdce8p) in [https://github.com/jd/tenacity/pull/474](https://togithub.com/jd/tenacity/pull/474) **Full Changelog**: jd/tenacity@8.4.0...8.4.1 ### [`v8.4.0`](https://togithub.com/jd/tenacity/releases/tag/8.4.0): tenacity 8.4.0 [Compare Source](https://togithub.com/jd/tenacity/compare/8.3.0...8.4.0) #### What's Changed - Add async strategies by [@​hasier](https://togithub.com/hasier) in [https://github.com/jd/tenacity/pull/451](https://togithub.com/jd/tenacity/pull/451) - Support Trio out-of-the-box by [@​jakkdl](https://togithub.com/jakkdl) in [https://github.com/jd/tenacity/pull/463](https://togithub.com/jd/tenacity/pull/463) **Full Changelog**: jd/tenacity@8.3.0...8.4.0 </details> --- ### Configuration 📅 **Schedule**: Branch creation - "before 4am on the first day of the month" (UTC), Automerge - At any time (no schedule defined). 🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied. ♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox. 👻 **Immortal**: This PR will be recreated if closed unmerged. Get [config help](https://togithub.com/renovatebot/renovate/discussions) if that's undesired. --- - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box --- This PR was generated by [Mend Renovate](https://mend.io/renovate/). View the [repository job log](https://developer.mend.io/github/sawyerh/highlights). <!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNy40MjEuMCIsInVwZGF0ZWRJblZlciI6IjM4LjU2LjAiLCJ0YXJnZXRCcmFuY2giOiJtYWluIiwibGFiZWxzIjpbXX0=--> Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Third and last PR after breaking down #433 (follows
hasier#1#437)Support async actions hasier/tenacity#1Support async actions #437After DRYing the
iter()
function and makingAsyncRetrying
supportasync
callbacks, add newasync
strategies (basically a copy-paste) and improve typing.Supersedes hasier#2