Skip to content
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

Use the stdlib importlib.metadata when available #1024

Merged
merged 5 commits into from
Jun 26, 2024

Conversation

eli-schwartz
Copy link
Contributor

The use of importlib_metadata relies on features that were introduced in python 3.10. Aside for that, it should be fine to use the stdlib directly.

Fixes #773

From #773 (comment):

I think this should at least wait until 3.10 is officially released and is added to Twine's testing matrix.

It's in the testing matrix. More importantly, we are now up to python 3.12 -- there are more versions of non-EOL python that have a suitable stdlib version than don't.

If we do decide to use importlib.metadata, then I think the version check should be done in one place, as suggested in #772 (comment).

I'm not sure I understand, largely because no specific reason was given there. Adding a new module just to wrap one import seems like a very complicated solution for something that doesn't need continual maintenance, and introduces additional stat'ing of the filesystem / opening a bunch more files for reading, to boot. If the concern is about dropping outdated version blocks in just one place, then puypgrade (as previously used in this repo) can make that edit for you. :)

The use of importlib_metadata relies on features that were introduced in
python 3.10. Aside for that, it should be fine to use the stdlib
directly.

Fixes pypa#773
Copy link
Member

@jaraco jaraco left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This looks fine to me. importlib_metadata 3.6 was included in Python 3.10, so it's unlikely that twine is reliant on features added in later Pythons or releases of importlib_metadata, and the tests seem to confirm that.

@jaraco jaraco closed this Apr 18, 2024
@jaraco jaraco reopened this Apr 18, 2024
@eli-schwartz
Copy link
Contributor Author

The refreshed CI has two issues resulting in failures:

  • tests pass but reduce coverage by 1%? 🤷
  • integration failure because of setuptools changes in canonicalization of sdist/wheel filenames.

The coverage thing is interesting because if you could collect coverage data across multiple CI jobs and analyze them together, I bet it would not fail. It's just failing because version-dependent code branches. I know that external services can aggregate coverage data across CI runs (even more useful when you have OS-specific branches!) but I'm unfamiliar with the available options for local analysis inside the action. Maybe copying coverage data to an artifact and analyzing it in a later job?

@jaraco
Copy link
Member

jaraco commented Apr 18, 2024

My vote is to ignore the coverage concerns or exclude them. I hope eventually to learn how to collect the coverage results together, but I haven't yet done so and when I do, I'll do that in jaraco/skeleton and/or coherent-oss and not for one project at a time.

@eli-schwartz
Copy link
Contributor Author

Great, works for me. :) I wasn't going to have time to look into that either way.

@sigmavirus24
Copy link
Member

Actually there's a blog post from Hynek that makes lays out how to do this well. It's not hard

@jaraco
Copy link
Member

jaraco commented Jun 26, 2024

It seems like fixing the coverage strategy is out of scope for the proposed change and is already tracked in #954.

@jaraco
Copy link
Member

jaraco commented Jun 26, 2024

CI is broken pending the merge of #1123.

@jaraco jaraco closed this Jun 26, 2024
@jaraco jaraco reopened this Jun 26, 2024
@jaraco
Copy link
Member

jaraco commented Jun 26, 2024

CI is broken pending the merge of #1123.

The 5.1.1 release has a workaround for the pkginfo error.

@jaraco jaraco force-pushed the stdlib-importlib.metadata branch from 8c992b7 to b9d2198 Compare June 26, 2024 18:14
@jaraco
Copy link
Member

jaraco commented Jun 26, 2024

In the latest commit, I've consolidated the compatibility logic into its own module, a module that clearly indicates its candidacy for removal after Python 3.9 is dropped.

@jaraco jaraco force-pushed the stdlib-importlib.metadata branch from b9d2198 to 152b545 Compare June 26, 2024 18:17
twine/compat/py39.py Outdated Show resolved Hide resolved
@jaraco
Copy link
Member

jaraco commented Jun 26, 2024

Now the tests are failing with twine/__init__.py:48: error: Module has no attribute "parseaddr" [attr-defined]. But this diff doesn't alter that behavior.

Hmm. It seems to be an error in mypy. Changing the import to import email.utils works around the glitch.

