We’ve just uploaded mypy 1.10 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.
Support TypeIs (PEP 742)
Mypy now supports TypeIs (PEP 742), which allows
functions to narrow the type of a value, similar to isinstance(). Unlike TypeGuard,
TypeIs can narrow in both the if and else branches of an if statement:
#12069: A deprecation warning is now raised when implementations of one of the following hooks request a deprecated py.path.local parameter instead of the pathlib.Path parameter which replaced it:
pytest_ignore_collect{.interpreted-text role="hook"} - the path parameter - use collection_path instead.
pytest_collect_file{.interpreted-text role="hook"} - the path parameter - use file_path instead.
pytest_pycollect_makemodule{.interpreted-text role="hook"} - the path parameter - use module_path instead.
pytest_report_header{.interpreted-text role="hook"} - the startdir parameter - use start_path instead.
pytest_report_collectionfinish{.interpreted-text role="hook"} - the startdir parameter - use start_path instead.
The replacement parameters are available since pytest 7.0.0.
The old parameters will be removed in pytest 9.0.0.
See legacy-path-hooks-deprecated{.interpreted-text role="ref"} for more details.
Features
#11871: Added support for reading command line arguments from a file using the prefix character @, like e.g.: pytest @tests.txt. The file must have one argument per line.
See Read arguments from file <args-from-file>{.interpreted-text role="ref"} for details.
Improvements
#11523: pytest.importorskip{.interpreted-text role="func"} will now issue a warning if the module could be found, but raised ImportError{.interpreted-text role="class"} instead of ModuleNotFoundError{.interpreted-text role="class"}.
The warning can be suppressed by passing exc_type=ImportError to pytest.importorskip{.interpreted-text role="func"}.
See import-or-skip-import-error{.interpreted-text role="ref"} for details.
#11728: For unittest-based tests, exceptions during class cleanup (as raised by functions registered with TestCase.addClassCleanup <unittest.TestCase.addClassCleanup>{.interpreted-text role="meth"}) are now reported instead of silently failing.
#11777: Text is no longer truncated in the short test summary info section when -vv is given.
#12112: Improved namespace packages detection when consider_namespace_packages{.interpreted-text role="confval"} is enabled, covering more situations (like editable installs).
#9502: Added PYTEST_VERSION{.interpreted-text role="envvar"} environment variable which is defined at the start of the pytest session and undefined afterwards. It contains the value of pytest.__version__, and among other things can be used to easily check if code is running from within a pytest run.
Bug Fixes
#12065: Fixed a regression in pytest 8.0.0 where test classes containing setup_method and tests using @staticmethod or @classmethod would crash with AttributeError: 'NoneType' object has no attribute 'setup_method'.
Now the request.instance <pytest.FixtureRequest.instance>{.interpreted-text role="attr"} attribute of tests using @staticmethod and @classmethod is no longer None, but a fresh instance of the class, like in non-static methods.
Bumps the required group with 9 updates in the / directory:
4.10.0
4.11.0
24.3.0
24.4.2
2.0.0
2.1.0
9.5.17
9.5.20
0.24.2
0.25.0
1.9.0
1.10.0
0.1.28
0.1.39
2024.3.02
2024.4.15
8.1.1
8.2.0
Updates
typing-extensions
from 4.10.0 to 4.11.0Release notes
Sourced from typing-extensions's releases.
Changelog
Sourced from typing-extensions's changelog.
Commits
d4d929d
Prepare release 4.11.0 (#363)94bec44
Prepare release 4.11.0rc1 (#362)10648b6
Fix tests on 3.13.0a5 (#358)8170fc7
Fix runtime behaviour of PEP 696 (#293)d34c389
Try to fix GH actions syntax (#355)d409ec9
Run CPython test suite in our CI (#353)9d1689e
Fix indentation in TypedDict docs (#352)4fdc09d
Third-party tests: don't run pydantic tests on pypy (#351)3304a5f
Stabilise third party tests (#348)c3dc681
Make sure thatReadOnly
is removed when using `get_type_hints(include_extra...Updates
black
from 24.3.0 to 24.4.2Release notes
Sourced from black's releases.
Changelog
Sourced from black's changelog.
Commits
3702ba2
Prepare release 24.4.2 (#4335)e4aaa8a
Fix incorrect f-string tokenization (#4332)ba88fc3
Simplify string tokenization regexes (#4331)5683242
New release templatee7fb048
Prepare release 24.4.1 (#4328)3f0f8f1
Support PEP 696 (#4327)2f88085
Github Action: Directly install from repo ifexport-subst
is skipped (#4313)12ce3db
Move changelog entry to right section (#4326)1354be2
Add support to style function definitions with newlines before function stubs...f4b644b
Prevent wrapping of multiline fstrings in parens (#4325)Updates
mike
from 2.0.0 to 2.1.0Release notes
Sourced from mike's releases.
Changelog
Sourced from mike's changelog.
Commits
6e6cfbb
Update version to 2.1.05773be9
Fix CI7904925
Further tests for deserializing Python objects duringinject_plugin
01219bd
Allow arbitrary Python object in YAML configac7b240
Handle!relative
(and any future constructors) in mkdocs.yml; resolves #199fdcc912
Add--quiet
option; resolves #210a39ea73
Addset-default --allow-undefined
; see #2109f56762
Revert Codecov action update to avoid adding CI token8369eee
Update CI action versionsaf47b96
Yet more elaborations in the "Viewing Your Docs" sectionUpdates
mkdocs-material
from 9.5.17 to 9.5.20Release notes
Sourced from mkdocs-material's releases.
Changelog
Sourced from mkdocs-material's changelog.
... (truncated)
Commits
5cb3117
Prepare 9.5.20 release4752779
Updated dependenciese90871f
Fixed social plugin crashing on Windows when downloading fonts (#7085) (#7117)ff49d74
Fixed deprecation warning in privacy plugincff4a75
Fixed deprecation warning in tags pluginedcc536
Documentation2dd88ae
Documentation57d82dc
Documentation (#7102)4001083
Documentation (#7112)c427e1c
Documentation (#7103)Updates
mkdocstrings[python]
from 0.24.2 to 0.25.0Release notes
Sourced from mkdocstrings[python]'s releases.
Changelog
Sourced from mkdocstrings[python]'s changelog.
Commits
87d8229
chore: Prepare release 0.25.0c5b5f69
refactor: Allow specifying name of template loggers7ff1681
docs: Enable parameter headings253d215
docs: Load inventories for MkDocs and Markdown1532b59
feat: Supportonce
parameter in logging methods, allowing to log a message ...d799d2f
feat: Support blank line between::: path
and YAML options828bd59
chore: Prepare release 0.24.37fe3e5f
fix: Support HTML toc labels with Python-Markdown 3.6+ (uncomment code...)Updates
mypy
from 1.9.0 to 1.10.0Changelog
Sourced from mypy's changelog.
... (truncated)
Commits
3faf0fc
Remove +dev for version for release 1.10a5998d2
Update CHANGELOG.md (#17159)62ea5b0
Various updates to changelog for 1.10 (#17158)2f0864c
Update CHANGELOG.md with draft for release 1.10 (#17150)e1443bb
fix: incorrect returned type of access descriptors on unions of types (#16604)5161ac2
Sync typeshed (#17124)e2fc1f2
Fix crash when expanding invalid Unpack in aCallable
alias (#17028)3ff6e47
Docs: docstrings in checker.py, ast_helpers.py (#16908)732d98e
Fix string formatting for string enums (#16555)8019010
Narrow individual items when matching a tuple to a sequence pattern (#16905)Updates
uv
from 0.1.28 to 0.1.39Release notes
Sourced from uv's releases.
... (truncated)
Changelog
Sourced from uv's changelog.
... (truncated)
Commits
028b407
Bump version to v0.1.39 (#3286)da89e53
Fix documentation on--cache-dir
CLI (#3285)43181f1
Implement--index-strategy unsafe-best-match
(#3138)a0e7d9f
Add a--isolated
mode to ignore on-disk configuration (#3283)845dc3d
Add debug logging for--target
(#3282)2af80c2
Add apache airflow test case (#3278)ad99e3a
Create--target
directories lazily (#3274)1a4f7de
Revisecompile_index_url_fallback_prefer_primary
(#3273)ed8f6e4
Add--target
support tosync
andinstall
(#3257)71ffb2e
Build a separate ARM wheel for macOS (#3268)Updates
nox
from 2024.3.02 to 2024.4.15Release notes
Sourced from nox's releases.
Changelog
Sourced from nox's changelog.
... (truncated)
Commits
5656fce
Release 2024.04.158f33d1c
fix: ensure 'uv' always works in a uv venv (#818)d6e1906
feat: support PEP 723 with a toml load function (#811)d3dd1f8
feat: use static arguments instaed of **kwargs (#815)bc21883
feat: support None to remone envvars (#812)5e3d90d
fix: disallow UV_SYSTEM_PYTHON (#817)55c7eaf
feat: support default=False (#810)9a4068f
feat: add micromamba support (#807)11dac8c
fix: don't error if not installing to passthrough (#809)956f10c
ci: use uv (#805)Updates
pytest
from 8.1.1 to 8.2.0Release notes
Sourced from pytest's releases.
... (truncated)
Commits
6bd3f31
Tweak changelog for 8.2.09b6219b
Prepare release version 8.2.0835765c
Merge pull request #12130 from bluetech/fixtures-inline7e7503c
unittest: report class cleanup exceptions (#12250)882c4da
fixtures: inlinefail_fixturefunc
2e8fb9f
fixtures: extract a_check_fixturedef
method