mirror of
https://github.com/davidhalter/typeshed.git
synced 2025-12-16 00:37:10 +08:00
Allow stubs to depend on numpy (#9499)
This commit is contained in:
4
.github/workflows/tests.yml
vendored
4
.github/workflows/tests.yml
vendored
@@ -91,10 +91,10 @@ jobs:
|
||||
- uses: actions/checkout@v3
|
||||
- uses: actions/setup-python@v4
|
||||
with:
|
||||
python-version: "3.10"
|
||||
python-version: ${{ matrix.python-version }}
|
||||
cache: pip
|
||||
cache-dependency-path: requirements-tests.txt
|
||||
- run: pip install -r requirements-tests.txt
|
||||
- run: pip install $(grep mypy== requirements-tests.txt) packaging pathspec termcolor tomli typing-extensions
|
||||
- run: python ./tests/mypy_test.py --platform=${{ matrix.platform }} --python-version=${{ matrix.python-version }}
|
||||
|
||||
regression-tests:
|
||||
|
||||
@@ -12,11 +12,12 @@ import sys
|
||||
import tempfile
|
||||
import time
|
||||
from collections import defaultdict
|
||||
from collections.abc import Sequence
|
||||
from dataclasses import dataclass
|
||||
from itertools import product
|
||||
from pathlib import Path
|
||||
from threading import Lock
|
||||
from typing import TYPE_CHECKING, Any, NamedTuple
|
||||
from typing import TYPE_CHECKING, Any, NamedTuple, Tuple
|
||||
|
||||
if TYPE_CHECKING:
|
||||
from _typeshed import StrPath
|
||||
@@ -53,7 +54,7 @@ DIRECTORIES_TO_TEST = [Path("stdlib"), Path("stubs")]
|
||||
|
||||
ReturnCode: TypeAlias = int
|
||||
VersionString: TypeAlias = Annotated[str, "Must be one of the entries in SUPPORTED_VERSIONS"]
|
||||
VersionTuple: TypeAlias = tuple[int, int]
|
||||
VersionTuple: TypeAlias = Tuple[int, int]
|
||||
Platform: TypeAlias = Annotated[str, "Must be one of the entries in SUPPORTED_PLATFORMS"]
|
||||
|
||||
|
||||
@@ -78,6 +79,21 @@ def valid_path(cmd_arg: str) -> Path:
|
||||
parser = argparse.ArgumentParser(
|
||||
description="Typecheck typeshed's stubs with mypy. Patterns are unanchored regexps on the full path."
|
||||
)
|
||||
if sys.version_info < (3, 8):
|
||||
|
||||
class ExtendAction(argparse.Action):
|
||||
def __call__(
|
||||
self,
|
||||
parser: argparse.ArgumentParser,
|
||||
namespace: argparse.Namespace,
|
||||
values: Sequence[str],
|
||||
option_string: object = None,
|
||||
) -> None:
|
||||
items = getattr(namespace, self.dest) or []
|
||||
items.extend(values)
|
||||
setattr(namespace, self.dest, items)
|
||||
|
||||
parser.register("action", "extend", ExtendAction)
|
||||
parser.add_argument(
|
||||
"filter",
|
||||
type=valid_path,
|
||||
@@ -324,7 +340,7 @@ def test_third_party_distribution(
|
||||
|
||||
mypypath = os.pathsep.join(str(Path("stubs", dist)) for dist in seen_dists)
|
||||
if args.verbose:
|
||||
print(colored(f"\n{mypypath=}", "blue"))
|
||||
print(colored(f"\nMYPYPATH={mypypath}", "blue"))
|
||||
code = run_mypy(
|
||||
args,
|
||||
configurations,
|
||||
|
||||
@@ -8,7 +8,7 @@ import subprocess
|
||||
import sys
|
||||
import venv
|
||||
from collections.abc import Iterable, Mapping
|
||||
from functools import cache
|
||||
from functools import lru_cache
|
||||
from pathlib import Path
|
||||
from typing import NamedTuple
|
||||
from typing_extensions import Annotated
|
||||
@@ -25,6 +25,10 @@ except ImportError:
|
||||
return text
|
||||
|
||||
|
||||
# A backport of functools.cache for Python <3.9
|
||||
# This module is imported by mypy_test.py, which needs to run on 3.7 in CI
|
||||
cache = lru_cache(None)
|
||||
|
||||
# Used to install system-wide packages for different OS types:
|
||||
METADATA_MAPPING = {"linux": "apt_dependencies", "darwin": "brew_dependencies", "win32": "choco_dependencies"}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user