Run mypy and pyright on our py312 stubs in CI (#10119)

This commit is contained in:
Alex Waygood
2023-04-30 15:31:08 +01:00
committed by GitHub
parent e0db6d2edd
commit 2c3449694b
7 changed files with 18 additions and 9 deletions

View File

@@ -85,7 +85,7 @@ jobs:
strategy:
matrix:
platform: ["linux", "win32", "darwin"]
python-version: ["3.7", "3.8", "3.9", "3.10", "3.11"]
python-version: ["3.7", "3.8", "3.9", "3.10", "3.11", "3.12-dev"]
fail-fast: false
steps:
- uses: actions/checkout@v3
@@ -116,7 +116,7 @@ jobs:
strategy:
matrix:
python-platform: ["Linux", "Windows", "Darwin"]
python-version: ["3.7", "3.8", "3.9", "3.10", "3.11"]
python-version: ["3.7", "3.8", "3.9", "3.10", "3.11", "3.12"]
fail-fast: false
steps:
- uses: actions/checkout@v3

View File

@@ -1,4 +1,4 @@
aiohttp==3.8.4
aiohttp==3.8.4; python_version < "3.12" # aiohttp can't be installed on 3.12 yet
black==23.3.0 # must match .pre-commit-config.yaml
flake8==6.0.0; python_version >= "3.8" # must match .pre-commit-config.yaml
flake8-bugbear==23.3.23; python_version >= "3.8" # must match .pre-commit-config.yaml

View File

@@ -17,7 +17,6 @@ __all__ = [
"ParsingError",
"MissingSectionHeaderError",
"ConfigParser",
"SafeConfigParser",
"RawConfigParser",
"Interpolation",
"BasicInterpolation",
@@ -29,6 +28,9 @@ __all__ = [
"MAX_INTERPOLATION_DEPTH",
]
if sys.version_info < (3, 12):
__all__ += ["SafeConfigParser"]
_Section: TypeAlias = Mapping[str, str]
_Parser: TypeAlias = MutableMapping[str, _Section]
_ConverterCallback: TypeAlias = Callable[[str], Any]

View File

@@ -272,7 +272,7 @@ if sys.version_info >= (3, 10):
def __next__(self) -> _T_co: ...
if sys.version_info >= (3, 12):
class batched(Iterator[_T_co], Generic[_T_co]):
class batched(Iterator[tuple[_T_co, ...]], Generic[_T_co]):
def __new__(cls, iterable: Iterable[_T_co], n: int) -> Self: ...
def __iter__(self) -> Self: ...
def __next__(self) -> tuple[_T_co, ...]: ...

View File

@@ -47,7 +47,7 @@ except ImportError:
print_error("Cannot import mypy. Did you install it?")
sys.exit(1)
SUPPORTED_VERSIONS = ["3.11", "3.10", "3.9", "3.8", "3.7"]
SUPPORTED_VERSIONS = ["3.12", "3.11", "3.10", "3.9", "3.8", "3.7"]
SUPPORTED_PLATFORMS = ("linux", "win32", "darwin")
DIRECTORIES_TO_TEST = [Path("stdlib"), Path("stubs")]
@@ -76,6 +76,13 @@ def valid_path(cmd_arg: str) -> Path:
return path
def remove_dev_suffix(version: str) -> str:
"""Helper function for argument-parsing"""
if version.endswith("-dev"):
return version[: -len("-dev")]
return version
parser = argparse.ArgumentParser(
description="Typecheck typeshed's stubs with mypy. Patterns are unanchored regexps on the full path."
)
@@ -105,7 +112,7 @@ parser.add_argument("-v", "--verbose", action="count", default=0, help="More out
parser.add_argument(
"-p",
"--python-version",
type=str,
type=remove_dev_suffix,
choices=SUPPORTED_VERSIONS,
nargs="*",
action="extend",

View File

@@ -35,7 +35,7 @@ VENV_DIR = ".venv"
TYPESHED = "typeshed"
SUPPORTED_PLATFORMS = ["linux", "darwin", "win32"]
SUPPORTED_VERSIONS = ["3.11", "3.10", "3.9", "3.8", "3.7"]
SUPPORTED_VERSIONS = ["3.12", "3.11", "3.10", "3.9", "3.8", "3.7"]
def package_with_test_cases(package_name: str) -> PackageInfo:

View File

@@ -13,7 +13,7 @@ from utils import colored, print_error
ReturnCode: TypeAlias = int
SUPPORTED_PLATFORMS = ("linux", "darwin", "win32")
SUPPORTED_VERSIONS = ("3.11", "3.10", "3.9")
SUPPORTED_VERSIONS = ("3.12", "3.11", "3.10", "3.9")
LOWEST_SUPPORTED_VERSION = min(SUPPORTED_VERSIONS, key=lambda x: int(x.split(".")[1]))
DIRECTORIES_TO_TEST = ("scripts", "tests")
EMPTY: list[str] = []