diff --git a/stdlib/queue.pyi b/stdlib/queue.pyi index ae5b9ede1ae6..532d5d98344d 100644 --- a/stdlib/queue.pyi +++ b/stdlib/queue.pyi @@ -5,6 +5,11 @@ from typing import Any, Generic, TypeVar if sys.version_info >= (3, 9): from types import GenericAlias +if sys.version_info >= (3, 7): + __all__ = ["Empty", "Full", "Queue", "PriorityQueue", "LifoQueue", "SimpleQueue"] +else: + __all__ = ["Empty", "Full", "Queue", "PriorityQueue", "LifoQueue"] + _T = TypeVar("_T") class Empty(Exception): ... diff --git a/stdlib/quopri.pyi b/stdlib/quopri.pyi index c2ffabe7d531..b8dc0787fd1a 100644 --- a/stdlib/quopri.pyi +++ b/stdlib/quopri.pyi @@ -1,5 +1,7 @@ from typing import BinaryIO +__all__ = ["encode", "decode", "encodestring", "decodestring"] + def encode(input: BinaryIO, output: BinaryIO, quotetabs: int, header: int = ...) -> None: ... def encodestring(s: bytes, quotetabs: int = ..., header: int = ...) -> bytes: ... def decode(input: BinaryIO, output: BinaryIO, header: int = ...) -> None: ... diff --git a/stdlib/random.pyi b/stdlib/random.pyi index b96a9f7de00a..74201216ba58 100644 --- a/stdlib/random.pyi +++ b/stdlib/random.pyi @@ -5,6 +5,62 @@ from collections.abc import Callable, Iterable, MutableSequence, Sequence, Set a from fractions import Fraction from typing import Any, ClassVar, NoReturn, TypeVar +if sys.version_info >= (3, 9): + __all__ = [ + "Random", + "SystemRandom", + "betavariate", + "choice", + "choices", + "expovariate", + "gammavariate", + "gauss", + "getrandbits", + "getstate", + "lognormvariate", + "normalvariate", + "paretovariate", + "randbytes", + "randint", + "random", + "randrange", + "sample", + "seed", + "setstate", + "shuffle", + "triangular", + "uniform", + "vonmisesvariate", + "weibullvariate", + ] +else: + __all__ = [ + "Random", + "seed", + "random", + "uniform", + "randint", + "choice", + "sample", + "randrange", + "shuffle", + "normalvariate", + "lognormvariate", + "expovariate", + "vonmisesvariate", + "gammavariate", + "triangular", + "gauss", + "betavariate", + "paretovariate", + "weibullvariate", + "getstate", + "setstate", + "getrandbits", + "choices", + "SystemRandom", + ] + _T = TypeVar("_T") class Random(_random.Random): diff --git a/stdlib/re.pyi b/stdlib/re.pyi index 5150bf267908..990df3463850 100644 --- a/stdlib/re.pyi +++ b/stdlib/re.pyi @@ -9,6 +9,103 @@ if sys.version_info >= (3, 7): else: from typing import Match, Pattern +if sys.version_info >= (3, 11): + __all__ = [ + "match", + "fullmatch", + "search", + "sub", + "subn", + "split", + "findall", + "finditer", + "compile", + "purge", + "template", + "escape", + "error", + "Pattern", + "Match", + "A", + "I", + "L", + "M", + "S", + "X", + "U", + "ASCII", + "IGNORECASE", + "LOCALE", + "MULTILINE", + "DOTALL", + "VERBOSE", + "UNICODE", + "RegexFlag", + "NOFLAG", + ] +elif sys.version_info >= (3, 8): + __all__ = [ + "match", + "fullmatch", + "search", + "sub", + "subn", + "split", + "findall", + "finditer", + "compile", + "purge", + "template", + "escape", + "error", + "Pattern", + "Match", + "A", + "I", + "L", + "M", + "S", + "X", + "U", + "ASCII", + "IGNORECASE", + "LOCALE", + "MULTILINE", + "DOTALL", + "VERBOSE", + "UNICODE", + ] +else: + __all__ = [ + "match", + "fullmatch", + "search", + "sub", + "subn", + "split", + "findall", + "finditer", + "compile", + "purge", + "template", + "escape", + "error", + "A", + "I", + "L", + "M", + "S", + "X", + "U", + "ASCII", + "IGNORECASE", + "LOCALE", + "MULTILINE", + "DOTALL", + "VERBOSE", + "UNICODE", + ] + class RegexFlag(enum.IntFlag): A: int ASCII: int diff --git a/stdlib/reprlib.pyi b/stdlib/reprlib.pyi index 2095c0af6983..2d114a7c4f26 100644 --- a/stdlib/reprlib.pyi +++ b/stdlib/reprlib.pyi @@ -2,6 +2,8 @@ from array import array from collections import deque from typing import Any, Callable +__all__ = ["Repr", "repr", "recursive_repr"] + _ReprFunc = Callable[[Any], str] def recursive_repr(fillvalue: str = ...) -> Callable[[_ReprFunc], _ReprFunc]: ... diff --git a/stdlib/rlcompleter.pyi b/stdlib/rlcompleter.pyi index f971c424213d..a73ba8db1c18 100644 --- a/stdlib/rlcompleter.pyi +++ b/stdlib/rlcompleter.pyi @@ -1,5 +1,7 @@ from typing import Any +__all__ = ["Completer"] + class Completer: def __init__(self, namespace: dict[str, Any] | None = ...) -> None: ... def complete(self, text: str, state: int) -> str | None: ... diff --git a/stdlib/secrets.pyi b/stdlib/secrets.pyi index f57eef8492d7..99b7c14ebafc 100644 --- a/stdlib/secrets.pyi +++ b/stdlib/secrets.pyi @@ -3,6 +3,8 @@ from hmac import compare_digest as compare_digest from random import SystemRandom as SystemRandom from typing import TypeVar +__all__ = ["choice", "randbelow", "randbits", "SystemRandom", "token_bytes", "token_hex", "token_urlsafe", "compare_digest"] + _T = TypeVar("_T") def randbelow(exclusive_upper_bound: int) -> int: ... diff --git a/stdlib/shelve.pyi b/stdlib/shelve.pyi index b9df3cbba27d..2a211ab34208 100644 --- a/stdlib/shelve.pyi +++ b/stdlib/shelve.pyi @@ -4,6 +4,8 @@ from dbm import _TFlags from types import TracebackType from typing import TypeVar, overload +__all__ = ["Shelf", "BsdDbShelf", "DbfilenameShelf", "open"] + _T = TypeVar("_T") _VT = TypeVar("_VT") diff --git a/stdlib/shlex.pyi b/stdlib/shlex.pyi index 46998c5969c3..abe5dea58d7a 100644 --- a/stdlib/shlex.pyi +++ b/stdlib/shlex.pyi @@ -2,6 +2,11 @@ import sys from _typeshed import Self from typing import Iterable, TextIO +if sys.version_info >= (3, 8): + __all__ = ["shlex", "split", "quote", "join"] +else: + __all__ = ["shlex", "split", "quote"] + def split(s: str, comments: bool = ..., posix: bool = ...) -> list[str]: ... if sys.version_info >= (3, 8): diff --git a/stdlib/shutil.pyi b/stdlib/shutil.pyi index ceda73b3a101..752cf2cb5a8d 100644 --- a/stdlib/shutil.pyi +++ b/stdlib/shutil.pyi @@ -3,6 +3,35 @@ import sys from _typeshed import BytesPath, StrOrBytesPath, StrPath, SupportsRead, SupportsWrite from typing import Any, AnyStr, Callable, Iterable, NamedTuple, Sequence, TypeVar, Union, overload +__all__ = [ + "copyfileobj", + "copyfile", + "copymode", + "copystat", + "copy", + "copy2", + "copytree", + "move", + "rmtree", + "Error", + "SpecialFileError", + "ExecError", + "make_archive", + "get_archive_formats", + "register_archive_format", + "unregister_archive_format", + "get_unpack_formats", + "register_unpack_format", + "unregister_unpack_format", + "unpack_archive", + "ignore_patterns", + "chown", + "which", + "get_terminal_size", + "SameFileError", + "disk_usage", +] + _StrOrBytesPathT = TypeVar("_StrOrBytesPathT", bound=StrOrBytesPath) _StrPathT = TypeVar("_StrPathT", bound=StrPath) # Return value of some functions that may either return a path-like object that was passed in or diff --git a/stdlib/smtpd.pyi b/stdlib/smtpd.pyi index 8a532058a2bb..5ef11d924273 100644 --- a/stdlib/smtpd.pyi +++ b/stdlib/smtpd.pyi @@ -4,6 +4,8 @@ import socket from collections import defaultdict from typing import Any +__all__ = ["SMTPChannel", "SMTPServer", "DebuggingServer", "PureProxy", "MailmanProxy"] + _Address = tuple[str, int] # (host, port) class SMTPChannel(asynchat.async_chat): diff --git a/stdlib/smtplib.pyi b/stdlib/smtplib.pyi index 4e4fb1648832..5bf95d2eec8c 100644 --- a/stdlib/smtplib.pyi +++ b/stdlib/smtplib.pyi @@ -6,6 +6,40 @@ from ssl import SSLContext from types import TracebackType from typing import Any, Pattern, Protocol, Sequence, Union, overload +if sys.version_info >= (3, 7): + __all__ = [ + "SMTPException", + "SMTPNotSupportedError", + "SMTPServerDisconnected", + "SMTPResponseException", + "SMTPSenderRefused", + "SMTPRecipientsRefused", + "SMTPDataError", + "SMTPConnectError", + "SMTPHeloError", + "SMTPAuthenticationError", + "quoteaddr", + "quotedata", + "SMTP", + "SMTP_SSL", + ] +else: + __all__ = [ + "SMTPException", + "SMTPServerDisconnected", + "SMTPResponseException", + "SMTPSenderRefused", + "SMTPRecipientsRefused", + "SMTPDataError", + "SMTPConnectError", + "SMTPHeloError", + "SMTPAuthenticationError", + "quoteaddr", + "quotedata", + "SMTP", + "SMTP_SSL", + ] + _Reply = tuple[int, bytes] _SendErrs = dict[str, _Reply] # Should match source_address for socket.create_connection diff --git a/stdlib/sndhdr.pyi b/stdlib/sndhdr.pyi index 84d6441a83b1..f4d487607fbb 100644 --- a/stdlib/sndhdr.pyi +++ b/stdlib/sndhdr.pyi @@ -1,6 +1,8 @@ from _typeshed import StrOrBytesPath from typing import NamedTuple +__all__ = ["what", "whathdr"] + class SndHeaders(NamedTuple): filetype: str framerate: int diff --git a/stdlib/socketserver.pyi b/stdlib/socketserver.pyi index f35cb051e4a7..9bdd8ccfe31f 100644 --- a/stdlib/socketserver.pyi +++ b/stdlib/socketserver.pyi @@ -4,6 +4,38 @@ from _typeshed import Self from socket import socket as _socket from typing import Any, BinaryIO, Callable, ClassVar, Union +if sys.platform == "win32": + __all__ = [ + "BaseServer", + "TCPServer", + "UDPServer", + "ThreadingUDPServer", + "ThreadingTCPServer", + "BaseRequestHandler", + "StreamRequestHandler", + "DatagramRequestHandler", + "ThreadingMixIn", + ] +else: + __all__ = [ + "BaseServer", + "TCPServer", + "UDPServer", + "ThreadingUDPServer", + "ThreadingTCPServer", + "BaseRequestHandler", + "StreamRequestHandler", + "DatagramRequestHandler", + "ThreadingMixIn", + "ForkingUDPServer", + "ForkingTCPServer", + "ForkingMixIn", + "UnixStreamServer", + "UnixDatagramServer", + "ThreadingUnixStreamServer", + "ThreadingUnixDatagramServer", + ] + _RequestType = Union[_socket, tuple[bytes, _socket]] _AddressType = Union[tuple[str, int], str] diff --git a/stdlib/statistics.pyi b/stdlib/statistics.pyi index be80c311a6a5..1a194dee7199 100644 --- a/stdlib/statistics.pyi +++ b/stdlib/statistics.pyi @@ -4,6 +4,65 @@ from decimal import Decimal from fractions import Fraction from typing import Any, Hashable, Iterable, NamedTuple, Sequence, SupportsFloat, TypeVar, Union +if sys.version_info >= (3, 10): + __all__ = [ + "NormalDist", + "StatisticsError", + "correlation", + "covariance", + "fmean", + "geometric_mean", + "harmonic_mean", + "linear_regression", + "mean", + "median", + "median_grouped", + "median_high", + "median_low", + "mode", + "multimode", + "pstdev", + "pvariance", + "quantiles", + "stdev", + "variance", + ] +elif sys.version_info >= (3, 8): + __all__ = [ + "NormalDist", + "StatisticsError", + "fmean", + "geometric_mean", + "harmonic_mean", + "mean", + "median", + "median_grouped", + "median_high", + "median_low", + "mode", + "multimode", + "pstdev", + "pvariance", + "quantiles", + "stdev", + "variance", + ] +else: + __all__ = [ + "StatisticsError", + "pstdev", + "pvariance", + "stdev", + "variance", + "median", + "median_low", + "median_high", + "median_grouped", + "mean", + "mode", + "harmonic_mean", + ] + # Most functions in this module accept homogeneous collections of one of these types _Number = Union[float, Decimal, Fraction] _NumberT = TypeVar("_NumberT", float, Decimal, Fraction) diff --git a/stdlib/string.pyi b/stdlib/string.pyi index 374d59959ac9..535f38545132 100644 --- a/stdlib/string.pyi +++ b/stdlib/string.pyi @@ -7,6 +7,21 @@ if sys.version_info >= (3, 8): else: from typing import Pattern +__all__ = [ + "ascii_letters", + "ascii_lowercase", + "ascii_uppercase", + "capwords", + "digits", + "hexdigits", + "octdigits", + "printable", + "punctuation", + "whitespace", + "Formatter", + "Template", +] + ascii_letters: str ascii_lowercase: str ascii_uppercase: str diff --git a/stdlib/struct.pyi b/stdlib/struct.pyi index 47af62973259..1f6c45a23c0a 100644 --- a/stdlib/struct.pyi +++ b/stdlib/struct.pyi @@ -2,6 +2,8 @@ import sys from _typeshed import ReadableBuffer, WriteableBuffer from typing import Any, Iterator +__all__ = ["calcsize", "pack", "pack_into", "unpack", "unpack_from", "iter_unpack", "Struct", "error"] + class error(Exception): ... def pack(fmt: str | bytes, *v: Any) -> bytes: ... diff --git a/stdlib/symtable.pyi b/stdlib/symtable.pyi index 1f89465fe31d..91e95270901e 100644 --- a/stdlib/symtable.pyi +++ b/stdlib/symtable.pyi @@ -1,6 +1,8 @@ import sys from typing import Any, Sequence +__all__ = ["symtable", "SymbolTable", "Class", "Function", "Symbol"] + def symtable(code: str, filename: str, compile_type: str) -> SymbolTable: ... class SymbolTable: diff --git a/stdlib/sysconfig.pyi b/stdlib/sysconfig.pyi index 17077144f6e9..13c40b927f4e 100644 --- a/stdlib/sysconfig.pyi +++ b/stdlib/sysconfig.pyi @@ -1,5 +1,19 @@ from typing import IO, Any, overload +__all__ = [ + "get_config_h_filename", + "get_config_var", + "get_config_vars", + "get_makefile_filename", + "get_path", + "get_path_names", + "get_paths", + "get_platform", + "get_python_version", + "get_scheme_names", + "parse_config_h", +] + def get_config_var(name: str) -> str | None: ... @overload def get_config_vars() -> dict[str, Any]: ...