Description
The test pyright: Run test cases
can fail for older Python versions due to using newer features. For example, in #13968 (comment) I typed a class with a dataclass
decorator using kwargs added to Python 3.10. Despite setting requires_python = ">=3.10"
in stubs/networkx/METADATA.toml
Example run (whilst the build logs are still available) https://github.com/python/typeshed/actions/runs/14921000784/job/41916216049?pr=13968
One possible solution with the current setup, is to collect stubs whose requires_python
don't match the current Python version, and pass them to pyright's file exclusion.
Similarly, if running tests/runtests.py
on a third-party stub, requires_python
should be taken into account rather than only relying on _PYTHON_VERSION
.
Edit: #14051