Fix crash when showing partially analyzed type in error message (Ivan Levkivskyi, PR 17961)
Fix iteration over union (when self type is involved) (Shantanu, PR 17976)
Fix type object with type var default in union context (Jukka Lehtosalo, PR 17991)
Revert change to os.path stubs affecting use of os.PathLike[Any] (Shantanu, PR 17995)
Acknowledgements
Thanks to all mypy contributors who contributed to this release:
Ali Hamdan
Anders Kaseorg
Bénédikt Tran
Brian Schubert
bzoracler
Chelsea Durazo
Danny Yang
Edgar Ramírez Mondragón
Eric Mark Martin
InSync
Ivan Levkivskyi
Jordandev678
Katrina Connors
Kirill Podoprigora
Marc Mueller
Max Muoto
Max Murin
Michael Carlstrom
Michael I Chen
Pradyun Gedam
quinn-sasha
Raphael Krupinski
Sebastian Rittau
Shantanu
sobolevn
Soubhik Kumar Mitra
Stanislav Terliakov
wyattscarpenter
I’d also like to thank my employer, Dropbox, for supporting mypy development.
Mypy 1.11
We’ve just uploaded mypy 1.11 to the Python Package Index (PyPI). Mypy is a static type checker for Python. This release includes new features, performance improvements and bug fixes. You can install it as follows:
python3 -m pip install -U mypy
You can read the full documentation for this release on Read the Docs.
Fix: nested context managers could incorrectly be analyzed to flag a missing branch on the last context manager, as described in issue 1876. This is now fixed.
Fix: the missing branch message about not exiting a module had an extra “didn’t,” as described in issue 1873. This is now fixed.
Fix: a final wildcard match/case clause assigning to a name (case _ as value) was incorrectly marked as a missing branch. This is now fixed, closing issue 1860.
Fewer things are considered branches now. Lambdas, comprehensions, and generator expressions are no longer marked as missing branches if they don’t complete execution. Closes issue 1852.
Fix: the HTML report didn’t properly show multi-line f-strings that end with a backslash continuation. This is now fixed, closing issue 1836, thanks to LiuYinCarl and Marco Ricci.
Fix: the LCOV report now has correct line numbers (fixing issue 1846) and better branch descriptions for BRDA records (fixing issue 1850). There are other changes to lcov also, including a new configuration option line_checksums to control whether line checksums are included in the lcov report. The default is false. To keep checksums set it to true. All this work is thanks to Zack Weinberg (pull 1849 and pull 1851).
Fixed the docs for multi-line regex exclusions, closing issue 1863.
Fixed a potential crash in the C tracer, closing issue 1835, thanks to Jan Kühle.
Fix: nested context managers could incorrectly be analyzed to flag a missing
branch on the last context manager, as described in issue 1876_. This is
now fixed.
Fix: the missing branch message about not exiting a module had an extra
"didn't," as described in issue 1873_. This is now fixed.
Fix: a final wildcard match/case clause assigning to a name (case _ as value) was incorrectly marked as a missing branch. This is now fixed,
closing issue 1860_.
Fewer things are considered branches now. Lambdas, comprehensions, and
generator expressions are no longer marked as missing branches if they don't
complete execution. Closes issue 1852_.
Fix: the HTML report didn't properly show multi-line f-strings that end with
a backslash continuation. This is now fixed, closing issue 1836, thanks
to LiuYinCarl and Marco Ricci <pull 1838_>.
Fix: the LCOV report now has correct line numbers (fixing issue 1846) and
better branch descriptions for BRDA records (fixing issue 1850). There
are other changes to lcov also, including a new configuration option
:ref:line_checksums <config_lcov_line_checksums> to control whether line
checksums are included in the lcov report. The default is false. To keep
checksums set it to true. All this work is thanks to Zack Weinberg
#12446: Avoid calling @property (and other instance descriptors) during fixture discovery -- by asottile{.interpreted-text role="user"}
#12659: Fixed the issue of not displaying assertion failure differences when using the parameter --import-mode=importlib in pytest>=8.1.
#12667: Fixed a regression where type change in [ExceptionInfo.errisinstance]{.title-ref} caused [mypy]{.title-ref} to fail.
#12744: Fixed typing compatibility with Python 3.9 or less -- replaced [typing.Self]{.title-ref} with [typing_extensions.Self]{.title-ref} -- by Avasam{.interpreted-text role="user"}
#12745: Fixed an issue with backslashes being incorrectly converted in nodeid paths on Windows, ensuring consistent path handling across environments.
#6682: Fixed bug where the verbosity levels where not being respected when printing the "msg" part of failed assertion (as in assert condition, msg).
#9422: Fix bug where disabling the terminal plugin via -p no:terminal would cause crashes related to missing the verbose option.
-- by GTowers1{.interpreted-text role="user"}
Improved documentation
#12663: Clarify that the [pytest_deselected]{.title-ref} hook should be called from [pytest_collection_modifyitems]{.title-ref} hook implementations when items are deselected.
#12678: Remove erroneous quotes from [tmp_path_retention_policy]{.title-ref} example in docs.
Miscellaneous internal changes
#12769: Fix typos discovered by codespell and add codespell to pre-commit hooks.
Commits
d0f136f build(deps): Bump pypa/gh-action-pypi-publish from 1.10.0 to 1.10.1 (#12790)
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 commands and options
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 ignore conditions` will show all of the ignore conditions of the specified dependency
- `@dependabot ignore 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 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 ` 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 ` will remove all of the ignore conditions of the specified dependency
- `@dependabot unignore ` will remove the ignore condition of the specified dependency and ignore conditions
Bumps the python-packages group with 4 updates in the / directory: pre-commit, mypy, coverage[toml] and pytest.
Updates
pre-commit
from 3.8.0 to 4.0.1Release notes
Sourced from pre-commit's releases.
Changelog
Sourced from pre-commit's changelog.
Commits
cc4a522
v4.0.1772d7d4
Merge pull request #3324 from pre-commit/migrate-config-purelib222c62b
fix migrate-config for purelib yaml3d5548b
Merge pull request #3323 from pre-commit/pre-commit-ci-update-config4235a87
[pre-commit.ci] pre-commit autoupdatedbccd57
v4.0.0d07e529
Merge pull request #3320 from pre-commit/remove-python-venv801b956
remove deprecated python_venv aliasa2f7b80
Merge pull request #3315 from pre-commit/warn-deprecated-stage-names-on-initd317223
add warning for deprecates stages for remote repos on initUpdates
mypy
from 1.11.1 to 1.12.1Changelog
Sourced from mypy's changelog.
... (truncated)
Commits
050d12f
Bump version to 1.12.1346e370
[1.12 backport] revert os.path change (#17995)71e1f05
Fix type object with type var default in union context (#17991)34d8603
Fix iteration over union (when self type is involved) (#17976)2485bed
Use kw-only args for member access booleans (#17975)a5e9b0b
Fix crash when showing partially analyzed type in error message (#17961)4775da1
Bump version to 1.12.1+devf2a39b1
Update version to 1.12.0b4ec37a
Add one more 1.12 changelog item (#17936)cc1c679
Better handling of generic functions in partial plugin (#17925)Updates
coverage[toml]
from 7.6.0 to 7.6.4Release notes
Sourced from coverage[toml]'s releases.
Changelog
Sourced from coverage[toml]'s changelog.
... (truncated)
Commits
f24f76b
docs: sample HTML for 7.6.496e10f7
docs: prep for 7.6.4b8c236a
fix: multi-line with-statements exit correctly. #188064b7a45
docs: another discord reference68d7427
docs: Python Discord43adcea
build: include 3.14 in the usual Pythonsfb2b49f
build: github_releases can update older releases, and pauses to get the sorti...ca550ca
3.0b2 wasn't correctly titleddebcc77
build: bump version342a4cb
docs: sample HTML for 7.6.3Updates
pytest
from 8.3.2 to 8.3.3Release notes
Sourced from pytest's releases.
Commits
d0f136f
build(deps): Bump pypa/gh-action-pypi-publish from 1.10.0 to 1.10.1 (#12790)972f307
Prepare release version 8.3.30dabdcf
Include co-authors in release announcement (#12795) (#12797)a9910a4
Do not discover properties when iterating fixtures (#12781) (#12788)0f10b6b
Fix issue with slashes being turned into backslashes on Windows (#12760) (#12...300d13d
Merge pull request #12785 from pytest-dev/patchback/backports/8.3.x/57cccf7f4...e5d32c7
Merge pull request #12784 from svenevs/fix/docs-example-parametrize-minor-typobc913d1
Streamline checks for verbose option (#12706) (#12778)01cfcc9
Fix typos and introduce codespell pre-commit hook (#12769) (#12774)4873394
doc: Remove past training (#12772) (#12773)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 commands and options
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