@jaraco jaraco force-pushed the stdlib-importlib.metadata branch from c220389 to 946c445 Compare June 26, 2024 18:59
@jaraco jaraco merged commit 5bf3f38 into pypa:main Jun 26, 2024
23 checks passed
@eli-schwartz eli-schwartz deleted the stdlib-importlib.metadata branch June 26, 2024 19:09
github-actions bot pushed a commit to Hochfrequenz/python-generics that referenced this pull request Dec 2, 2024
Bumps [twine](https://github.com/pypa/twine) from 5.1.1 to 6.0.1.
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a
href="https://github.com/pypa/twine/blob/main/docs/changelog.rst">twine's
changelog</a>.</em></p>
<blockquote>
<h2>Twine 6.0.1 (2024-11-30)</h2>
<p>Bugfixes
^^^^^^^^</p>
<ul>
<li>Fixed a regression where <code>twine check</code> would fail to
expand
wildcards, e.g. <code>twine check 'dist/*'</code>.
(<code>[#1188](pypa/twine#1188)
&lt;https://github.com/pypa/twine/issues/1188&gt;</code>_)</li>
</ul>
<p>Misc
^^^^</p>
<ul>
<li><code>[#1184](pypa/twine#1184)
&lt;https://github.com/pypa/twine/issues/1184&gt;</code>_</li>
</ul>
<h2>Twine 6.0.0 (2024-11-29)</h2>
<p>Bugfixes
^^^^^^^^</p>
<ul>
<li>Restore support for pkginfo 1.11
(<code>[#1116](pypa/twine#1116)
&lt;https://github.com/pypa/twine/issues/1116&gt;</code>_)</li>
</ul>
<p>Deprecations and Removals
^^^^^^^^^^^^^^^^^^^^^^^^^</p>
<ul>
<li>Username for PyPI and Test PyPI now defaults to
<strong>token</strong> but no longer overrides a username configured in
the environment or supplied on the command line. Workflows still
supplying anything other than <strong>token</strong> for the username
when uploading to PyPI or Test PyPI will now fail. Either supply
<strong>token</strong> or do not supply a username at all.
(<code>[#1121](pypa/twine#1121)
&lt;https://github.com/pypa/twine/issues/1121&gt;</code>_)</li>
</ul>
<p>Misc
^^^^</p>
<ul>
<li><code>[#1024](pypa/twine#1024)
&lt;https://github.com/pypa/twine/issues/1024&gt;</code>_</li>
</ul>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="https://github.com/pypa/twine/commit/a723876fd4398be57838873e60867566b6220a53"><code>a723876</code></a>
Merge pull request <a
href="https://redirect.github.com/pypa/twine/issues/1189">#1189</a> from
pypa/release-6.0.1</li>
<li><a
href="https://github.com/pypa/twine/commit/9a24828cbded183d02d0b3f5a8af41b7764dda98"><code>9a24828</code></a>
Update changelog for 6.0.1</li>
<li><a
href="https://github.com/pypa/twine/commit/a0170058016cb7ed9554ef648a48c1899917d255"><code>a017005</code></a>
Merge pull request <a
href="https://redirect.github.com/pypa/twine/issues/1188">#1188</a> from
pypa/ww/fix-twine-check-glob</li>
<li><a
href="https://github.com/pypa/twine/commit/e98f03bb0932e364065f827f804806bacccc436d"><code>e98f03b</code></a>
check: fix handling of non-shell-expanded globs</li>
<li><a
href="https://github.com/pypa/twine/commit/873f33ed40bb38407a87abba6cd2a65f35eb6286"><code>873f33e</code></a>
build(deps): bump pypa/gh-action-pypi-publish from 1.11.0 to 1.12.2 (<a
href="https://redirect.github.com/pypa/twine/issues/1175">#1175</a>)</li>
<li><a
href="https://github.com/pypa/twine/commit/067412e84cfdd39929d838075ef8fa3d2cb0d733"><code>067412e</code></a>
Use brackets for the default value of option arguments (<a
href="https://redirect.github.com/pypa/twine/issues/1149">#1149</a>)</li>
<li><a
href="https://github.com/pypa/twine/commit/f32dc3545b52389dac0cbd28059833d48c36b4f4"><code>f32dc35</code></a>
Apply ruff/Perflint rule (<a
href="https://redirect.github.com/pypa/twine/issues/1136">#1136</a>)</li>
<li><a
href="https://github.com/pypa/twine/commit/aa58273f52afab52d3dd00b2c6cf3b472c6ee20d"><code>aa58273</code></a>
Don't require importlib_metadata on Python 3.10+</li>
<li><a
href="https://github.com/pypa/twine/commit/675565f35c6d0adc435c9da6cb123f41dcaeffb8"><code>675565f</code></a>
changelog: record <a
href="https://redirect.github.com/pypa/twine/issues/1184">#1184</a></li>
<li><a
href="https://github.com/pypa/twine/commit/80cc58c0ddbd68b107c4709be5072f3e309b843c"><code>80cc58c</code></a>
chore: mark 3.13 as explicitly supported</li>
<li>Additional commits viewable in <a
href="https://github.com/pypa/twine/compare/v5.1.1...6.0.1">compare
view</a></li>
</ul>
</details>
<br />


[![Dependabot compatibility
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=twine&package-manager=pip&previous-version=5.1.1&new-version=6.0.1)](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-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>
ms-lolo pushed a commit to microsoft/rats that referenced this pull request Dec 11, 2024
…ols with 6 updates (#399)

Bumps the package-dependencies group in /rats-devtools with 6 updates:

| Package | From | To |
| --- | --- | --- |
| [twine](https://github.com/pypa/twine) | `5.1.1` | `6.0.1` |
| [mkdocs-material](https://github.com/squidfunk/mkdocs-material) |
`9.5.46` | `9.5.48` |
| [coverage](https://github.com/nedbat/coveragepy) | `7.6.8` | `7.6.9` |
| [pyright](https://github.com/RobertCraigie/pyright-python) | `1.1.389`
| `1.1.390` |
| [pytest](https://github.com/pytest-dev/pytest) | `8.3.3` | `8.3.4` |
| [ruff](https://github.com/astral-sh/ruff) | `0.8.0` | `0.8.2` |

Updates `twine` from 5.1.1 to 6.0.1
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a
href="https://github.com/pypa/twine/blob/main/docs/changelog.rst">twine's
changelog</a>.</em></p>
<blockquote>
<h2>Twine 6.0.1 (2024-11-30)</h2>
<p>Bugfixes
^^^^^^^^</p>
<ul>
<li>Fixed a regression where <code>twine check</code> would fail to
expand
wildcards, e.g. <code>twine check 'dist/*'</code>.
(<code>[#1188](pypa/twine#1188)
&lt;https://github.com/pypa/twine/issues/1188&gt;</code>_)</li>
</ul>
<p>Misc
^^^^</p>
<ul>
<li><code>[#1184](pypa/twine#1184)
&lt;https://github.com/pypa/twine/issues/1184&gt;</code>_</li>
</ul>
<h2>Twine 6.0.0 (2024-11-29)</h2>
<p>Bugfixes
^^^^^^^^</p>
<ul>
<li>Restore support for pkginfo 1.11
(<code>[#1116](pypa/twine#1116)
&lt;https://github.com/pypa/twine/issues/1116&gt;</code>_)</li>
</ul>
<p>Deprecations and Removals
^^^^^^^^^^^^^^^^^^^^^^^^^</p>
<ul>
<li>Username for PyPI and Test PyPI now defaults to
<strong>token</strong> but no longer overrides a username configured in
the environment or supplied on the command line. Workflows still
supplying anything other than <strong>token</strong> for the username
when uploading to PyPI or Test PyPI will now fail. Either supply
<strong>token</strong> or do not supply a username at all.
(<code>[#1121](pypa/twine#1121)
&lt;https://github.com/pypa/twine/issues/1121&gt;</code>_)</li>
</ul>
<p>Misc
^^^^</p>
<ul>
<li><code>[#1024](pypa/twine#1024)
&lt;https://github.com/pypa/twine/issues/1024&gt;</code>_</li>
</ul>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="https://github.com/pypa/twine/commit/a723876fd4398be57838873e60867566b6220a53"><code>a723876</code></a>
Merge pull request <a
href="https://redirect.github.com/pypa/twine/issues/1189">#1189</a> from
pypa/release-6.0.1</li>
<li><a
href="https://github.com/pypa/twine/commit/9a24828cbded183d02d0b3f5a8af41b7764dda98"><code>9a24828</code></a>
Update changelog for 6.0.1</li>
<li><a
href="https://github.com/pypa/twine/commit/a0170058016cb7ed9554ef648a48c1899917d255"><code>a017005</code></a>
Merge pull request <a
href="https://redirect.github.com/pypa/twine/issues/1188">#1188</a> from
pypa/ww/fix-twine-check-glob</li>
<li><a
href="https://github.com/pypa/twine/commit/e98f03bb0932e364065f827f804806bacccc436d"><code>e98f03b</code></a>
check: fix handling of non-shell-expanded globs</li>
<li><a
href="https://github.com/pypa/twine/commit/873f33ed40bb38407a87abba6cd2a65f35eb6286"><code>873f33e</code></a>
build(deps): bump pypa/gh-action-pypi-publish from 1.11.0 to 1.12.2 (<a
href="https://redirect.github.com/pypa/twine/issues/1175">#1175</a>)</li>
<li><a
href="https://github.com/pypa/twine/commit/067412e84cfdd39929d838075ef8fa3d2cb0d733"><code>067412e</code></a>
Use brackets for the default value of option arguments (<a
href="https://redirect.github.com/pypa/twine/issues/1149">#1149</a>)</li>
<li><a
href="https://github.com/pypa/twine/commit/f32dc3545b52389dac0cbd28059833d48c36b4f4"><code>f32dc35</code></a>
Apply ruff/Perflint rule (<a
href="https://redirect.github.com/pypa/twine/issues/1136">#1136</a>)</li>
<li><a
href="https://github.com/pypa/twine/commit/aa58273f52afab52d3dd00b2c6cf3b472c6ee20d"><code>aa58273</code></a>
Don't require importlib_metadata on Python 3.10+</li>
<li><a
href="https://github.com/pypa/twine/commit/675565f35c6d0adc435c9da6cb123f41dcaeffb8"><code>675565f</code></a>
changelog: record <a
href="https://redirect.github.com/pypa/twine/issues/1184">#1184</a></li>
<li><a
href="https://github.com/pypa/twine/commit/80cc58c0ddbd68b107c4709be5072f3e309b843c"><code>80cc58c</code></a>
chore: mark 3.13 as explicitly supported</li>
<li>Additional commits viewable in <a
href="https://github.com/pypa/twine/compare/v5.1.1...6.0.1">compare
view</a></li>
</ul>
</details>
<br />

Updates `mkdocs-material` from 9.5.46 to 9.5.48
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/squidfunk/mkdocs-material/releases">mkdocs-material's
releases</a>.</em></p>
<blockquote>
<h2>mkdocs-material-9.5.48</h2>
<ul>
<li>Fixed <a
href="https://redirect.github.com/squidfunk/mkdocs-material/issues/7774">#7774</a>:
Disabling social cards doesn't work</li>
</ul>
<h2>mkdocs-material-9.5.47</h2>
<ul>
<li>Fixed <a
href="https://redirect.github.com/squidfunk/mkdocs-material/issues/7750">#7750</a>:
Numeric tags break search</li>
<li>Fixed <a
href="https://redirect.github.com/squidfunk/mkdocs-material/issues/7748">#7748</a>:
Blog plugin breaks when using future drafts (9.5.45 regression)</li>
</ul>
<p>Thanks go to <a
href="https://github.com/perpil"><code>@​perpil</code></a> for their
contributions</p>
</blockquote>
</details>
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a
href="https://github.com/squidfunk/mkdocs-material/blob/master/CHANGELOG">mkdocs-material's
changelog</a>.</em></p>
<blockquote>
<p>mkdocs-material-9.5.48 (2024-12-08)</p>
<ul>
<li>Fixed <a
href="https://redirect.github.com/squidfunk/mkdocs-material/issues/7774">#7774</a>:
Disabling social cards doesn't work</li>
</ul>
<p>mkdocs-material-9.5.47 (2024-12-01)</p>
<ul>
<li>Fixed <a
href="https://redirect.github.com/squidfunk/mkdocs-material/issues/7750">#7750</a>:
Numeric tags break search</li>
<li>Fixed <a
href="https://redirect.github.com/squidfunk/mkdocs-material/issues/7748">#7748</a>:
Blog plugin breaks when using future drafts (9.5.45 regression)</li>
</ul>
<p>mkdocs-material-9.5.46 (2024-11-25)</p>
<ul>
<li>Added support for removing preload hints in privacy plugin</li>
<li>Fixed <a
href="https://redirect.github.com/squidfunk/mkdocs-material/issues/7734">#7734</a>:
Code blocks in h5 headlines are uppercased</li>
<li>Fixed <a
href="https://redirect.github.com/squidfunk/mkdocs-material/issues/7725">#7725</a>:
Blog plugin crashing on missing timezone (9.5.45 regression)</li>
</ul>
<p>mkdocs-material-9.5.45 (2024-11-20)</p>
<ul>
<li>Reduced size of Docker image through multi-stage build</li>
<li>Fixed <a
href="https://redirect.github.com/squidfunk/mkdocs-material/issues/7708">#7708</a>:
Blog plugin crashing on YAML dates with timezones</li>
</ul>
<p>mkdocs-material-9.5.44 (2024-11-05)</p>
<ul>
<li>Fixed <a
href="https://redirect.github.com/squidfunk/mkdocs-material/issues/7672">#7672</a>:
Font CSS 404's when using privacy plugin (9.5.43 regression)</li>
</ul>
<p>mkdocs-material-9.5.43 (2024-10-31)</p>
<ul>
<li>Added support for external images in SVGs in privacy plugin</li>
<li>Fixed <a
href="https://redirect.github.com/squidfunk/mkdocs-material/issues/7651">#7651</a>:
Privacy plugin doesn't handle quoted URLs in CSS</li>
</ul>
<p>mkdocs-material-9.5.42 (2024-10-20)</p>
<ul>
<li>Fixed <a
href="https://redirect.github.com/squidfunk/mkdocs-material/issues/7625">#7625</a>:
Invalid encoding of boolean attributes in privacy plugin</li>
<li>Fixed <a
href="https://redirect.github.com/squidfunk/mkdocs-material/issues/7624">#7624</a>:
Crash when disabling privacy plugin (9.5.41 regression)</li>
</ul>
<p>mkdocs-material-9.5.41 (2024-10-15)</p>
<ul>
<li>Fixed <a
href="https://redirect.github.com/squidfunk/mkdocs-material/issues/7619">#7619</a>:
Improved tooltip on logo disappears after instant navigation</li>
<li>Fixed <a
href="https://redirect.github.com/squidfunk/mkdocs-material/issues/7616">#7616</a>:
Race condition in built-in privacy plugin when inlining assets</li>
<li>Fixed <a
href="https://redirect.github.com/squidfunk/mkdocs-material/issues/7615">#7615</a>:
Comments and &quot;Was this page helpful?&quot; visible when
printing</li>
</ul>
<p>mkdocs-material-9.5.40 (2024-10-10)</p>
<ul>
<li>Updated Latvian translations</li>
<li>Fixed <a
href="https://redirect.github.com/squidfunk/mkdocs-material/issues/7597">#7597</a>:
Social cards not using site name on home page</li>
</ul>
<p>mkdocs-material-9.5.39+insiders-4.53.14 (2024-09-29)</p>
<ul>
<li>Fixed <a
href="https://redirect.github.com/squidfunk/mkdocs-material/issues/7567">#7567</a>:
Empty headlines when using typeset plugin with anchorlinks</li>
</ul>
<p>mkdocs-material-9.5.39 (2024-09-29)</p>
<!-- raw HTML omitted -->
</blockquote>
<p>... (truncated)</p>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="https://github.com/squidfunk/mkdocs-material/commit/622bf7a6916ec11b4f8d38db40722096ab861b59"><code>622bf7a</code></a>
Prepare 9.5.48 release</li>
<li><a
href="https://github.com/squidfunk/mkdocs-material/commit/bedd3fb2c806c4f45ce9857ebf116c2f64590d0f"><code>bedd3fb</code></a>
Updated dependencies</li>
<li><a
href="https://github.com/squidfunk/mkdocs-material/commit/a7dc57c23935c0420b01b78c13d9058fc057a16f"><code>a7dc57c</code></a>
Fixed disabling of social cards</li>
<li><a
href="https://github.com/squidfunk/mkdocs-material/commit/6c796c06ecc0fb641ad302c784822139c2d3807a"><code>6c796c0</code></a>
Documentation</li>
<li><a
href="https://github.com/squidfunk/mkdocs-material/commit/eab6959d0cf9bc8755bd4a914cd43ad2073e392d"><code>eab6959</code></a>
Documentation</li>
<li><a
href="https://github.com/squidfunk/mkdocs-material/commit/8ff76b03275e4ff03f64d124cae352baeeeefb02"><code>8ff76b0</code></a>
Updated dependencies</li>
<li><a
href="https://github.com/squidfunk/mkdocs-material/commit/fbf9d02806fbc7a5a10ed158fe2840f84f9a6050"><code>fbf9d02</code></a>
Updated dependencies</li>
<li><a
href="https://github.com/squidfunk/mkdocs-material/commit/65997ae16ebe4c94c015dea968c3ec5d85a1060e"><code>65997ae</code></a>
Updated dependencies</li>
<li><a
href="https://github.com/squidfunk/mkdocs-material/commit/f6b67b1b77f6eaaeb9c359bc5666827c4a6efb16"><code>f6b67b1</code></a>
Prepare 9.5.47 release</li>
<li><a
href="https://github.com/squidfunk/mkdocs-material/commit/60c0dc1b8af71cef004eb7a91ca6ea8bae1e76cc"><code>60c0dc1</code></a>
Documentation (<a
href="https://redirect.github.com/squidfunk/mkdocs-material/issues/7756">#7756</a>)</li>
<li>Additional commits viewable in <a
href="https://github.com/squidfunk/mkdocs-material/compare/9.5.46...9.5.48">compare
view</a></li>
</ul>
</details>
<br />

Updates `coverage` from 7.6.8 to 7.6.9
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a
href="https://github.com/nedbat/coveragepy/blob/master/CHANGES.rst">coverage's
changelog</a>.</em></p>
<blockquote>
<h2>Version 7.6.9 — 2024-12-06</h2>
<ul>
<li>Fix: <code>Tomas Uribe fixed &lt;pull 1901_&gt;</code>_ a
performance problem in the XML
report. Large code bases should produce XML reports much faster
now.</li>
</ul>
<p>.. _pull 1901: <a
href="https://redirect.github.com/nedbat/coveragepy/pull/1901">nedbat/coveragepy#1901</a></p>
<p>.. _changes_7-6-8:</p>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="https://github.com/nedbat/coveragepy/commit/daac76dde1681d968f37095cacc551b464888753"><code>daac76d</code></a>
docs: sample HTML for 7.6.9</li>
<li><a
href="https://github.com/nedbat/coveragepy/commit/f7d7e42705083b8c124fcc8be64da555095adfc7"><code>f7d7e42</code></a>
docs: prep for 7.6.9</li>
<li><a
href="https://github.com/nedbat/coveragepy/commit/8fe3b2bad5de5e750c104ad2ddb251a0500dd146"><code>8fe3b2b</code></a>
docs: thanks, Tomas Uribe for <a
href="https://redirect.github.com/nedbat/coveragepy/issues/1901">#1901</a></li>
<li><a
href="https://github.com/nedbat/coveragepy/commit/346cfc03885571fd448f8218a8b9f12836c2fcb2"><code>346cfc0</code></a>
fix: use set instead of list for arcs_executed, fixes poor performance
(<a
href="https://redirect.github.com/nedbat/coveragepy/issues/1901">#1901</a>)</li>
<li><a
href="https://github.com/nedbat/coveragepy/commit/484678e8d7c3b07e455e4c5bbce6f4a5bd03a9b4"><code>484678e</code></a>
fix: COVERAGE_ONE_CORE should mean ctrace if possible</li>
<li><a
href="https://github.com/nedbat/coveragepy/commit/37451ed089cb4c5d25e2fe6c13485407d01be176"><code>37451ed</code></a>
chore: make upgrade doc_upgrade</li>
<li><a
href="https://github.com/nedbat/coveragepy/commit/bd23445b181387b9c646d6dbf096b624bbc5953b"><code>bd23445</code></a>
chore: bump the action-dependencies group with 2 updates (<a
href="https://redirect.github.com/nedbat/coveragepy/issues/1899">#1899</a>)</li>
<li><a
href="https://github.com/nedbat/coveragepy/commit/01cf50c7d9131af2de9aea1e3573bdff1dc48110"><code>01cf50c</code></a>
test: add a test to satisfy a condition in results.py</li>
<li><a
href="https://github.com/nedbat/coveragepy/commit/74d3c50af1563b6cbd9ab1ef580267dc55982922"><code>74d3c50</code></a>
chore: make upgrade</li>
<li><a
href="https://github.com/nedbat/coveragepy/commit/f3b269cc5d5f1683aba34f57c7d5b991c5dd3743"><code>f3b269c</code></a>
build: only comment once on an issue mentioned twice</li>
<li>Additional commits viewable in <a
href="https://github.com/nedbat/coveragepy/compare/7.6.8...7.6.9">compare
view</a></li>
</ul>
</details>
<br />

Updates `pyright` from 1.1.389 to 1.1.390
<details>
<summary>Commits</summary>
<ul>
<li><a
href="https://github.com/RobertCraigie/pyright-python/commit/ee025bc6947a746a7fe6d392eefb315f665b28d5"><code>ee025bc</code></a>
Pyright NPM Package update to 1.1.390 (<a
href="https://redirect.github.com/RobertCraigie/pyright-python/issues/325">#325</a>)</li>
<li>See full diff in <a
href="https://github.com/RobertCraigie/pyright-python/compare/v1.1.389...v1.1.390">compare
view</a></li>
</ul>
</details>
<br />

Updates `pytest` from 8.3.3 to 8.3.4
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/pytest-dev/pytest/releases">pytest's
releases</a>.</em></p>
<blockquote>
<h2>8.3.4</h2>
<h1>pytest 8.3.4 (2024-12-01)</h1>
<h2>Bug fixes</h2>
<ul>
<li>
<p><a
href="https://redirect.github.com/pytest-dev/pytest/issues/12592">#12592</a>:
Fixed <code>KeyError</code>{.interpreted-text role=&quot;class&quot;}
crash when using <code>--import-mode=importlib</code> in a directory
layout where a directory contains a child directory with the same
name.</p>
</li>
<li>
<p><a
href="https://redirect.github.com/pytest-dev/pytest/issues/12818">#12818</a>:
Assertion rewriting now preserves the source ranges of the original
instructions, making it play well with tools that deal with the
<code>AST</code>, like <a
href="https://github.com/alexmojaki/executing">executing</a>.</p>
</li>
<li>
<p><a
href="https://redirect.github.com/pytest-dev/pytest/issues/12849">#12849</a>:
ANSI escape codes for colored output now handled correctly in
<code>pytest.fail</code>{.interpreted-text role=&quot;func&quot;} with
[pytrace=False]{.title-ref}.</p>
</li>
<li>
<p><a
href="https://redirect.github.com/pytest-dev/pytest/issues/9353">#9353</a>:
<code>pytest.approx</code>{.interpreted-text role=&quot;func&quot;} now
uses strict equality when given booleans.</p>
</li>
</ul>
<h2>Improved documentation</h2>
<ul>
<li>
<p><a
href="https://redirect.github.com/pytest-dev/pytest/issues/10558">#10558</a>:
Fix ambiguous docstring of
<code>pytest.Config.getoption</code>{.interpreted-text
role=&quot;func&quot;}.</p>
</li>
<li>
<p><a
href="https://redirect.github.com/pytest-dev/pytest/issues/10829">#10829</a>:
Improve documentation on the current handling of the
<code>--basetemp</code> option and its lack of retention functionality
(<code>temporary directory location and
retention</code>{.interpreted-text role=&quot;ref&quot;}).</p>
</li>
<li>
<p><a
href="https://redirect.github.com/pytest-dev/pytest/issues/12866">#12866</a>:
Improved cross-references concerning the
<code>recwarn</code>{.interpreted-text role=&quot;fixture&quot;}
fixture.</p>
</li>
<li>
<p><a
href="https://redirect.github.com/pytest-dev/pytest/issues/12966">#12966</a>:
Clarify <code>filterwarnings</code>{.interpreted-text
role=&quot;ref&quot;} docs on filter precedence/order when using
multiple <code>@pytest.mark.filterwarnings
&lt;pytest.mark.filterwarnings ref&gt;</code>{.interpreted-text
role=&quot;ref&quot;} marks.</p>
</li>
</ul>
<h2>Contributor-facing changes</h2>
<ul>
<li><a
href="https://redirect.github.com/pytest-dev/pytest/issues/12497">#12497</a>:
Fixed two failing pdb-related tests on Python 3.13.</li>
</ul>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="https://github.com/pytest-dev/pytest/commit/53f8b4e634c5066c4f797a87b20060edbb086240"><code>53f8b4e</code></a>
Update pypa/gh-action-pypi-publish to v1.12.2</li>
<li><a
href="https://github.com/pytest-dev/pytest/commit/98dff36c9dc0a44881e9e90daf381f9079adf4cc"><code>98dff36</code></a>
Prepare release version 8.3.4</li>
<li><a
href="https://github.com/pytest-dev/pytest/commit/1b474e221d5ced2c8c73924a0087e6e24ab6cd61"><code>1b474e2</code></a>
approx: use exact comparison for bool (<a
href="https://redirect.github.com/pytest-dev/pytest/issues/13013">#13013</a>)</li>
<li><a
href="https://github.com/pytest-dev/pytest/commit/b541721529feba7fcd0d069fa2437a817f340eba"><code>b541721</code></a>
docs: Fix wrong statement about sys.modules with importlib import mode
(<a
href="https://redirect.github.com/pytest-dev/pytest/issues/1298">#1298</a>...</li>
<li><a
href="https://github.com/pytest-dev/pytest/commit/16cb87b65036300d74472cd55eebca8fc3f8e703"><code>16cb87b</code></a>
pytest.fail: fix ANSI escape codes for colored output (<a
href="https://redirect.github.com/pytest-dev/pytest/issues/12959">#12959</a>)
(<a
href="https://redirect.github.com/pytest-dev/pytest/issues/12990">#12990</a>)</li>
<li><a
href="https://github.com/pytest-dev/pytest/commit/be6bc812b02454b2915755dd76ce74b877aeafad"><code>be6bc81</code></a>
Issue <a
href="https://redirect.github.com/pytest-dev/pytest/issues/12966">#12966</a>
Clarify filterwarnings docs on precedence when using multiple ma...</li>
<li><a
href="https://github.com/pytest-dev/pytest/commit/7aeb72bbc67bd1b8271eee57caa0a4e9b07038fc"><code>7aeb72b</code></a>
Improve docs on basetemp and retention (<a
href="https://redirect.github.com/pytest-dev/pytest/issues/12912">#12912</a>)
(<a
href="https://redirect.github.com/pytest-dev/pytest/issues/12928">#12928</a>)</li>
<li><a
href="https://github.com/pytest-dev/pytest/commit/c8758414cfd1646f273842e8f9292b2c15dcfcfb"><code>c875841</code></a>
Merge pull request <a
href="https://redirect.github.com/pytest-dev/pytest/issues/12917">#12917</a>
from pytest-dev/patchback/backports/8.3.x/ded1f44e5...</li>
<li><a
href="https://github.com/pytest-dev/pytest/commit/6502816d977fcdbd65a3f4d8a63c0ce7c1f25649"><code>6502816</code></a>
Merge pull request <a
href="https://redirect.github.com/pytest-dev/pytest/issues/12913">#12913</a>
from jakkdl/dontfailonbadpath</li>
<li><a
href="https://github.com/pytest-dev/pytest/commit/52135b033fb949efbec6aed9dd9000275bb199fd"><code>52135b0</code></a>
Merge pull request <a
href="https://redirect.github.com/pytest-dev/pytest/issues/12885">#12885</a>
from The-Compiler/pdb-py311 (<a
href="https://redirect.github.com/pytest-dev/pytest/issues/12887">#12887</a>)</li>
<li>Additional commits viewable in <a
href="https://github.com/pytest-dev/pytest/compare/8.3.3...8.3.4">compare
view</a></li>
</ul>
</details>
<br />

Updates `ruff` from 0.8.0 to 0.8.2
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/astral-sh/ruff/releases">ruff's
releases</a>.</em></p>
<blockquote>
<h2>0.8.2</h2>
<h2>Release Notes</h2>
<h3>Preview features</h3>
<ul>
<li>[<code>airflow</code>] Avoid deprecated values (<code>AIR302</code>)
(<a
href="https://redirect.github.com/astral-sh/ruff/pull/14582">#14582</a>)</li>
<li>[<code>airflow</code>] Extend removed names for <code>AIR302</code>
(<a
href="https://redirect.github.com/astral-sh/ruff/pull/14734">#14734</a>)</li>
<li>[<code>ruff</code>] Extend
<code>unnecessary-regular-expression</code> to non-literal strings
(<code>RUF055</code>) (<a
href="https://redirect.github.com/astral-sh/ruff/pull/14679">#14679</a>)</li>
<li>[<code>ruff</code>] Implement <code>used-dummy-variable</code>
(<code>RUF052</code>) (<a
href="https://redirect.github.com/astral-sh/ruff/pull/14611">#14611</a>)</li>
<li>[<code>ruff</code>] Implement <code>unnecessary-cast-to-int</code>
(<code>RUF046</code>) (<a
href="https://redirect.github.com/astral-sh/ruff/pull/14697">#14697</a>)</li>
</ul>
<h3>Rule changes</h3>
<ul>
<li>[<code>airflow</code>] Check <code>AIR001</code> from builtin or
providers <code>operators</code> module (<a
href="https://redirect.github.com/astral-sh/ruff/pull/14631">#14631</a>)</li>
<li>[<code>flake8-pytest-style</code>] Remove <code>@</code> in
<code>pytest.mark.parametrize</code> rule messages (<a
href="https://redirect.github.com/astral-sh/ruff/pull/14770">#14770</a>)</li>
<li>[<code>pandas-vet</code>] Skip rules if the <code>panda</code>
module hasn't been seen (<a
href="https://redirect.github.com/astral-sh/ruff/pull/14671">#14671</a>)</li>
<li>[<code>pylint</code>] Fix false negatives for <code>ascii</code> and
<code>sorted</code> in <code>len-as-condition</code>
(<code>PLC1802</code>) (<a
href="https://redirect.github.com/astral-sh/ruff/pull/14692">#14692</a>)</li>
<li>[<code>refurb</code>] Guard <code>hashlib</code> imports and mark
<code>hashlib-digest-hex</code> fix as safe (<code>FURB181</code>) (<a
href="https://redirect.github.com/astral-sh/ruff/pull/14694">#14694</a>)</li>
</ul>
<h3>Configuration</h3>
<ul>
<li>[<code>flake8-import-conventions</code>] Improve syntax check for
aliases supplied in configuration for
<code>unconventional-import-alias</code> (<code>ICN001</code>) (<a
href="https://redirect.github.com/astral-sh/ruff/pull/14745">#14745</a>)</li>
</ul>
<h3>Bug fixes</h3>
<ul>
<li>Revert: [pyflakes] Avoid false positives in
<code>@no_type_check</code> contexts (<code>F821</code>,
<code>F722</code>) (<a
href="https://redirect.github.com/astral-sh/ruff/issues/14615">#14615</a>)
(<a
href="https://redirect.github.com/astral-sh/ruff/pull/14726">#14726</a>)</li>
<li>[<code>pep8-naming</code>] Avoid false positive for <code>class
Bar(type(foo))</code> (<code>N804</code>) (<a
href="https://redirect.github.com/astral-sh/ruff/pull/14683">#14683</a>)</li>
<li>[<code>pycodestyle</code>] Handle f-strings properly for
<code>invalid-escape-sequence</code> (<code>W605</code>) (<a
href="https://redirect.github.com/astral-sh/ruff/pull/14748">#14748</a>)</li>
<li>[<code>pylint</code>] Ignore <code>@overload</code> in
<code>PLR0904</code> (<a
href="https://redirect.github.com/astral-sh/ruff/pull/14730">#14730</a>)</li>
<li>[<code>refurb</code>] Handle non-finite decimals in
<code>verbose-decimal-constructor</code> (<code>FURB157</code>) (<a
href="https://redirect.github.com/astral-sh/ruff/pull/14596">#14596</a>)</li>
<li>[<code>ruff</code>] Avoid emitting <code>assignment-in-assert</code>
when all references to the assigned variable are themselves inside
<code>assert</code>s (<code>RUF018</code>) (<a
href="https://redirect.github.com/astral-sh/ruff/pull/14661">#14661</a>)</li>
</ul>
<h3>Documentation</h3>
<ul>
<li>Improve docs for <code>flake8-use-pathlib</code> rules (<a
href="https://redirect.github.com/astral-sh/ruff/pull/14741">#14741</a>)</li>
<li>Improve error messages and docs for
<code>flake8-comprehensions</code> rules (<a
href="https://redirect.github.com/astral-sh/ruff/pull/14729">#14729</a>)</li>
<li>[<code>flake8-type-checking</code>] Expands <code>TC006</code> docs
to better explain itself (<a
href="https://redirect.github.com/astral-sh/ruff/pull/14749">#14749</a>)</li>
</ul>
<h2>Contributors</h2>
<ul>
<li><a
href="https://github.com/AlexWaygood"><code>@​AlexWaygood</code></a></li>
<li><a
href="https://github.com/Daverball"><code>@​Daverball</code></a></li>
<li><a
href="https://github.com/InSyncWithFoo"><code>@​InSyncWithFoo</code></a></li>
<li><a href="https://github.com/Lee-W"><code>@​Lee-W</code></a></li>
<li><a
href="https://github.com/Lokejoke"><code>@​Lokejoke</code></a></li>
<li><a
href="https://github.com/Matt-Ord"><code>@​Matt-Ord</code></a></li>
<li><a
href="https://github.com/MichaReiser"><code>@​MichaReiser</code></a></li>
<li><a
href="https://github.com/Well2333"><code>@​Well2333</code></a></li>
<li><a
href="https://github.com/connorskees"><code>@​connorskees</code></a></li>
<li><a
href="https://github.com/dcreager"><code>@​dcreager</code></a></li>
<li><a
href="https://github.com/dhruvmanila"><code>@​dhruvmanila</code></a></li>
</ul>
<!-- raw HTML omitted -->
</blockquote>
<p>... (truncated)</p>
</details>
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a
href="https://github.com/astral-sh/ruff/blob/main/CHANGELOG.md">ruff's
changelog</a>.</em></p>
<blockquote>
<h2>0.8.2</h2>
<h3>Preview features</h3>
<ul>
<li>[<code>airflow</code>] Avoid deprecated values (<code>AIR302</code>)
(<a
href="https://redirect.github.com/astral-sh/ruff/pull/14582">#14582</a>)</li>
<li>[<code>airflow</code>] Extend removed names for <code>AIR302</code>
(<a
href="https://redirect.github.com/astral-sh/ruff/pull/14734">#14734</a>)</li>
<li>[<code>ruff</code>] Extend
<code>unnecessary-regular-expression</code> to non-literal strings
(<code>RUF055</code>) (<a
href="https://redirect.github.com/astral-sh/ruff/pull/14679">#14679</a>)</li>
<li>[<code>ruff</code>] Implement <code>used-dummy-variable</code>
(<code>RUF052</code>) (<a
href="https://redirect.github.com/astral-sh/ruff/pull/14611">#14611</a>)</li>
<li>[<code>ruff</code>] Implement <code>unnecessary-cast-to-int</code>
(<code>RUF046</code>) (<a
href="https://redirect.github.com/astral-sh/ruff/pull/14697">#14697</a>)</li>
</ul>
<h3>Rule changes</h3>
<ul>
<li>[<code>airflow</code>] Check <code>AIR001</code> from builtin or
providers <code>operators</code> module (<a
href="https://redirect.github.com/astral-sh/ruff/pull/14631">#14631</a>)</li>
<li>[<code>flake8-pytest-style</code>] Remove <code>@</code> in
<code>pytest.mark.parametrize</code> rule messages (<a
href="https://redirect.github.com/astral-sh/ruff/pull/14770">#14770</a>)</li>
<li>[<code>pandas-vet</code>] Skip rules if the <code>panda</code>
module hasn't been seen (<a
href="https://redirect.github.com/astral-sh/ruff/pull/14671">#14671</a>)</li>
<li>[<code>pylint</code>] Fix false negatives for <code>ascii</code> and
<code>sorted</code> in <code>len-as-condition</code>
(<code>PLC1802</code>) (<a
href="https://redirect.github.com/astral-sh/ruff/pull/14692">#14692</a>)</li>
<li>[<code>refurb</code>] Guard <code>hashlib</code> imports and mark
<code>hashlib-digest-hex</code> fix as safe (<code>FURB181</code>) (<a
href="https://redirect.github.com/astral-sh/ruff/pull/14694">#14694</a>)</li>
</ul>
<h3>Configuration</h3>
<ul>
<li>[<code>flake8-import-conventions</code>] Improve syntax check for
aliases supplied in configuration for
<code>unconventional-import-alias</code> (<code>ICN001</code>) (<a
href="https://redirect.github.com/astral-sh/ruff/pull/14745">#14745</a>)</li>
</ul>
<h3>Bug fixes</h3>
<ul>
<li>Revert: [pyflakes] Avoid false positives in
<code>@no_type_check</code> contexts (<code>F821</code>,
<code>F722</code>) (<a
href="https://redirect.github.com/astral-sh/ruff/issues/14615">#14615</a>)
(<a
href="https://redirect.github.com/astral-sh/ruff/pull/14726">#14726</a>)</li>
<li>[<code>pep8-naming</code>] Avoid false positive for <code>class
Bar(type(foo))</code> (<code>N804</code>) (<a
href="https://redirect.github.com/astral-sh/ruff/pull/14683">#14683</a>)</li>
<li>[<code>pycodestyle</code>] Handle f-strings properly for
<code>invalid-escape-sequence</code> (<code>W605</code>) (<a
href="https://redirect.github.com/astral-sh/ruff/pull/14748">#14748</a>)</li>
<li>[<code>pylint</code>] Ignore <code>@overload</code> in
<code>PLR0904</code> (<a
href="https://redirect.github.com/astral-sh/ruff/pull/14730">#14730</a>)</li>
<li>[<code>refurb</code>] Handle non-finite decimals in
<code>verbose-decimal-constructor</code> (<code>FURB157</code>) (<a
href="https://redirect.github.com/astral-sh/ruff/pull/14596">#14596</a>)</li>
<li>[<code>ruff</code>] Avoid emitting <code>assignment-in-assert</code>
when all references to the assigned variable are themselves inside
<code>assert</code>s (<code>RUF018</code>) (<a
href="https://redirect.github.com/astral-sh/ruff/pull/14661">#14661</a>)</li>
</ul>
<h3>Documentation</h3>
<ul>
<li>Improve docs for <code>flake8-use-pathlib</code> rules (<a
href="https://redirect.github.com/astral-sh/ruff/pull/14741">#14741</a>)</li>
<li>Improve error messages and docs for
<code>flake8-comprehensions</code> rules (<a
href="https://redirect.github.com/astral-sh/ruff/pull/14729">#14729</a>)</li>
<li>[<code>flake8-type-checking</code>] Expands <code>TC006</code> docs
to better explain itself (<a
href="https://redirect.github.com/astral-sh/ruff/pull/14749">#14749</a>)</li>
</ul>
<h2>0.8.1</h2>
<h3>Preview features</h3>
<ul>
<li>Formatter: Avoid invalid syntax for format-spec with quotes for all
Python versions (<a
href="https://redirect.github.com/astral-sh/ruff/pull/14625">#14625</a>)</li>
<li>Formatter: Consider quotes inside format-specs when choosing the
quotes for an f-string (<a
href="https://redirect.github.com/astral-sh/ruff/pull/14493">#14493</a>)</li>
<li>Formatter: Do not consider f-strings with escaped newlines as
multiline (<a
href="https://redirect.github.com/astral-sh/ruff/pull/14624">#14624</a>)</li>
<li>Formatter: Fix f-string formatting in assignment statement (<a
href="https://redirect.github.com/astral-sh/ruff/pull/14454">#14454</a>)</li>
<li>Formatter: Fix unnecessary space around power operator
(<code>**</code>) in overlong f-string expressions (<a
href="https://redirect.github.com/astral-sh/ruff/pull/14489">#14489</a>)</li>
<li>[<code>airflow</code>] Avoid implicit <code>schedule</code> argument
to <code>DAG</code> and <code>@dag</code> (<code>AIR301</code>) (<a
href="https://redirect.github.com/astral-sh/ruff/pull/14581">#14581</a>)</li>
<li>[<code>flake8-builtins</code>] Exempt private built-in modules
(<code>A005</code>) (<a
href="https://redirect.github.com/astral-sh/ruff/pull/14505">#14505</a>)</li>
<li>[<code>flake8-pytest-style</code>] Fix
<code>pytest.mark.parametrize</code> rules to check calls instead of
decorators (<a
href="https://redirect.github.com/astral-sh/ruff/pull/14515">#14515</a>)</li>
<li>[<code>flake8-type-checking</code>] Implement
<code>runtime-cast-value</code> (<code>TC006</code>) (<a
href="https://redirect.github.com/astral-sh/ruff/pull/14511">#14511</a>)</li>
</ul>
<!-- raw HTML omitted -->
</blockquote>
<p>... (truncated)</p>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="https://github.com/astral-sh/ruff/commit/b0e26e6fc8ad60e368b8b03b367b6ac408acf9f7"><code>b0e26e6</code></a>
Bump version to 0.8.2 (<a
href="https://redirect.github.com/astral-sh/ruff/issues/14789">#14789</a>)</li>
<li><a
href="https://github.com/astral-sh/ruff/commit/e9941cd71459a75ee556422b37a192bf681ed425"><code>e9941cd</code></a>
[red-knot] Move standalone expr inference to <code>for</code> non-name
target (<a
href="https://redirect.github.com/astral-sh/ruff/issues/14788">#14788</a>)</li>
<li><a
href="https://github.com/astral-sh/ruff/commit/43bf1a8907fc0e48e8ca7b52485a349772e91de9"><code>43bf1a8</code></a>
Add tests for &quot;keyword as identifier&quot; syntax errors (<a
href="https://redirect.github.com/astral-sh/ruff/issues/14754">#14754</a>)</li>
<li><a
href="https://github.com/astral-sh/ruff/commit/fda8b1f884c8598960b2e3f0c729e17ac62bfe35"><code>fda8b1f</code></a>
[<code>ruff</code>] Unnecessary cast to <code>int</code>
(<code>RUF046</code>) (<a
href="https://redirect.github.com/astral-sh/ruff/issues/14697">#14697</a>)</li>
<li><a
href="https://github.com/astral-sh/ruff/commit/2d3f55787557fc16a15e298d516ae719d12bc25c"><code>2d3f557</code></a>
[red-knot] Fallback for <code>typing._NoDefaultType</code> (<a
href="https://redirect.github.com/astral-sh/ruff/issues/14783">#14783</a>)</li>
<li><a
href="https://github.com/astral-sh/ruff/commit/bd27bfab5d636cd5979ce78423ba069833ab13e2"><code>bd27bfa</code></a>
[red-knot] Unify <code>setup_db()</code> functions, add
<code>TestDb</code> builder (<a
href="https://redirect.github.com/astral-sh/ruff/issues/14777">#14777</a>)</li>
<li><a
href="https://github.com/astral-sh/ruff/commit/155d34bbb9a0ebda17bbd465f5fa5dfa2b640c37"><code>155d34b</code></a>
[red-knot] Infer precise types for <code>len()</code> calls (<a
href="https://redirect.github.com/astral-sh/ruff/issues/14599">#14599</a>)</li>
<li><a
href="https://github.com/astral-sh/ruff/commit/04c887c8fce0521a8a98cee04349199ac256a67a"><code>04c887c</code></a>
Fix references for <code>async-busy-wait</code> (<a
href="https://redirect.github.com/astral-sh/ruff/issues/14775">#14775</a>)</li>
<li><a
href="https://github.com/astral-sh/ruff/commit/af43bd4b0fa5fdf016252085771cfb75846a0b0c"><code>af43bd4</code></a>
[red-knot] Gradual forms do not participate in equivalence/subtyping (<a
href="https://redirect.github.com/astral-sh/ruff/issues/14758">#14758</a>)</li>
<li><a
href="https://github.com/astral-sh/ruff/commit/614917769e07467e8646fb6a28b23e90d3df980c"><code>6149177</code></a>
Remove <code>@</code> in <code>pytest.mark.parametrize</code> rule
messages (<a
href="https://redirect.github.com/astral-sh/ruff/issues/14770">#14770</a>)</li>
<li>Additional commits viewable in <a
href="https://github.com/astral-sh/ruff/compare/0.8.0...0.8.2">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>
mergify bot pushed a commit to aws/jsii that referenced this pull request Dec 17, 2024
…/packages/jsii-pacmak/lib/targets/python (#4720)

Updates the requirements on [twine](https://github.com/pypa/twine) to permit the latest version.
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a href="https://github.com/pypa/twine/blob/main/docs/changelog.rst">twine's changelog</a>.</em></p>
<blockquote>
<h2>Twine 6.0.1 (2024-11-30)</h2>
<p>Bugfixes
^^^^^^^^</p>
<ul>
<li>Fixed a regression where <code>twine check</code> would fail to expand
wildcards, e.g. <code>twine check 'dist/*'</code>. (<code>[#1188](pypa/twine#1188) &lt;https://github.com/pypa/twine/issues/1188&gt;</code>_)</li>
</ul>
<p>Misc
^^^^</p>
<ul>
<li><code>[#1184](pypa/twine#1184) &lt;https://github.com/pypa/twine/issues/1184&gt;</code>_</li>
</ul>
<h2>Twine 6.0.0 (2024-11-29)</h2>
<p>Bugfixes
^^^^^^^^</p>
<ul>
<li>Restore support for pkginfo 1.11 (<code>[#1116](pypa/twine#1116) &lt;https://github.com/pypa/twine/issues/1116&gt;</code>_)</li>
</ul>
<p>Deprecations and Removals
^^^^^^^^^^^^^^^^^^^^^^^^^</p>
<ul>
<li>Username for PyPI and Test PyPI now defaults to <strong>token</strong> but no longer overrides a username configured in the environment or supplied on the command line. Workflows still supplying anything other than <strong>token</strong> for the username when uploading to PyPI or Test PyPI will now fail. Either supply <strong>token</strong> or do not supply a username at all. (<code>[#1121](pypa/twine#1121) &lt;https://github.com/pypa/twine/issues/1121&gt;</code>_)</li>
</ul>
<p>Misc
^^^^</p>
<ul>
<li><code>[#1024](pypa/twine#1024) &lt;https://github.com/pypa/twine/issues/1024&gt;</code>_</li>
</ul>
<h2>Twine 5.1.1 (2024-06-26)</h2>
<p>Bugfixes
^^^^^^^^</p>
<ul>
<li>
<p>Resolve DeprecationWarnings when extracting <code>twine</code> metadata. (<code>[#1115](pypa/twine#1115) &lt;https://github.com/pypa/twine/issues/1115&gt;</code>_)</p>
</li>
<li>
<p>Fix bug for Repository URLs with auth where the port was lost. When attempting
to prevent printing authentication credentials in URLs provided with username
and password, we did not properly handle the case where the URL also contains
a port (when reconstructing the URL). This is now handled and tested to
ensure no regressions. (<code>#fix-repo-urls-with-auth-and-port &lt;https://github.com/pypa/twine/issues/fix-repo-urls-with-auth-and-port&gt;</code>_)</p>
</li>
</ul>

</blockquote>
<p>... (truncated)</p>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a href="https://github.com/pypa/twine/commit/a723876fd4398be57838873e60867566b6220a53"><code>a723876</code></a> Merge pull request <a href="https://redirect.github.com/pypa/twine/issues/1189">#1189</a> from pypa/release-6.0.1</li>
<li><a href="https://github.com/pypa/twine/commit/9a24828cbded183d02d0b3f5a8af41b7764dda98"><code>9a24828</code></a> Update changelog for 6.0.1</li>
<li><a href="https://github.com/pypa/twine/commit/a0170058016cb7ed9554ef648a48c1899917d255"><code>a017005</code></a> Merge pull request <a href="https://redirect.github.com/pypa/twine/issues/1188">#1188</a> from pypa/ww/fix-twine-check-glob</li>
<li><a href="https://github.com/pypa/twine/commit/e98f03bb0932e364065f827f804806bacccc436d"><code>e98f03b</code></a> check: fix handling of non-shell-expanded globs</li>
<li><a href="https://github.com/pypa/twine/commit/873f33ed40bb38407a87abba6cd2a65f35eb6286"><code>873f33e</code></a> build(deps): bump pypa/gh-action-pypi-publish from 1.11.0 to 1.12.2 (<a href="https://redirect.github.com/pypa/twine/issues/1175">#1175</a>)</li>
<li><a href="https://github.com/pypa/twine/commit/067412e84cfdd39929d838075ef8fa3d2cb0d733"><code>067412e</code></a> Use brackets for the default value of option arguments (<a href="https://redirect.github.com/pypa/twine/issues/1149">#1149</a>)</li>
<li><a href="https://github.com/pypa/twine/commit/f32dc3545b52389dac0cbd28059833d48c36b4f4"><code>f32dc35</code></a> Apply ruff/Perflint rule (<a href="https://redirect.github.com/pypa/twine/issues/1136">#1136</a>)</li>
<li><a href="https://github.com/pypa/twine/commit/aa58273f52afab52d3dd00b2c6cf3b472c6ee20d"><code>aa58273</code></a> Don't require importlib_metadata on Python 3.10+</li>
<li><a href="https://github.com/pypa/twine/commit/675565f35c6d0adc435c9da6cb123f41dcaeffb8"><code>675565f</code></a> changelog: record <a href="https://redirect.github.com/pypa/twine/issues/1184">#1184</a></li>
<li><a href="https://github.com/pypa/twine/commit/80cc58c0ddbd68b107c4709be5072f3e309b843c"><code>80cc58c</code></a> chore: mark 3.13 as explicitly supported</li>
<li>Additional commits viewable in <a href="https://github.com/pypa/twine/compare/v5.1.1...6.0.1">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 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>
cdnninja pushed a commit to Hyundai-Kia-Connect/hyundai_kia_connect_api that referenced this pull request Dec 24, 2024
Bumps [twine](https://github.com/pypa/twine) from 5.1.1 to 6.0.1.
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a
href="https://github.com/pypa/twine/blob/main/docs/changelog.rst">twine's
changelog</a>.</em></p>
<blockquote>
<h2>Twine 6.0.1 (2024-11-30)</h2>
<p>Bugfixes
^^^^^^^^</p>
<ul>
<li>Fixed a regression where <code>twine check</code> would fail to
expand
wildcards, e.g. <code>twine check 'dist/*'</code>.
(<code>[#1188](pypa/twine#1188)
&lt;https://github.com/pypa/twine/issues/1188&gt;</code>_)</li>
</ul>
<p>Misc
^^^^</p>
<ul>
<li><code>[#1184](pypa/twine#1184)
&lt;https://github.com/pypa/twine/issues/1184&gt;</code>_</li>
</ul>
<h2>Twine 6.0.0 (2024-11-29)</h2>
<p>Bugfixes
^^^^^^^^</p>
<ul>
<li>Restore support for pkginfo 1.11
(<code>[#1116](pypa/twine#1116)
&lt;https://github.com/pypa/twine/issues/1116&gt;</code>_)</li>
</ul>
<p>Deprecations and Removals
^^^^^^^^^^^^^^^^^^^^^^^^^</p>
<ul>
<li>Username for PyPI and Test PyPI now defaults to
<strong>token</strong> but no longer overrides a username configured in
the environment or supplied on the command line. Workflows still
supplying anything other than <strong>token</strong> for the username
when uploading to PyPI or Test PyPI will now fail. Either supply
<strong>token</strong> or do not supply a username at all.
(<code>[#1121](pypa/twine#1121)
&lt;https://github.com/pypa/twine/issues/1121&gt;</code>_)</li>
</ul>
<p>Misc
^^^^</p>
<ul>
<li><code>[#1024](pypa/twine#1024)
&lt;https://github.com/pypa/twine/issues/1024&gt;</code>_</li>
</ul>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="https://github.com/pypa/twine/commit/a723876fd4398be57838873e60867566b6220a53"><code>a723876</code></a>
Merge pull request <a
href="https://redirect.github.com/pypa/twine/issues/1189">#1189</a> from
pypa/release-6.0.1</li>
<li><a
href="https://github.com/pypa/twine/commit/9a24828cbded183d02d0b3f5a8af41b7764dda98"><code>9a24828</code></a>
Update changelog for 6.0.1</li>
<li><a
href="https://github.com/pypa/twine/commit/a0170058016cb7ed9554ef648a48c1899917d255"><code>a017005</code></a>
Merge pull request <a
href="https://redirect.github.com/pypa/twine/issues/1188">#1188</a> from
pypa/ww/fix-twine-check-glob</li>
<li><a
href="https://github.com/pypa/twine/commit/e98f03bb0932e364065f827f804806bacccc436d"><code>e98f03b</code></a>
check: fix handling of non-shell-expanded globs</li>
<li><a
href="https://github.com/pypa/twine/commit/873f33ed40bb38407a87abba6cd2a65f35eb6286"><code>873f33e</code></a>
build(deps): bump pypa/gh-action-pypi-publish from 1.11.0 to 1.12.2 (<a
href="https://redirect.github.com/pypa/twine/issues/1175">#1175</a>)</li>
<li><a
href="https://github.com/pypa/twine/commit/067412e84cfdd39929d838075ef8fa3d2cb0d733"><code>067412e</code></a>
Use brackets for the default value of option arguments (<a
href="https://redirect.github.com/pypa/twine/issues/1149">#1149</a>)</li>
<li><a
href="https://github.com/pypa/twine/commit/f32dc3545b52389dac0cbd28059833d48c36b4f4"><code>f32dc35</code></a>
Apply ruff/Perflint rule (<a
href="https://redirect.github.com/pypa/twine/issues/1136">#1136</a>)</li>
<li><a
href="https://github.com/pypa/twine/commit/aa58273f52afab52d3dd00b2c6cf3b472c6ee20d"><code>aa58273</code></a>
Don't require importlib_metadata on Python 3.10+</li>
<li><a
href="https://github.com/pypa/twine/commit/675565f35c6d0adc435c9da6cb123f41dcaeffb8"><code>675565f</code></a>
changelog: record <a
href="https://redirect.github.com/pypa/twine/issues/1184">#1184</a></li>
<li><a
href="https://github.com/pypa/twine/commit/80cc58c0ddbd68b107c4709be5072f3e309b843c"><code>80cc58c</code></a>
chore: mark 3.13 as explicitly supported</li>
<li>Additional commits viewable in <a
href="https://github.com/pypa/twine/compare/v5.1.1...6.0.1">compare
view</a></li>
</ul>
</details>
<br />


[![Dependabot compatibility
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=twine&package-manager=pip&previous-version=5.1.1&new-version=6.0.1)](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-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
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

Someday: Use importlib.metadata from the standard library
3 participants