Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Compileall rx argument fix #5172

Merged
merged 10 commits into from
Apr 11, 2021
56 changes: 29 additions & 27 deletions stdlib/compileall.pyi
Original file line number Diff line number Diff line change
@@ -1,86 +1,88 @@
import sys
from _typeshed import AnyPath
from typing import Any, Optional, Pattern
from _typeshed import StrPath
from typing import Any, Optional, Protocol

if sys.version_info >= (3, 7):
from py_compile import PycInvalidationMode

class _SupportsSearch(Protocol):
def search(self, string: str) -> Any: ...

if sys.version_info >= (3, 9):
def compile_dir(
dir: AnyPath,
dir: StrPath,
maxlevels: Optional[int] = ...,
ddir: Optional[AnyPath] = ...,
ddir: Optional[StrPath] = ...,
force: bool = ...,
rx: Optional[Pattern[Any]] = ...,
rx: Optional[_SupportsSearch] = ...,
quiet: int = ...,
legacy: bool = ...,
optimize: int = ...,
workers: int = ...,
invalidation_mode: Optional[PycInvalidationMode] = ...,
*,
stripdir: Optional[str] = ..., # TODO: change to Optional[AnyPath] once https://bugs.python.org/issue40447 is resolved
prependdir: Optional[AnyPath] = ...,
limit_sl_dest: Optional[AnyPath] = ...,
stripdir: Optional[str] = ..., # TODO: change to Optional[StrPath] once https://bugs.python.org/issue40447 is resolved
prependdir: Optional[StrPath] = ...,
limit_sl_dest: Optional[StrPath] = ...,
hardlink_dupes: bool = ...,
) -> int: ...
def compile_file(
fullname: AnyPath,
ddir: Optional[AnyPath] = ...,
fullname: StrPath,
ddir: Optional[StrPath] = ...,
force: bool = ...,
rx: Optional[Pattern[Any]] = ...,
rx: Optional[_SupportsSearch] = ...,
quiet: int = ...,
legacy: bool = ...,
optimize: int = ...,
invalidation_mode: Optional[PycInvalidationMode] = ...,
*,
stripdir: Optional[str] = ..., # TODO: change to Optional[AnyPath] once https://bugs.python.org/issue40447 is resolved
prependdir: Optional[AnyPath] = ...,
limit_sl_dest: Optional[AnyPath] = ...,
stripdir: Optional[str] = ..., # TODO: change to Optional[StrPath] once https://bugs.python.org/issue40447 is resolved
prependdir: Optional[StrPath] = ...,
limit_sl_dest: Optional[StrPath] = ...,
hardlink_dupes: bool = ...,
) -> int: ...

elif sys.version_info >= (3, 7):
def compile_dir(
dir: AnyPath,
dir: StrPath,
maxlevels: int = ...,
ddir: Optional[AnyPath] = ...,
ddir: Optional[StrPath] = ...,
force: bool = ...,
rx: Optional[Pattern[Any]] = ...,
rx: Optional[_SupportsSearch] = ...,
quiet: int = ...,
legacy: bool = ...,
optimize: int = ...,
workers: int = ...,
invalidation_mode: Optional[PycInvalidationMode] = ...,
) -> int: ...
def compile_file(
fullname: AnyPath,
ddir: Optional[AnyPath] = ...,
fullname: StrPath,
ddir: Optional[StrPath] = ...,
force: bool = ...,
rx: Optional[Pattern[Any]] = ...,
rx: Optional[_SupportsSearch] = ...,
quiet: int = ...,
legacy: bool = ...,
optimize: int = ...,
invalidation_mode: Optional[PycInvalidationMode] = ...,
) -> int: ...

else:
# rx can be any object with a 'search' method; once we have Protocols we can change the type
def compile_dir(
dir: AnyPath,
dir: StrPath,
maxlevels: int = ...,
ddir: Optional[AnyPath] = ...,
ddir: Optional[StrPath] = ...,
force: bool = ...,
rx: Optional[Pattern[Any]] = ...,
rx: Optional[_SupportsSearch] = ...,
quiet: int = ...,
legacy: bool = ...,
optimize: int = ...,
workers: int = ...,
) -> int: ...
def compile_file(
fullname: AnyPath,
ddir: Optional[AnyPath] = ...,
fullname: StrPath,
ddir: Optional[StrPath] = ...,
force: bool = ...,
rx: Optional[Pattern[Any]] = ...,
rx: Optional[_SupportsSearch] = ...,
quiet: int = ...,
legacy: bool = ...,
optimize: int = ...,
Expand Down