-
-
Notifications
You must be signed in to change notification settings - Fork 30.4k
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
gh-126565: Skip zipfile.Path.exists
check in write mode
#126576
Merged
Merged
Conversation
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
picnixz
reviewed
Nov 8, 2024
Misc/NEWS.d/next/Library/2024-11-08-11-06-14.gh-issue-126565.dFFO22.rst
Outdated
Show resolved
Hide resolved
ZeroIntensity
added
needs backport to 3.12
bug and security fixes
needs backport to 3.13
bugs and security fixes
labels
Nov 8, 2024
When `zipfile.Path.open` is called, the implementation will check whether the path already exists in the ZIP file. However, this check is only required when the ZIP file is in read mode. By swapping arguments of the `and` operator, the short-circuiting will prevent the check from being run in write mode. This change will improve the performance of `open()`, because checking whether a file exists is slow in write mode, especially when the archive has many members.
janhicken
force-pushed
the
fix-issue-126565
branch
from
November 8, 2024 14:18
84cb5de
to
af91c8c
Compare
picnixz
approved these changes
Nov 9, 2024
Thanks @janhicken for the PR, and @jaraco for merging it 🌮🎉.. I'm working now to backport this PR to: 3.12, 3.13. |
miss-islington
pushed a commit
to miss-islington/cpython
that referenced
this pull request
Nov 10, 2024
…onGH-126576) When `zipfile.Path.open` is called, the implementation will check whether the path already exists in the ZIP file. However, this check is only required when the ZIP file is in read mode. By swapping arguments of the `and` operator, the short-circuiting will prevent the check from being run in write mode. This change will improve the performance of `open()`, because checking whether a file exists is slow in write mode, especially when the archive has many members. (cherry picked from commit 160758a574d12bf0d965d8206136e7da4f4fd6c3) Co-authored-by: Jan Hicken <[email protected]>
GH-126642 is a backport of this pull request to the 3.13 branch. |
miss-islington
pushed a commit
to miss-islington/cpython
that referenced
this pull request
Nov 10, 2024
…onGH-126576) When `zipfile.Path.open` is called, the implementation will check whether the path already exists in the ZIP file. However, this check is only required when the ZIP file is in read mode. By swapping arguments of the `and` operator, the short-circuiting will prevent the check from being run in write mode. This change will improve the performance of `open()`, because checking whether a file exists is slow in write mode, especially when the archive has many members. (cherry picked from commit 160758a574d12bf0d965d8206136e7da4f4fd6c3) Co-authored-by: Jan Hicken <[email protected]>
Looks great. I'll port this to zipp as well. |
GH-126643 is a backport of this pull request to the 3.12 branch. |
jaraco
pushed a commit
to jaraco/zipp
that referenced
this pull request
Nov 10, 2024
When `zipfile.Path.open` is called, the implementation will check whether the path already exists in the ZIP file. However, this check is only required when the ZIP file is in read mode. By swapping arguments of the `and` operator, the short-circuiting will prevent the check from being run in write mode. This change will improve the performance of `open()`, because checking whether a file exists is slow in write mode, especially when the archive has many members.
jaraco
pushed a commit
that referenced
this pull request
Nov 10, 2024
…126576) (#126643) gh-126565: Skip `zipfile.Path.exists` check in write mode (GH-126576) When `zipfile.Path.open` is called, the implementation will check whether the path already exists in the ZIP file. However, this check is only required when the ZIP file is in read mode. By swapping arguments of the `and` operator, the short-circuiting will prevent the check from being run in write mode. This change will improve the performance of `open()`, because checking whether a file exists is slow in write mode, especially when the archive has many members. (cherry picked from commit 160758a) Co-authored-by: Jan Hicken <[email protected]>
jaraco
pushed a commit
that referenced
this pull request
Nov 10, 2024
…126576) (#126642) gh-126565: Skip `zipfile.Path.exists` check in write mode (GH-126576) When `zipfile.Path.open` is called, the implementation will check whether the path already exists in the ZIP file. However, this check is only required when the ZIP file is in read mode. By swapping arguments of the `and` operator, the short-circuiting will prevent the check from being run in write mode. This change will improve the performance of `open()`, because checking whether a file exists is slow in write mode, especially when the archive has many members. (cherry picked from commit 160758a) Co-authored-by: Jan Hicken <[email protected]>
github-merge-queue bot
pushed a commit
to google/scaaml
that referenced
this pull request
Nov 11, 2024
Bumps the dependabot group with 4 updates: [packaging](https://github.com/pypa/packaging), [wheel](https://github.com/pypa/wheel), [zipp](https://github.com/jaraco/zipp) and [tqdm](https://github.com/tqdm/tqdm). Updates `packaging` from 24.1 to 24.2 <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/pypa/packaging/releases">packaging's releases</a>.</em></p> <blockquote> <h2>24.2</h2> <h2>What's Changed</h2> <ul> <li>The source is auto-formatted with ruff, not black by <a href="https://github.com/DimitriPapadopoulos"><code>@DimitriPapadopoulos</code></a> in <a href="https://redirect.github.com/pypa/packaging/pull/798">pypa/packaging#798</a></li> <li>Bump the github-actions group across 1 directory with 3 updates by <a href="https://github.com/dependabot"><code>@dependabot</code></a> in <a href="https://redirect.github.com/pypa/packaging/pull/813">pypa/packaging#813</a></li> <li>Apply ruff rules (RUF) by <a href="https://github.com/DimitriPapadopoulos"><code>@DimitriPapadopoulos</code></a> in <a href="https://redirect.github.com/pypa/packaging/pull/800">pypa/packaging#800</a></li> <li>Fix typo in Version <code>__str__</code> by <a href="https://github.com/aryanpingle"><code>@aryanpingle</code></a> in <a href="https://redirect.github.com/pypa/packaging/pull/817">pypa/packaging#817</a></li> <li>Bump the github-actions group with 3 updates by <a href="https://github.com/dependabot"><code>@dependabot</code></a> in <a href="https://redirect.github.com/pypa/packaging/pull/819">pypa/packaging#819</a></li> <li>Get rid of duplicate test cases by <a href="https://github.com/DimitriPapadopoulos"><code>@DimitriPapadopoulos</code></a> in <a href="https://redirect.github.com/pypa/packaging/pull/821">pypa/packaging#821</a></li> <li>Fix doc for canonicalize_version and a typo in a docstring by <a href="https://github.com/Laurent-Dx"><code>@Laurent-Dx</code></a> in <a href="https://redirect.github.com/pypa/packaging/pull/801">pypa/packaging#801</a></li> <li>docs: public/base_version comparison by <a href="https://github.com/henryiii"><code>@henryiii</code></a> in <a href="https://redirect.github.com/pypa/packaging/pull/818">pypa/packaging#818</a></li> <li>Apply ruff/bugbear rules (B) by <a href="https://github.com/DimitriPapadopoulos"><code>@DimitriPapadopoulos</code></a> in <a href="https://redirect.github.com/pypa/packaging/pull/787">pypa/packaging#787</a></li> <li>Apply ruff/pyupgrade rules (UP) by <a href="https://github.com/DimitriPapadopoulos"><code>@DimitriPapadopoulos</code></a> in <a href="https://redirect.github.com/pypa/packaging/pull/786">pypa/packaging#786</a></li> <li>Add a changelog entry for dropping Python 3.7 support by <a href="https://github.com/alexwlchan"><code>@alexwlchan</code></a> in <a href="https://redirect.github.com/pypa/packaging/pull/824">pypa/packaging#824</a></li> <li>Patch python_full_version unconditionally by <a href="https://github.com/jaraco"><code>@jaraco</code></a> in <a href="https://redirect.github.com/pypa/packaging/pull/825">pypa/packaging#825</a></li> <li>Refactor canonicalize_version by <a href="https://github.com/jaraco"><code>@jaraco</code></a> in <a href="https://redirect.github.com/pypa/packaging/pull/793">pypa/packaging#793</a></li> <li>Allow creating a SpecifierSet from a list of specifiers by <a href="https://github.com/pfmoore"><code>@pfmoore</code></a> in <a href="https://redirect.github.com/pypa/packaging/pull/777">pypa/packaging#777</a></li> <li>Fix uninformative error message by <a href="https://github.com/abravalheri"><code>@abravalheri</code></a> in <a href="https://redirect.github.com/pypa/packaging/pull/830">pypa/packaging#830</a></li> <li>Fix prerelease detection for <code>></code> and <code><</code> by <a href="https://github.com/notatallshaw"><code>@notatallshaw</code></a> in <a href="https://redirect.github.com/pypa/packaging/pull/794">pypa/packaging#794</a></li> <li>Bump the github-actions group across 1 directory with 4 updates by <a href="https://github.com/dependabot"><code>@dependabot</code></a> in <a href="https://redirect.github.com/pypa/packaging/pull/839">pypa/packaging#839</a></li> <li>Add support for PEP 730 iOS tags. by <a href="https://github.com/freakboy3742"><code>@freakboy3742</code></a> in <a href="https://redirect.github.com/pypa/packaging/pull/832">pypa/packaging#832</a></li> <li>Update the changelog to reflect 24.1 changes by <a href="https://github.com/pradyunsg"><code>@pradyunsg</code></a> in <a href="https://redirect.github.com/pypa/packaging/pull/840">pypa/packaging#840</a></li> <li>Mention updating changelog in release process by <a href="https://github.com/pradyunsg"><code>@pradyunsg</code></a> in <a href="https://redirect.github.com/pypa/packaging/pull/841">pypa/packaging#841</a></li> <li>Add a comment as to why <code>Metadata.name</code> isn't normalized by <a href="https://github.com/brettcannon"><code>@brettcannon</code></a> in <a href="https://redirect.github.com/pypa/packaging/pull/842">pypa/packaging#842</a></li> <li>Use !r formatter for error messages with filenames. by <a href="https://github.com/Carreau"><code>@Carreau</code></a> in <a href="https://redirect.github.com/pypa/packaging/pull/844">pypa/packaging#844</a></li> <li>PEP 639: Implement License-Expression and License-File by <a href="https://github.com/ewdurbin"><code>@ewdurbin</code></a> in <a href="https://redirect.github.com/pypa/packaging/pull/828">pypa/packaging#828</a></li> <li>Bump the github-actions group with 4 updates by <a href="https://github.com/dependabot"><code>@dependabot</code></a> in <a href="https://redirect.github.com/pypa/packaging/pull/852">pypa/packaging#852</a></li> <li>Upgrade to latest mypy by <a href="https://github.com/hauntsaninja"><code>@hauntsaninja</code></a> in <a href="https://redirect.github.com/pypa/packaging/pull/853">pypa/packaging#853</a></li> <li>Extraneous quotes by <a href="https://github.com/ewdurbin"><code>@ewdurbin</code></a> in <a href="https://redirect.github.com/pypa/packaging/pull/848">pypa/packaging#848</a></li> </ul> <h2>New Contributors</h2> <ul> <li><a href="https://github.com/aryanpingle"><code>@aryanpingle</code></a> made their first contribution in <a href="https://redirect.github.com/pypa/packaging/pull/817">pypa/packaging#817</a></li> <li><a href="https://github.com/Laurent-Dx"><code>@Laurent-Dx</code></a> made their first contribution in <a href="https://redirect.github.com/pypa/packaging/pull/801">pypa/packaging#801</a></li> <li><a href="https://github.com/alexwlchan"><code>@alexwlchan</code></a> made their first contribution in <a href="https://redirect.github.com/pypa/packaging/pull/824">pypa/packaging#824</a></li> <li><a href="https://github.com/jaraco"><code>@jaraco</code></a> made their first contribution in <a href="https://redirect.github.com/pypa/packaging/pull/825">pypa/packaging#825</a></li> <li><a href="https://github.com/notatallshaw"><code>@notatallshaw</code></a> made their first contribution in <a href="https://redirect.github.com/pypa/packaging/pull/794">pypa/packaging#794</a></li> <li><a href="https://github.com/freakboy3742"><code>@freakboy3742</code></a> made their first contribution in <a href="https://redirect.github.com/pypa/packaging/pull/832">pypa/packaging#832</a></li> <li><a href="https://github.com/Carreau"><code>@Carreau</code></a> made their first contribution in <a href="https://redirect.github.com/pypa/packaging/pull/844">pypa/packaging#844</a></li> <li><a href="https://github.com/ewdurbin"><code>@ewdurbin</code></a> made their first contribution in <a href="https://redirect.github.com/pypa/packaging/pull/828">pypa/packaging#828</a></li> </ul> <p><strong>Full Changelog</strong>: <a href="https://github.com/pypa/packaging/compare/24.1...24.2">https://github.com/pypa/packaging/compare/24.1...24.2</a></p> </blockquote> </details> <details> <summary>Changelog</summary> <p><em>Sourced from <a href="https://github.com/pypa/packaging/blob/main/CHANGELOG.rst">packaging's changelog</a>.</em></p> <blockquote> <p>24.2 - 2024-11-08</p> <pre><code> * PEP 639: Implement License-Expression and License-File (:issue:`828`) * Use ``!r`` formatter for error messages with filenames (:issue:`844`) * Add support for PEP 730 iOS tags (:issue:`832`) * Fix prerelease detection for ``>`` and ``<`` (:issue:`794`) * Fix uninformative error message (:issue:`830`) * Refactor ``canonicalize_version`` (:issue:`793`) * Patch python_full_version unconditionally (:issue:`825`) * Fix doc for ``canonicalize_version`` to mention ``strip_trailing_zero`` and a typo in a docstring (:issue:`801`) * Fix typo in Version ``__str__`` (:issue:`817`) * Support creating a ``SpecifierSet`` from an iterable of ``Specifier`` objects (:issue:`775`) </code></pre> </blockquote> </details> <details> <summary>Commits</summary> <ul> <li><a href="https://github.com/pypa/packaging/commit/d8e3b31b734926ebbcaff654279f6855a73e052f"><code>d8e3b31</code></a> Bump for release</li> <li><a href="https://github.com/pypa/packaging/commit/2de393d910926a0408496ac5583f733c4b9f0f5e"><code>2de393d</code></a> Update changelog for release</li> <li><a href="https://github.com/pypa/packaging/commit/9c66f5c844bf3262f560c1521a0e6837079b16ff"><code>9c66f5c</code></a> Remove extraneous quotes in f-strings by using <code>!r</code> (<a href="https://redirect.github.com/pypa/packaging/issues/848">#848</a>)</li> <li><a href="https://github.com/pypa/packaging/commit/4dc334c86d43f83371b194ca91618ed99e0e49ca"><code>4dc334c</code></a> Upgrade to latest mypy (<a href="https://redirect.github.com/pypa/packaging/issues/853">#853</a>)</li> <li><a href="https://github.com/pypa/packaging/commit/d1a9f938343de11f7322151c1f6de25cbb61718b"><code>d1a9f93</code></a> Bump the github-actions group with 4 updates (<a href="https://redirect.github.com/pypa/packaging/issues/852">#852</a>)</li> <li><a href="https://github.com/pypa/packaging/commit/029f41580098bcf52b69684843bdc7ea37959a7e"><code>029f415</code></a> PEP 639: Implement License-Expression and License-File (<a href="https://redirect.github.com/pypa/packaging/issues/828">#828</a>)</li> <li><a href="https://github.com/pypa/packaging/commit/6c338a8425803476769151953cc5de5548e2befa"><code>6c338a8</code></a> Use !r formatter for error messages with filenames. (<a href="https://redirect.github.com/pypa/packaging/issues/844">#844</a>)</li> <li><a href="https://github.com/pypa/packaging/commit/28e7da78f6f73b4856260e24051b35a4517c0149"><code>28e7da7</code></a> Add a comment as to why <code>Metadata.name</code> isn't normalized (<a href="https://redirect.github.com/pypa/packaging/issues/842">#842</a>)</li> <li><a href="https://github.com/pypa/packaging/commit/ce0d79c5ab6d27e856a059fbc24c0b0a7c9d8581"><code>ce0d79c</code></a> Mention updating changelog in release process (<a href="https://redirect.github.com/pypa/packaging/issues/841">#841</a>)</li> <li><a href="https://github.com/pypa/packaging/commit/ac5bdf3605ddcbfa1f672f7cf93a19fd6d3d77ea"><code>ac5bdf3</code></a> Update the changelog to reflect 24.1 changes (<a href="https://redirect.github.com/pypa/packaging/issues/840">#840</a>)</li> <li>Additional commits viewable in <a href="https://github.com/pypa/packaging/compare/24.1...24.2">compare view</a></li> </ul> </details> <br /> Updates `wheel` from 0.44.0 to 0.45.0 <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/pypa/wheel/releases">wheel's releases</a>.</em></p> <blockquote> <h2>0.45.0</h2> <ul> <li> <p>Refactored the <code>convert</code> command to not need setuptools to be installed</p> </li> <li> <p>Don't configure setuptools logging unless running <code>bdist_wheel</code></p> </li> <li> <p>Added a redirection from <code>wheel.bdist_wheel.bdist_wheel</code> to <code>setuptools.command.bdist_wheel.bdist_wheel</code> to improve compatibility with <code>setuptools</code>' latest fixes.</p> <p>Projects are still advised to migrate away from the deprecated module and import the <code>setuptools</code>' implementation explicitly. (PR by <a href="https://github.com/abravalheri"><code>@abravalheri</code></a>)</p> </li> </ul> </blockquote> </details> <details> <summary>Changelog</summary> <p><em>Sourced from <a href="https://github.com/pypa/wheel/blob/main/docs/news.rst">wheel's changelog</a>.</em></p> <blockquote> <h1>Release Notes</h1> <p><strong>0.45.0 (2024-11-08)</strong></p> <ul> <li> <p>Refactored the <code>convert</code> command to not need setuptools to be installed</p> </li> <li> <p>Don't configure setuptools logging unless running <code>bdist_wheel</code></p> </li> <li> <p>Added a redirection from <code>wheel.bdist_wheel.bdist_wheel</code> to <code>setuptools.command.bdist_wheel.bdist_wheel</code> to improve compatibility with <code>setuptools</code>' latest fixes.</p> <p>Projects are still advised to migrate away from the deprecated module and import the <code>setuptools</code>' implementation explicitly. (PR by <a href="https://github.com/abravalheri"><code>@abravalheri</code></a>)</p> </li> </ul> <p><strong>0.44.0 (2024-08-04)</strong></p> <ul> <li>Canonicalized requirements in METADATA file (PR by Wim Jeantine-Glenn)</li> <li>Deprecated the <code>bdist_wheel</code> module, as the code was migrated to <code>setuptools</code> itself</li> </ul> <p><strong>0.43.0 (2024-03-11)</strong></p> <ul> <li>Dropped support for Python 3.7</li> <li>Updated vendored <code>packaging</code> to 24.0</li> </ul> <p><strong>0.42.0 (2023-11-26)</strong></p> <ul> <li>Allowed removing build tag with <code>wheel tags --build ""</code></li> <li>Fixed <code>wheel pack</code> and <code>wheel tags</code> writing updated <code>WHEEL</code> fields after a blank line, causing other tools to ignore them</li> <li>Fixed <code>wheel pack</code> and <code>wheel tags</code> writing <code>WHEEL</code> with CRLF line endings or a mix of CRLF and LF</li> <li>Fixed <code>wheel pack --build-number ""</code> not removing build tag from <code>WHEEL</code> (above changes by Benjamin Gilbert)</li> </ul> <p><strong>0.41.3 (2023-10-30)</strong></p> <ul> <li>Updated vendored <code>packaging</code> to 23.2</li> <li>Fixed ABI tag generation for CPython 3.13a1 on Windows (PR by Sam Gross)</li> </ul> <p><strong>0.41.2 (2023-08-22)</strong></p> <ul> <li>Fixed platform tag detection for GraalPy and 32-bit python running on an aarch64 kernel (PR by Matthieu Darbois)</li> <li>Fixed <code>wheel tags</code> to not list directories in <code>RECORD</code> files (PR by Mike Taves)</li> <li>Fixed ABI tag generation for GraalPy (PR by Michael Simacek)</li> </ul> <p><strong>0.41.1 (2023-08-05)</strong></p> <!-- raw HTML omitted --> </blockquote> <p>... (truncated)</p> </details> <details> <summary>Commits</summary> <ul> <li><a href="https://github.com/pypa/wheel/commit/d78f0e372199f8294556345d867af4d3cf118418"><code>d78f0e3</code></a> Created a new release</li> <li><a href="https://github.com/pypa/wheel/commit/f064c699209e36ec2948537b7cadabf84a110c30"><code>f064c69</code></a> Added license files for vendored <code>packaging</code></li> <li><a href="https://github.com/pypa/wheel/commit/68387afcd33cb514a4da811d2fc5de73c8797e48"><code>68387af</code></a> Only configure setuptools logging if bdist_wheel is imported (<a href="https://redirect.github.com/pypa/wheel/issues/641">#641</a>)</li> <li><a href="https://github.com/pypa/wheel/commit/c81f5c954a8ca7698e6df9de39cf0013295949fa"><code>c81f5c9</code></a> Refactored the <code>wheel convert</code> command to not require setuptools (<a href="https://redirect.github.com/pypa/wheel/issues/640">#640</a>)</li> <li><a href="https://github.com/pypa/wheel/commit/e43464d32feaddddb235ffe21b4bf13c1193465d"><code>e43464d</code></a> Adjusted target Python versions in GitHub CI</li> <li><a href="https://github.com/pypa/wheel/commit/e9894e71bc62e5808710bc8c2c268de51aef52d4"><code>e9894e7</code></a> Tweaked pytest settings to make the tracebacks easier to read</li> <li><a href="https://github.com/pypa/wheel/commit/baf6bf89562cb42a0ca71cc1e804600b161952eb"><code>baf6bf8</code></a> Removed Cirrus CI configuration</li> <li><a href="https://github.com/pypa/wheel/commit/28c1ba1e2a6d08edc03c73e29293a571888981f9"><code>28c1ba1</code></a> Improved compatibility with future versions of <code>setuptools</code> (<a href="https://redirect.github.com/pypa/wheel/issues/638">#638</a>)</li> <li><a href="https://github.com/pypa/wheel/commit/9254a4f9f8d9475c9f4d00a854694ddf1834ba5b"><code>9254a4f</code></a> Exclude <code>@overload</code> and <code>if TYPE_CHECKING:</code> from coverage checks</li> <li><a href="https://github.com/pypa/wheel/commit/d841597258d04f10346fbcc0ce95f9278b38ef08"><code>d841597</code></a> [pre-commit.ci] pre-commit autoupdate (<a href="https://redirect.github.com/pypa/wheel/issues/635">#635</a>)</li> <li>Additional commits viewable in <a href="https://github.com/pypa/wheel/compare/0.44.0...0.45.0">compare view</a></li> </ul> </details> <br /> Updates `zipp` from 3.20.0 to 3.21.0 <details> <summary>Changelog</summary> <p><em>Sourced from <a href="https://github.com/jaraco/zipp/blob/main/NEWS.rst">zipp's changelog</a>.</em></p> <blockquote> <h1>v3.21.0</h1> <h2>Features</h2> <ul> <li>Improve performances of :meth:<code>zipfile.Path.open</code> for non-reading modes. (1a1928d)</li> <li>Rely on cached_property to cache values on the instance.</li> <li>Rely on save_method_args to save method args.</li> </ul> <h1>v3.20.2</h1> <h2>Bugfixes</h2> <ul> <li>Make zipp.compat.overlay.zipfile hashable. (<a href="https://redirect.github.com/jaraco/zipp/issues/126">#126</a>)</li> </ul> <h1>v3.20.1</h1> <h2>Bugfixes</h2> <ul> <li><code>python/cpython#123270</code></li> </ul> </blockquote> </details> <details> <summary>Commits</summary> <ul> <li><a href="https://github.com/jaraco/zipp/commit/45b7f675c0bcaa4f3f9d15b4399fc71e74f2408c"><code>45b7f67</code></a> Finalize</li> <li><a href="https://github.com/jaraco/zipp/commit/71ddd8d4f4ab200af870f0060d9ee8c6b7056681"><code>71ddd8d</code></a> Skip <code>zipfile.Path.exists</code><code>python/cpython#126576</code></li> <li><a href="https://github.com/jaraco/zipp/commit/9a2705ee2a376a948f1e89320c8c7356829a42eb"><code>9a2705e</code></a> Merge <a href="https://github.com/jaraco/skeleton">https://github.com/jaraco/skeleton</a></li> <li><a href="https://github.com/jaraco/zipp/commit/5c34e69568f23a524af4fa9dad3f5e80f22ec3e6"><code>5c34e69</code></a> Use extend for proper workaround.</li> <li><a href="https://github.com/jaraco/zipp/commit/ee027f698c9cc629fb0018bc55cbb73267db2817"><code>ee027f6</code></a> Merge <a href="https://github.com/jaraco/skeleton">https://github.com/jaraco/skeleton</a></li> <li><a href="https://github.com/jaraco/zipp/commit/750a1891ec4a1c0602050e3463e9593a8c13aa14"><code>750a189</code></a> Require Python 3.9 or later now that Python 3.8 is EOL.</li> <li><a href="https://github.com/jaraco/zipp/commit/e61a9df7cdc9c8d1b56c30b7b3f94a7cdac14414"><code>e61a9df</code></a> Include pyproject.toml in ruff.toml.</li> <li><a href="https://github.com/jaraco/zipp/commit/db4dfc495552aca8d6f05ed58441fa65fdc2ed9c"><code>db4dfc4</code></a><code>jaraco/skeleton#151</code></li> <li><a href="https://github.com/jaraco/zipp/commit/62b6678a32087ed3bfc8ff19761764340295834e"><code>62b6678</code></a> Bump pre-commit hook for ruff to avoid clashes with pytest-ruff (jaraco/skele...</li> <li><a href="https://github.com/jaraco/zipp/commit/466f53538bd84cefcca39c5a42775fef6a1bf346"><code>466f535</code></a> Merge pull request <a href="https://redirect.github.com/jaraco/zipp/issues/109">#109</a> from jaraco/feature/functools</li> <li>Additional commits viewable in <a href="https://github.com/jaraco/zipp/compare/v3.20.0...v3.21.0">compare view</a></li> </ul> </details> <br /> Updates `tqdm` from 4.66.5 to 4.67.0 <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/tqdm/tqdm/releases">tqdm's releases</a>.</em></p> <blockquote> <h2>tqdm v4.67.0 stable</h2> <ul> <li><code>contrib.discord</code>: replace <code>disco-py</code> with <code>requests</code> (<a href="https://redirect.github.com/tqdm/tqdm/issues/1536">#1536</a>)</li> </ul> <h2>tqdm v4.66.6 stable</h2> <ul> <li>cli: zip-safe <code>--manpath</code>, <code>--comppath</code> (<a href="https://redirect.github.com/tqdm/tqdm/issues/1627">#1627</a>)</li> <li>misc framework updates (<a href="https://redirect.github.com/tqdm/tqdm/issues/1627">#1627</a>) <ul> <li>fix <code>pytest</code> <code>DeprecationWarning</code></li> <li>fix <code>snapcraft</code> build</li> <li>fix <code>nbval</code> <code>DeprecationWarning</code></li> <li>update & tidy workflows</li> <li>bump pre-commit</li> <li>docs: update URLs</li> </ul> </li> </ul> </blockquote> </details> <details> <summary>Commits</summary> <ul> <li><a href="https://github.com/tqdm/tqdm/commit/35a6ee9a4527bab5c0c7234531269e0c7fd0f2fd"><code>35a6ee9</code></a> bump version, merge pull request <a href="https://redirect.github.com/tqdm/tqdm/issues/1536">#1536</a> from guigoruiz1</li> <li><a href="https://github.com/tqdm/tqdm/commit/8aa9470e485a90679936d3781a4f953cf5afa8f4"><code>8aa9470</code></a> add discord requests dep</li> <li><a href="https://github.com/tqdm/tqdm/commit/1db24b4ff442c43752cf56a55b1782998c76801c"><code>1db24b4</code></a> better user-agent</li> <li><a href="https://github.com/tqdm/tqdm/commit/61365d8321ae4ca433d2c6cda770a73a8e0e62cb"><code>61365d8</code></a> handle rate limit</li> <li><a href="https://github.com/tqdm/tqdm/commit/670840021ddea4908a2e68144ce6c009d7e16e96"><code>6708400</code></a> use requests.Session</li> <li><a href="https://github.com/tqdm/tqdm/commit/f1129e70c9983c527413e50e63016d4d885c51d3"><code>f1129e7</code></a> restore original docs, misc linting</li> <li><a href="https://github.com/tqdm/tqdm/commit/03b90e444ed18b88aed710371309c271c25ac391"><code>03b90e4</code></a> Using correct user agent</li> <li><a href="https://github.com/tqdm/tqdm/commit/b78efea5903a5f511a3bb22f8de32340ca4b954b"><code>b78efea</code></a> Using REST API directly</li> <li><a href="https://github.com/tqdm/tqdm/commit/5b84012637e1fa6b5fec1b5ce0ac4d7c08eef5fe"><code>5b84012</code></a> bump version, merge pull request <a href="https://redirect.github.com/tqdm/tqdm/issues/1627">#1627</a> from tqdm/devel</li> <li><a href="https://github.com/tqdm/tqdm/commit/0a439b5289b28e0a511b16fd10005d44b06cfbde"><code>0a439b5</code></a> tests: fix nbval DeprecationWarning</li> <li>Additional commits viewable in <a href="https://github.com/tqdm/tqdm/compare/v4.66.5...v4.67.0">compare view</a></li> </ul> </details> <br /> Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`. [//]: # (dependabot-automerge-start) [//]: # (dependabot-automerge-end) --- <details> <summary>Dependabot commands and options</summary> <br /> You can trigger Dependabot actions by commenting on this PR: - `@dependabot rebase` will rebase this PR - `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it - `@dependabot merge` will merge this PR after your CI passes on it - `@dependabot squash and merge` will squash and merge this PR after your CI passes on it - `@dependabot cancel merge` will cancel a previously requested merge and block automerging - `@dependabot reopen` will reopen this PR if it is closed - `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually - `@dependabot show <dependency name> ignore conditions` will show all of the ignore conditions of the specified dependency - `@dependabot ignore <dependency name> major version` will close this group update PR and stop Dependabot creating any more for the specific dependency's major version (unless you unignore this specific dependency's major version or upgrade to it yourself) - `@dependabot ignore <dependency name> minor version` will close this group update PR and stop Dependabot creating any more for the specific dependency's minor version (unless you unignore this specific dependency's minor version or upgrade to it yourself) - `@dependabot ignore <dependency name>` will close this group update PR and stop Dependabot creating any more for the specific dependency (unless you unignore this specific dependency or upgrade to it yourself) - `@dependabot unignore <dependency name>` will remove all of the ignore conditions of the specified dependency - `@dependabot unignore <dependency name> <ignore condition>` will remove the ignore condition of the specified dependency and ignore conditions </details> Signed-off-by: dependabot[bot] <[email protected]> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
github-merge-queue bot
pushed a commit
to mozilla/experimenter
that referenced
this pull request
Nov 12, 2024
…11741) Bumps [zipp](https://github.com/jaraco/zipp) from 3.20.0 to 3.21.0. <details> <summary>Changelog</summary> <p><em>Sourced from <a href="https://github.com/jaraco/zipp/blob/main/NEWS.rst">zipp's changelog</a>.</em></p> <blockquote> <h1>v3.21.0</h1> <h2>Features</h2> <ul> <li>Improve performances of :meth:<code>zipfile.Path.open</code> for non-reading modes. (1a1928d)</li> <li>Rely on cached_property to cache values on the instance.</li> <li>Rely on save_method_args to save method args.</li> </ul> <h1>v3.20.2</h1> <h2>Bugfixes</h2> <ul> <li>Make zipp.compat.overlay.zipfile hashable. (<a href="https://redirect.github.com/jaraco/zipp/issues/126">#126</a>)</li> </ul> <h1>v3.20.1</h1> <h2>Bugfixes</h2> <ul> <li><code>python/cpython#123270</code></li> </ul> </blockquote> </details> <details> <summary>Commits</summary> <ul> <li><a href="https://github.com/jaraco/zipp/commit/45b7f675c0bcaa4f3f9d15b4399fc71e74f2408c"><code>45b7f67</code></a> Finalize</li> <li><a href="https://github.com/jaraco/zipp/commit/71ddd8d4f4ab200af870f0060d9ee8c6b7056681"><code>71ddd8d</code></a> Skip <code>zipfile.Path.exists</code><code>python/cpython#126576</code></li> <li><a href="https://github.com/jaraco/zipp/commit/9a2705ee2a376a948f1e89320c8c7356829a42eb"><code>9a2705e</code></a> Merge <a href="https://github.com/jaraco/skeleton">https://github.com/jaraco/skeleton</a></li> <li><a href="https://github.com/jaraco/zipp/commit/5c34e69568f23a524af4fa9dad3f5e80f22ec3e6"><code>5c34e69</code></a> Use extend for proper workaround.</li> <li><a href="https://github.com/jaraco/zipp/commit/ee027f698c9cc629fb0018bc55cbb73267db2817"><code>ee027f6</code></a> Merge <a href="https://github.com/jaraco/skeleton">https://github.com/jaraco/skeleton</a></li> <li><a href="https://github.com/jaraco/zipp/commit/750a1891ec4a1c0602050e3463e9593a8c13aa14"><code>750a189</code></a> Require Python 3.9 or later now that Python 3.8 is EOL.</li> <li><a href="https://github.com/jaraco/zipp/commit/e61a9df7cdc9c8d1b56c30b7b3f94a7cdac14414"><code>e61a9df</code></a> Include pyproject.toml in ruff.toml.</li> <li><a href="https://github.com/jaraco/zipp/commit/db4dfc495552aca8d6f05ed58441fa65fdc2ed9c"><code>db4dfc4</code></a><code>jaraco/skeleton#151</code></li> <li><a href="https://github.com/jaraco/zipp/commit/62b6678a32087ed3bfc8ff19761764340295834e"><code>62b6678</code></a> Bump pre-commit hook for ruff to avoid clashes with pytest-ruff (jaraco/skele...</li> <li><a href="https://github.com/jaraco/zipp/commit/466f53538bd84cefcca39c5a42775fef6a1bf346"><code>466f535</code></a> Merge pull request <a href="https://redirect.github.com/jaraco/zipp/issues/109">#109</a> from jaraco/feature/functools</li> <li>Additional commits viewable in <a href="https://github.com/jaraco/zipp/compare/v3.20.0...v3.21.0">compare view</a></li> </ul> </details> <br /> [![Dependabot compatibility score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=zipp&package-manager=pip&previous-version=3.20.0&new-version=3.21.0)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores) Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`. [//]: # (dependabot-automerge-start) Dependabot will merge this PR once it's up-to-date and CI passes on it, as requested by @jaredlockhart. [//]: # (dependabot-automerge-end) --- <details> <summary>Dependabot commands and options</summary> <br /> You can trigger Dependabot actions by commenting on this PR: - `@dependabot rebase` will rebase this PR - `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it - `@dependabot merge` will merge this PR after your CI passes on it - `@dependabot squash and merge` will squash and merge this PR after your CI passes on it - `@dependabot cancel merge` will cancel a previously requested merge and block automerging - `@dependabot reopen` will reopen this PR if it is closed - `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually - `@dependabot show <dependency name> ignore conditions` will show all of the ignore conditions of the specified dependency - `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself) </details> Signed-off-by: dependabot[bot] <[email protected]> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
When
zipfile.Path.open
is called, the implementation will check whether the path already exists in the ZIP file. However, this check is only required when the ZIP file is in read mode. By swapping arguments of theand
operator, the short-circuiting will prevent the check from being run in write mode.This change will improve the performance of
open()
, because checking whether a file exists is slow in write mode, especially when the archive has many members.