diff --git a/requirements-tests.txt b/requirements-tests.txt index 8b99d3c7b4c3..79b0a6a38fbe 100644 --- a/requirements-tests.txt +++ b/requirements-tests.txt @@ -1,6 +1,6 @@ # Type checkers that we test our stubs against. These should always # be pinned to a specific version to make failure reproducible. -mypy==1.19.1 +mypy==1.20.0 pyright==1.1.408 # Libraries used by our various scripts. diff --git a/stdlib/@tests/stubtest_allowlists/common.txt b/stdlib/@tests/stubtest_allowlists/common.txt index 88d0bce5ab25..f8b4c47bc4ad 100644 --- a/stdlib/@tests/stubtest_allowlists/common.txt +++ b/stdlib/@tests/stubtest_allowlists/common.txt @@ -4,7 +4,6 @@ # Please keep sorted alphabetically -importlib.abc.Loader.exec_module # See Lib/importlib/_abc.py. Might be defined for backwards compatibility importlib.abc.MetaPathFinder.find_spec # Not defined on the actual class, but expected to exist. importlib.abc.PathEntryFinder.find_spec # Not defined on the actual class, but expected to exist. tkinter.simpledialog.[A-Z_]+ @@ -39,20 +38,6 @@ idlelib # Module members that exist at runtime, but are deliberately missing from stubs # ============================================================================= -_collections_abc.AsyncIterable.__class_getitem__ -_collections_abc.Awaitable.__class_getitem__ -_collections_abc.Container.__class_getitem__ -_collections_abc.Iterable.__class_getitem__ -_collections_abc.MappingView.__class_getitem__ - -_collections_abc.Mapping.__reversed__ # set to None at runtime for a better error message - -# Adding these reflected dunders to `typing.AbstractSet` causes a large number of false-positives. See #7414. -_collections_abc.Set.__rand__ -_collections_abc.Set.__ror__ -_collections_abc.Set.__rsub__ -_collections_abc.Set.__rxor__ - # Undocumented implementation details of a deprecated class _frozen_importlib_external.WindowsRegistryFinder.DEBUG_BUILD _frozen_importlib_external.WindowsRegistryFinder.REGISTRY_KEY @@ -80,14 +65,6 @@ email.contentmanager.set_text_content ftplib.FTP.trust_server_pasv_ipv4_address # Dangerous to use, intentionally undocumented #6154 hmac.HMAC.blocksize # use block_size instead -# Undocumented implementation details of a deprecated class -importlib._bootstrap_external.WindowsRegistryFinder.DEBUG_BUILD -importlib._bootstrap_external.WindowsRegistryFinder.REGISTRY_KEY -importlib._bootstrap_external.WindowsRegistryFinder.REGISTRY_KEY_DEBUG -importlib.machinery.WindowsRegistryFinder.DEBUG_BUILD -importlib.machinery.WindowsRegistryFinder.REGISTRY_KEY -importlib.machinery.WindowsRegistryFinder.REGISTRY_KEY_DEBUG - # Undocumented implementation details profile.Profile.dispatch profile.Profile.fake_code @@ -135,7 +112,6 @@ tkinter.Place.slaves turtle.ScrolledCanvas.adjustScrolls # Undocumented implementation detail turtle.ScrolledCanvas.onResize # Undocumented implementation detail -typing_extensions.NewType.__mro_entries__ # just exists for an error message uuid.bytes_ # Attributes that are intended to be private uuid.int_ # Attributes that are intended to be private wave.Wave_read.initfp # Undocumented implementation detail @@ -180,51 +156,11 @@ sys.tracebacklimit # Must be set first # Other allowlist entries that cannot or should not be fixed # ========================================================== -# async at runtime, deliberately not in the stub, see #7491 -_collections_abc.AsyncGenerator.asend # pos-only differences also -_collections_abc.AsyncGenerator.__anext__ -_collections_abc.AsyncGenerator.aclose -_collections_abc.AsyncGenerator.athrow # pos-only differences also -_collections_abc.AsyncIterator.__anext__ - -# positional-only complaints caused by differences between typing aliases and the "real" classes in the stdlib -_collections_abc.Coroutine.send -_collections_abc.Coroutine.throw -_collections_abc.Generator.send -_collections_abc.Generator.throw - -# These are not positional-only at runtime, but we treat them as positional-only to match dict. -_collections_abc.MutableMapping.pop -_collections_abc.MutableMapping.setdefault - # Pretend typing.ByteString is a Union, to better match its documented semantics. # As a side effect, this changes the definition of collections.abc.ByteString, which is okay, # because it's not an ABC that makes any sense and was deprecated in 3.12 -_collections_abc\.ByteString typing\.ByteString -_collections_abc.Callable # Typing-related weirdness - -# While the implementation in _collections_abc.py uses positional-or-keyword args, -# this is unsafe as canonical types list/dict/set etc. only support positional args. -# See: https://github.com/python/typeshed/issues/14071 -# See: https://github.com/python/cpython/issues/135312 -_collections_abc.Mapping.get -_collections_abc.MutableSequence.append -_collections_abc.MutableSequence.extend -_collections_abc.MutableSequence.insert -_collections_abc.MutableSequence.pop -_collections_abc.MutableSequence.remove -_collections_abc.MutableSet.add -_collections_abc.MutableSet.discard -_collections_abc.MutableSet.remove -_collections_abc.Sequence.count -_collections_abc.Sequence.index -_collections_abc.Set.isdisjoint -_collections_abc.Set._from_iterable -_collections_abc.ItemsView._from_iterable -_collections_abc.KeysView._from_iterable - _ctypes.CFuncPtr # stubtest erroneously thinks it can't be subclassed # runtime is *args, **kwargs due to a wrapper; we have more accurate signatures in the stubs @@ -237,7 +173,6 @@ _frozen_importlib_external.FileLoader.load_module _markupbase.ParserBase.parse_comment _markupbase.ParserBase.parse_marked_section -_pydecimal.* # See comments in file _typeshed.* # Utility types for typeshed, doesn't exist at runtime argparse.Namespace.__getattr__ # The whole point of this class is its attributes are dynamic @@ -250,17 +185,12 @@ _?ast.expr.__init__ _?ast.pattern.__init__ _?ast.stmt.__init__ -_ast.ImportFrom.level # None on the class, but never None on instances - argparse.Namespace.__setattr__ # should allow setting any attribute ast.ImportFrom.level # None on the class, but never None on instances ast.NodeVisitor.visit_\w+ # Methods are discovered dynamically, see #3796 # Condition functions are exported in __init__ -asyncio.Condition.acquire -asyncio.Condition.locked -asyncio.Condition.release asyncio.locks.Condition.acquire asyncio.locks.Condition.locked asyncio.locks.Condition.release @@ -285,7 +215,6 @@ codecs.StreamRecoder.\w+ collections.UserList.index # ignoring pos-or-keyword parameter collections.UserList.sort # Runtime has *args but will error if any are supplied -collections.abc.* # Types are re-exported from _collections_abc, so errors should be fixed there configparser.SectionProxy.__getattr__ # SectionProxy can have arbitrary attributes when custom converters are used configparser.SectionProxy.getboolean # SectionProxy get functions are set in __init__ configparser.SectionProxy.getfloat # SectionProxy get functions are set in __init__ @@ -338,7 +267,6 @@ email.parser email.quoprimime email.utils -email.policy.EmailPolicy.message_factory # "type" at runtime, but protocol in stubs enum.auto.__or__ # enum.auto is magic, see comments enum.auto.__and__ # enum.auto is magic, see comments enum.auto.__xor__ # enum.auto is magic, see comments @@ -355,13 +283,8 @@ imaplib.IMAP4_SSL.ssl # Depends on the existence and flags of SSL importlib._abc.Loader.exec_module # See Lib/importlib/_abc.py. Might be defined for backwards compatibility # runtime is *args, **kwargs due to a wrapper; we have more accurate signatures in the stubs -importlib._bootstrap_external.ExtensionFileLoader.get_filename -importlib._bootstrap_external.FileLoader.get_filename -importlib._bootstrap_external.FileLoader.get_resource_reader -importlib._bootstrap_external.FileLoader.load_module importlib.abc.FileLoader.get_filename importlib.abc.FileLoader.load_module -importlib.machinery.ExtensionFileLoader.get_filename importlib.metadata._meta.SimplePath.joinpath # Runtime definition of protocol is incorrect @@ -376,20 +299,6 @@ logging.LogRecord.__setattr__ # doesn't exist, but makes things easy if we pret mmap.mmap.__iter__ mmap.mmap.__contains__ -multiprocessing.dummy.Condition.acquire # Condition functions are exported in __init__ -multiprocessing.dummy.Condition.release # Condition functions are exported in __init__ - -# At runtime, these are functions from multiprocessing.context._default_context. -# Typeshed makes them classes instead, which matches CPython documentation. -# This has been heavily discussed, see #4266 for the primary issue about it. -multiprocessing.JoinableQueue -multiprocessing.Queue -multiprocessing.SimpleQueue - -# A factory function that returns 'most efficient lock'. -# Marking it as a function will make it impossible for users to use the Lock type as an annotation. -multiprocessing.dummy.RLock - # These multiprocessing proxy methods have *args, **kwargs signatures at runtime, # But have more precise (accurate) signatures in the stub multiprocessing.managers.BaseListProxy.__len__ @@ -437,15 +346,12 @@ os._wrap_close.writelines # Methods that come from __getattr__() at runtime os.PathLike.__class_getitem__ # PathLike is a protocol; we don't expect all PathLike classes to implement class_getitem _pickle.Pickler.reducer_override # Can be added by subclasses -pickle.Pickler.reducer_override # Can be added by subclasses pickle._Pickler\..* # Best effort typing for undocumented internals pickle._Unpickler\..* # Best effort typing for undocumented internals -shutil.rmtree # function with attributes, which we approximate with a callable protocol socketserver.BaseServer.get_request # Not implemented, but expected to exist on subclasses. ssl.PROTOCOL_SSLv2 # Depends on the existence and flags of SSL ssl.PROTOCOL_SSLv3 # Depends on the existence and flags of SSL -sys.implementation # Actually SimpleNamespace but then you wouldn't have convenient attributes tarfile.TarFile.errors # errors is initialized for some reason as None even though it really only accepts str tempfile._TemporaryFileWrapper.[\w_]+ # Dynamically specified by __getattr__, and thus don't exist on the class threading.Condition.acquire # Condition functions are exported in __init__ @@ -503,8 +409,6 @@ typing\.Protocol typing(_extensions)?\._TypedDict typing(_extensions)?\.Any.* typing(_extensions)?\.TypedDict -typing_extensions\.ParamSpec.* -typing_extensions\.TypeVar.* # Special primitives typing(_extensions)?\.AbstractSet @@ -523,17 +427,14 @@ typing(_extensions)?\.Iterator typing(_extensions)?\.KeysView typing(_extensions)?\.Mapping typing(_extensions)?\.MappingView -typing(_extensions)?\.Match typing(_extensions)?\.MutableMapping typing(_extensions)?\.MutableSequence typing(_extensions)?\.MutableSet typing(_extensions)?\.NamedTuple -typing(_extensions)?\.Pattern typing(_extensions)?\.Reversible typing(_extensions)?\.Sequence typing(_extensions)?\.Sized typing(_extensions)?\.ValuesView -typing_extensions\.LiteralString # Typing-related weirdness typing._SpecialForm.__call__ @@ -550,10 +451,6 @@ typing(_extensions)?\.TextIO\.errors typing(_extensions)?\.TextIO\.line_buffering typing(_extensions)?\.TextIO\.newlines -# These are typing._SpecialGenericAlias at runtime, which is not a real type, but it -# behaves like one in most cases -typing(_extensions)?\.(Async)?ContextManager - # Iterable classes that don't define __iter__ at runtime (usually iterable via __getitem__) # These would ideally be special-cased by type checkers; see https://github.com/python/mypy/issues/2220 # See https://github.com/python/typeshed/commit/97bc450acd60c1bcdafef3ce8fbe3b95a9c0cac3 @@ -580,7 +477,6 @@ unittest.runner._WritelnDecorator.flush # Methods that come from __getattr__() unittest.runner._WritelnDecorator.write # Methods that come from __getattr__() at runtime urllib.response.addbase.write # Methods that come from __getattr__() at runtime urllib.response.addbase.writelines # Methods that come from __getattr__() at runtime -unittest.mock.patch # function with attributes, which we approximate with a callable class _?weakref\.CallableProxyType\.__getattr__ # Should have all attributes of proxy _?weakref\.(ref|ReferenceType)\.__init__ # C implementation has incorrect signature @@ -599,14 +495,11 @@ xml.parsers # __all__-related weirdness (see #6523) xml.sax # __all__-related weirdness (see #6523) xml.dom.minidom.StringTypes # Unnecessary re-export xml.etree.ElementTree.XMLParser.__init__ # Defined in C so has general signature -xml.etree.cElementTree.XMLParser.__init__ # Defined in C so has general signature # Iterable classes that don't define __iter__ at runtime (usually iterable via __getitem__) # These would ideally be special-cased by type checkers; see https://github.com/python/mypy/issues/2220 xml.etree.ElementTree.Element.__iter__ -xml.etree.cElementTree.Element.__iter__ # These three have a pos-or-keyword first parameter at runtime, but deliberately have a pos-only first parameter in the stub. #6812 posixpath.join ntpath.join -os.path.join diff --git a/stdlib/@tests/stubtest_allowlists/darwin-py310.txt b/stdlib/@tests/stubtest_allowlists/darwin-py310.txt index 64485b83320b..86b8608f39eb 100644 --- a/stdlib/@tests/stubtest_allowlists/darwin-py310.txt +++ b/stdlib/@tests/stubtest_allowlists/darwin-py310.txt @@ -24,10 +24,6 @@ pyexpat.XMLParserType.GetReparseDeferralEnabled pyexpat.XMLParserType.SetReparseDeferralEnabled xml.etree.ElementTree.XMLParser.flush xml.etree.ElementTree.XMLPullParser.flush -xml.etree.cElementTree.XMLParser.flush -xml.etree.cElementTree.XMLPullParser.flush -xml.parsers.expat.XMLParserType.GetReparseDeferralEnabled -xml.parsers.expat.XMLParserType.SetReparseDeferralEnabled xml.sax.expatreader.ExpatParser.flush zipfile.ZipInfo.__slots__ @@ -68,8 +64,6 @@ email._header_value_parser.make_parenthesis_pairs html.parser.HTMLParser.__init__ # parameter `scripting` pyexpat.XMLParserType.SetAllocTrackerActivationThreshold pyexpat.XMLParserType.SetAllocTrackerMaximumAmplification -xml.parsers.expat.XMLParserType.SetAllocTrackerActivationThreshold -xml.parsers.expat.XMLParserType.SetAllocTrackerMaximumAmplification # ============================================================= diff --git a/stdlib/@tests/stubtest_allowlists/darwin-py311.txt b/stdlib/@tests/stubtest_allowlists/darwin-py311.txt index 733310806748..24b7d5d8ceca 100644 --- a/stdlib/@tests/stubtest_allowlists/darwin-py311.txt +++ b/stdlib/@tests/stubtest_allowlists/darwin-py311.txt @@ -39,8 +39,6 @@ email._header_value_parser.make_parenthesis_pairs html.parser.HTMLParser.__init__ # parameter `scripting` pyexpat.XMLParserType.SetAllocTrackerActivationThreshold pyexpat.XMLParserType.SetAllocTrackerMaximumAmplification -xml.parsers.expat.XMLParserType.SetAllocTrackerActivationThreshold -xml.parsers.expat.XMLParserType.SetAllocTrackerMaximumAmplification # ============ diff --git a/stdlib/@tests/stubtest_allowlists/darwin-py312.txt b/stdlib/@tests/stubtest_allowlists/darwin-py312.txt index 844a224585df..003efdd5b489 100644 --- a/stdlib/@tests/stubtest_allowlists/darwin-py312.txt +++ b/stdlib/@tests/stubtest_allowlists/darwin-py312.txt @@ -26,8 +26,6 @@ email._header_value_parser.make_parenthesis_pairs html.parser.HTMLParser.__init__ # parameter `scripting` pyexpat.XMLParserType.SetAllocTrackerActivationThreshold pyexpat.XMLParserType.SetAllocTrackerMaximumAmplification -xml.parsers.expat.XMLParserType.SetAllocTrackerActivationThreshold -xml.parsers.expat.XMLParserType.SetAllocTrackerMaximumAmplification # ============ diff --git a/stdlib/@tests/stubtest_allowlists/darwin.txt b/stdlib/@tests/stubtest_allowlists/darwin.txt index bee977f6d21d..f1eb01ce62a5 100644 --- a/stdlib/@tests/stubtest_allowlists/darwin.txt +++ b/stdlib/@tests/stubtest_allowlists/darwin.txt @@ -31,16 +31,11 @@ winsound _gdbm # Only available if compiled with libgdbm -# Not available on python distributions compiled without sqlite3 loadable extension support -_sqlite3.Connection.load_extension -_sqlite3.Connection.enable_load_extension - _?curses.ACS_.* # ACS codes are initialized only after initscr call curses.COLORS # Initialized after start_color curses.COLOR_PAIRS # Initialized after start_color curses.COLS # Initialized only after initscr call curses.LINES # Initialized only after initscr call -curses.has_key # stubtest gets confused because this is both a module and a function in curses multiprocessing.popen_spawn_win32 # exists on Darwin but fails to import readline.append_history_file # Only available if compiled with GNU readline, not editline select.poll # Actually a function; we have a class so it can be used as a type diff --git a/stdlib/@tests/stubtest_allowlists/linux.txt b/stdlib/@tests/stubtest_allowlists/linux.txt index b652654f9780..90432236f3bc 100644 --- a/stdlib/@tests/stubtest_allowlists/linux.txt +++ b/stdlib/@tests/stubtest_allowlists/linux.txt @@ -22,7 +22,6 @@ curses.COLORS # Initialized after start_color curses.COLOR_PAIRS # Initialized after start_color curses.COLS # Initialized only after initscr call curses.LINES # Initialized only after initscr call -curses.has_key # stubtest gets confused because this is both a module and a function in curses fcntl.I_[A-Z0-9_]+ # Platform differences that cannot be captured by the type system multiprocessing.popen_spawn_win32 # exists on Linux but fails to import select.poll # Actually a function; we have a class so it can be used as a type diff --git a/stdlib/@tests/stubtest_allowlists/py310.txt b/stdlib/@tests/stubtest_allowlists/py310.txt index 403a93a5e26f..59266fb81b63 100644 --- a/stdlib/@tests/stubtest_allowlists/py310.txt +++ b/stdlib/@tests/stubtest_allowlists/py310.txt @@ -8,12 +8,6 @@ # ========= # The "loop" argument exists at runtime, but raises TypeError if you try to provide any value for it -asyncio.BoundedSemaphore.__init__ -asyncio.Condition.__init__ -asyncio.Event.__init__ -asyncio.Lock.__init__ -asyncio.Queue.__init__ -asyncio.Semaphore.__init__ asyncio.locks.BoundedSemaphore.__init__ asyncio.locks.Condition.__init__ asyncio.locks.Event.__init__ @@ -25,6 +19,9 @@ _random.Random.__init__ # Issues with __new__/__init__ correspondence bdb.Breakpoint.clearBreakpoints # Exists at runtime, but missing from stubs +# Only exists for an error message. +typing_extensions.NewType.__mro_entries__ + # ============ # 3.10 to 3.11 @@ -59,6 +56,7 @@ tempfile.SpooledTemporaryFile.writable tkinter.Tk.split # Exists at runtime, but missing from stubs typing._SpecialForm.__mro_entries__ # Exists at runtime, but missing from stubs +typing_extensions.LiteralString # Will always raise. Not included to avoid type checkers inferring that # Sentinel instances are callable. typing_extensions.Sentinel.__call__ @@ -72,7 +70,6 @@ enum.Enum._generate_next_value_ importlib.abc.Finder.find_module urllib.request.HTTPPasswordMgrWithPriorAuth.__init__ # Args are passed as is to super, so super args are specified xml.etree.ElementTree.Element.__bool__ # Doesn't really exist; see comments in stub -xml.etree.cElementTree.Element.__bool__ # Doesn't really exist; see comments in stub # ======= @@ -113,6 +110,14 @@ tkinter.tix.Shell tkinter.tix.TclVersion tkinter.tix.TkVersion +# Details of runtime definition don't need to be in stubs +typing_extensions\.ParamSpec.* +typing_extensions\.TypeVar.* + +# These are typing._SpecialGenericAlias at runtime, which is not a real type, but it +# behaves like one in most cases +typing(_extensions)?\.(Async)?ContextManager + # ======= # <= 3.13 @@ -222,7 +227,6 @@ cgi.FieldStorage.skip_lines ctypes._endian.DEFAULT_MODE # Incorrectly star import. ctypes._endian.RTLD_GLOBAL # Incorrectly star import. ctypes._endian.RTLD_LOCAL # Incorrectly star import. -multiprocessing.dummy.Lock # Factory function at runtime, but that wouldn't let us use it in type hints # These multiprocessing proxy methods have *args, **kwargs signatures at runtime, # But have more precise (accurate) signatures in the stub @@ -252,5 +256,3 @@ typing\.Annotated # Super-special typing primitive # These methods have no default implementation for Python < 3.13. _pickle.Pickler.persistent_id _pickle.Unpickler.persistent_load -pickle.Pickler.persistent_id -pickle.Unpickler.persistent_load diff --git a/stdlib/@tests/stubtest_allowlists/py311.txt b/stdlib/@tests/stubtest_allowlists/py311.txt index 56cf672fda59..213240f9933d 100644 --- a/stdlib/@tests/stubtest_allowlists/py311.txt +++ b/stdlib/@tests/stubtest_allowlists/py311.txt @@ -7,6 +7,7 @@ # >= 3.11 # ======= +# Only exists for an error message. typing.NewType.__mro_entries__ @@ -38,7 +39,6 @@ enum.Enum._generate_next_value_ importlib.abc.Finder.find_module urllib.request.HTTPPasswordMgrWithPriorAuth.__init__ # Args are passed as is to super, so super args are specified xml.etree.ElementTree.Element.__bool__ # Doesn't really exist; see comments in stub -xml.etree.cElementTree.Element.__bool__ # Doesn't really exist; see comments in stub # ======= @@ -79,6 +79,14 @@ tkinter.tix.Shell tkinter.tix.TclVersion tkinter.tix.TkVersion +# Details of runtime definition don't need to be in stubs +typing_extensions\.ParamSpec.* +typing_extensions\.TypeVar.* + +# These are typing._SpecialGenericAlias at runtime, which is not a real type, but it +# behaves like one in most cases +typing(_extensions)?\.(Async)?ContextManager + # ======= # <= 3.13 @@ -88,8 +96,6 @@ ast.Ellipsis.__new__ # Implementation has *args, but shouldn't allow any _?hashlib.scrypt # Raises TypeError if salt, n, r or p are None -importlib.abc.Traversable.open # Problematic protocol signature at runtime, see source code comments. - # Will always raise. Not included to avoid type checkers inferring that # TypeAliasType instances are callable. typing_extensions.TypeAliasType.__call__ @@ -198,7 +204,6 @@ cgi.FieldStorage.skip_lines ctypes._endian.DEFAULT_MODE # Incorrectly star import. ctypes._endian.RTLD_GLOBAL # Incorrectly star import. ctypes._endian.RTLD_LOCAL # Incorrectly star import. -multiprocessing.dummy.Lock # Factory function at runtime, but that wouldn't let us use it in type hints # These multiprocessing proxy methods have *args, **kwargs signatures at runtime, # But have more precise (accurate) signatures in the stub @@ -228,5 +233,3 @@ typing\.Annotated # Super-special typing primitive # These methods have no default implementation for Python < 3.13. _pickle.Pickler.persistent_id _pickle.Unpickler.persistent_load -pickle.Pickler.persistent_id -pickle.Unpickler.persistent_load diff --git a/stdlib/@tests/stubtest_allowlists/py312.txt b/stdlib/@tests/stubtest_allowlists/py312.txt index d5d66bddfe59..013cb733440f 100644 --- a/stdlib/@tests/stubtest_allowlists/py312.txt +++ b/stdlib/@tests/stubtest_allowlists/py312.txt @@ -30,6 +30,7 @@ typing_extensions.TypeAliasType.__value__ # >= 3.11 # ======= +# Only exists for an error message. typing.NewType.__mro_entries__ @@ -78,6 +79,14 @@ tkinter.tix.Shell tkinter.tix.TclVersion tkinter.tix.TkVersion +# Details of runtime definition don't need to be in stubs +typing_extensions\.ParamSpec.* +typing_extensions\.TypeVar.* + +# These are typing._SpecialGenericAlias at runtime, which is not a real type, but it +# behaves like one in most cases +typing(_extensions)?\.(Async)?ContextManager + # ======= # <= 3.13 @@ -87,8 +96,6 @@ ast.Ellipsis.__new__ # Implementation has *args, but shouldn't allow any _?hashlib.scrypt # Raises TypeError if salt, n, r or p are None -importlib.abc.Traversable.open # Problematic protocol signature at runtime, see source code comments. - # Will always raise. Not included to avoid type checkers inferring that # TypeAliasType instances are callable. typing_extensions.TypeAliasType.__call__ @@ -108,7 +115,6 @@ importlib.metadata.DeprecatedNonAbstract.__new__ # Deprecated argument is supported at runtime by renaming it through a decorator. importlib.resources._common.files -importlib.resources.files sys._monitoring # Doesn't really exist. See comments in the stub. sys.last_exc # not always defined @@ -123,8 +129,6 @@ typing.TypeVarTuple.__mro_entries__ # These exist at runtime because the protocol uses PEP-695 syntax in CPython typing.SupportsAbs.__type_params__ typing.SupportsRound.__type_params__ -typing_extensions.SupportsAbs.__type_params__ -typing_extensions.SupportsRound.__type_params__ # ============================================================= @@ -180,7 +184,6 @@ cgi.FieldStorage.skip_lines ctypes._endian.DEFAULT_MODE # Incorrectly star import. ctypes._endian.RTLD_GLOBAL # Incorrectly star import. ctypes._endian.RTLD_LOCAL # Incorrectly star import. -multiprocessing.dummy.Lock # Factory function at runtime, but that wouldn't let us use it in type hints # These multiprocessing proxy methods have *args, **kwargs signatures at runtime, # But have more precise (accurate) signatures in the stub @@ -210,5 +213,3 @@ typing\.Annotated # Super-special typing primitive # These methods have no default implementation for Python < 3.13. _pickle.Pickler.persistent_id _pickle.Unpickler.persistent_load -pickle.Pickler.persistent_id -pickle.Unpickler.persistent_load diff --git a/stdlib/@tests/stubtest_allowlists/py313.txt b/stdlib/@tests/stubtest_allowlists/py313.txt index 27d7a14a36d6..fc531aab7ddb 100644 --- a/stdlib/@tests/stubtest_allowlists/py313.txt +++ b/stdlib/@tests/stubtest_allowlists/py313.txt @@ -30,6 +30,7 @@ typing_extensions.TypeAliasType.__value__ # >= 3.11 # ======= +# Only exists for an error message. typing.NewType.__mro_entries__ @@ -48,8 +49,6 @@ ast.Ellipsis.__new__ # Implementation has *args, but shouldn't allow any _?hashlib.scrypt # Raises TypeError if salt, n, r or p are None -importlib.abc.Traversable.open # Problematic protocol signature at runtime, see source code comments. - # Will always raise. Not included to avoid type checkers inferring that # TypeAliasType instances are callable. typing_extensions.TypeAliasType.__call__ @@ -98,7 +97,6 @@ importlib.metadata.DeprecatedNonAbstract.__new__ # Deprecated argument is supported at runtime by renaming it through a decorator. importlib.resources._common.files -importlib.resources.files sys._monitoring # Doesn't really exist. See comments in the stub. sys.last_exc # not always defined @@ -113,8 +111,6 @@ typing.TypeVarTuple.__mro_entries__ # These exist at runtime because the protocol uses PEP-695 syntax in CPython typing.SupportsAbs.__type_params__ typing.SupportsRound.__type_params__ -typing_extensions.SupportsAbs.__type_params__ -typing_extensions.SupportsRound.__type_params__ # ============================================================= diff --git a/stdlib/@tests/stubtest_allowlists/py314.txt b/stdlib/@tests/stubtest_allowlists/py314.txt index 7dd1d1779eaf..bc2c485d7db8 100644 --- a/stdlib/@tests/stubtest_allowlists/py314.txt +++ b/stdlib/@tests/stubtest_allowlists/py314.txt @@ -3,7 +3,6 @@ # ========================= # Union and UnionType are aliases in 3.14 but type checkers need some changes -typing_extensions.Union typing.Union types.UnionType.__class_getitem__ types.UnionType.__mro_entries__ @@ -13,20 +12,17 @@ types.UnionType.__qualname__ # Assigning `__new__` causes `func` not to get recognized. functools.partialmethod.__new__ -# decorator approximated by classmethod +# Decorator approximated by classmethod concurrent.interpreters._crossinterp.classonly.* +# Method using this decorator +concurrent.interpreters._crossinterp.UnboundItem.singleton # object() sentinels at runtime represented by NewTypes in the stubs concurrent.interpreters._crossinterp.UNBOUND_ERROR concurrent.interpreters._crossinterp.UNBOUND_REMOVE -concurrent.interpreters._queues.UNBOUND_ERROR -concurrent.interpreters._queues.UNBOUND_REMOVE - -importlib.util.Loader.exec_module # See Lib/importlib/_abc.py. Might be defined for backwards compatibility # Condition functions are exported in __init__ threading.Condition.locked -multiprocessing.dummy.Condition.locked # Starting with Python 3.14.1, these methods accept None for some of their # parameters, but would raise a TypeError with Python 3.14.0. @@ -53,6 +49,7 @@ types.SimpleNamespace.__delattr__ # >= 3.11 # ======= +# Only exists for an error message. typing.NewType.__mro_entries__ @@ -133,7 +130,6 @@ importlib.metadata.DeprecatedNonAbstract.__new__ # Deprecated argument is supported at runtime by renaming it through a decorator. importlib.resources._common.files -importlib.resources.files sys._monitoring # Doesn't really exist. See comments in the stub. sys.last_exc # not always defined @@ -148,8 +144,6 @@ typing.TypeVarTuple.__mro_entries__ # These exist at runtime because the protocol uses PEP-695 syntax in CPython typing.SupportsAbs.__type_params__ typing.SupportsRound.__type_params__ -typing_extensions.SupportsAbs.__type_params__ -typing_extensions.SupportsRound.__type_params__ # ============================================================= diff --git a/stdlib/@tests/stubtest_allowlists/win32-py310.txt b/stdlib/@tests/stubtest_allowlists/win32-py310.txt index 68a5eb0e4e74..304b21a96405 100644 --- a/stdlib/@tests/stubtest_allowlists/win32-py310.txt +++ b/stdlib/@tests/stubtest_allowlists/win32-py310.txt @@ -24,10 +24,6 @@ pyexpat.XMLParserType.GetReparseDeferralEnabled pyexpat.XMLParserType.SetReparseDeferralEnabled xml.etree.ElementTree.XMLParser.flush xml.etree.ElementTree.XMLPullParser.flush -xml.etree.cElementTree.XMLParser.flush -xml.etree.cElementTree.XMLPullParser.flush -xml.parsers.expat.XMLParserType.GetReparseDeferralEnabled -xml.parsers.expat.XMLParserType.SetReparseDeferralEnabled xml.sax.expatreader.ExpatParser.flush zipfile.ZipInfo.__slots__ @@ -68,8 +64,6 @@ email._header_value_parser.make_parenthesis_pairs html.parser.HTMLParser.__init__ # parameter `scripting` pyexpat.XMLParserType.SetAllocTrackerActivationThreshold pyexpat.XMLParserType.SetAllocTrackerMaximumAmplification -xml.parsers.expat.XMLParserType.SetAllocTrackerActivationThreshold -xml.parsers.expat.XMLParserType.SetAllocTrackerMaximumAmplification # ============================================================= diff --git a/stdlib/@tests/stubtest_allowlists/win32-py311.txt b/stdlib/@tests/stubtest_allowlists/win32-py311.txt index 502a9fc3133a..1499d0da2abe 100644 --- a/stdlib/@tests/stubtest_allowlists/win32-py311.txt +++ b/stdlib/@tests/stubtest_allowlists/win32-py311.txt @@ -39,8 +39,6 @@ email._header_value_parser.make_parenthesis_pairs html.parser.HTMLParser.__init__ # parameter `scripting` pyexpat.XMLParserType.SetAllocTrackerActivationThreshold pyexpat.XMLParserType.SetAllocTrackerMaximumAmplification -xml.parsers.expat.XMLParserType.SetAllocTrackerActivationThreshold -xml.parsers.expat.XMLParserType.SetAllocTrackerMaximumAmplification # ============================================================= diff --git a/stdlib/@tests/stubtest_allowlists/win32-py312.txt b/stdlib/@tests/stubtest_allowlists/win32-py312.txt index 8c71d5940361..eb780c0d569a 100644 --- a/stdlib/@tests/stubtest_allowlists/win32-py312.txt +++ b/stdlib/@tests/stubtest_allowlists/win32-py312.txt @@ -26,8 +26,6 @@ email._header_value_parser.make_parenthesis_pairs html.parser.HTMLParser.__init__ # parameter `scripting` pyexpat.XMLParserType.SetAllocTrackerActivationThreshold pyexpat.XMLParserType.SetAllocTrackerMaximumAmplification -xml.parsers.expat.XMLParserType.SetAllocTrackerActivationThreshold -xml.parsers.expat.XMLParserType.SetAllocTrackerMaximumAmplification # ======= @@ -36,7 +34,6 @@ xml.parsers.expat.XMLParserType.SetAllocTrackerMaximumAmplification # Undocumented internal method, not really for public consumption. # (Hard to add types for unless we add stubs for the undocumented _overlapped module...) -asyncio.IocpProactor.finish_socket_func asyncio.windows_events.IocpProactor.finish_socket_func diff --git a/stdlib/@tests/stubtest_allowlists/win32-py313.txt b/stdlib/@tests/stubtest_allowlists/win32-py313.txt index 070fce3e9c49..7fba48d7067a 100644 --- a/stdlib/@tests/stubtest_allowlists/win32-py313.txt +++ b/stdlib/@tests/stubtest_allowlists/win32-py313.txt @@ -4,5 +4,4 @@ # Undocumented internal method, not really for public consumption. # (Hard to add types for unless we add stubs for the undocumented _overlapped module...) -asyncio.IocpProactor.finish_socket_func asyncio.windows_events.IocpProactor.finish_socket_func diff --git a/stdlib/@tests/stubtest_allowlists/win32-py314.txt b/stdlib/@tests/stubtest_allowlists/win32-py314.txt index 070fce3e9c49..7fba48d7067a 100644 --- a/stdlib/@tests/stubtest_allowlists/win32-py314.txt +++ b/stdlib/@tests/stubtest_allowlists/win32-py314.txt @@ -4,5 +4,4 @@ # Undocumented internal method, not really for public consumption. # (Hard to add types for unless we add stubs for the undocumented _overlapped module...) -asyncio.IocpProactor.finish_socket_func asyncio.windows_events.IocpProactor.finish_socket_func diff --git a/stubs/Authlib/@tests/stubtest_allowlist.txt b/stubs/Authlib/@tests/stubtest_allowlist.txt index a3df5800da40..42440a12d667 100644 --- a/stubs/Authlib/@tests/stubtest_allowlist.txt +++ b/stubs/Authlib/@tests/stubtest_allowlist.txt @@ -6,13 +6,6 @@ authlib.jose.drafts._jwe_algorithms.ECDH1PUAlgorithm.description authlib.jose.drafts._jwe_algorithms.ECDH1PUAlgorithm.name authlib.jose.drafts._jwe_enc_cryptography.C20PEncAlgorithm.description authlib.jose.drafts._jwe_enc_cryptography.C20PEncAlgorithm.name -authlib.jose.rfc7518.AESAlgorithm.description -authlib.jose.rfc7518.AESAlgorithm.name -authlib.jose.rfc7518.ECDHESAlgorithm.description -authlib.jose.rfc7518.ECDHESAlgorithm.name -authlib.jose.rfc7518.CBCHS2EncAlgorithm.CEK_SIZE -authlib.jose.rfc7518.CBCHS2EncAlgorithm.description -authlib.jose.rfc7518.CBCHS2EncAlgorithm.name authlib.jose.rfc7518.jwe_algs.AESAlgorithm.description authlib.jose.rfc7518.jwe_algs.AESAlgorithm.name authlib.jose.rfc7518.jwe_algs.AESGCMAlgorithm.description @@ -37,20 +30,6 @@ authlib.jose.rfc7518.jws_algs.RSAPSSAlgorithm.description authlib.jose.rfc7518.jws_algs.RSAPSSAlgorithm.name # Methods whose *args and **kwargs arguments are added dynamically due to the @hooked decorator: -authlib.oauth2.rfc6749.AuthorizationCodeGrant.create_token_response -authlib.oauth2.rfc6749.AuthorizationCodeGrant.validate_token_request -authlib.oauth2.rfc6749.AuthorizationEndpointMixin.validate_consent_request -authlib.oauth2.rfc6749.ClientCredentialsGrant.create_token_response -authlib.oauth2.rfc6749.ImplicitGrant.validate_authorization_request -authlib.oauth2.rfc6749.RefreshTokenGrant.create_token_response -authlib.oauth2.rfc6749.ResourceOwnerPasswordCredentialsGrant.create_token_response -authlib.oauth2.rfc6749.grants.AuthorizationCodeGrant.create_token_response -authlib.oauth2.rfc6749.grants.AuthorizationCodeGrant.validate_token_request -authlib.oauth2.rfc6749.grants.AuthorizationEndpointMixin.validate_consent_request -authlib.oauth2.rfc6749.grants.ClientCredentialsGrant.create_token_response -authlib.oauth2.rfc6749.grants.ImplicitGrant.validate_authorization_request -authlib.oauth2.rfc6749.grants.RefreshTokenGrant.create_token_response -authlib.oauth2.rfc6749.grants.ResourceOwnerPasswordCredentialsGrant.create_token_response authlib.oauth2.rfc6749.grants.authorization_code.AuthorizationCodeGrant.create_token_response authlib.oauth2.rfc6749.grants.authorization_code.AuthorizationCodeGrant.validate_token_request authlib.oauth2.rfc6749.grants.base.AuthorizationEndpointMixin.validate_consent_request @@ -58,10 +37,7 @@ authlib.oauth2.rfc6749.grants.client_credentials.ClientCredentialsGrant.create_t authlib.oauth2.rfc6749.grants.implicit.ImplicitGrant.validate_authorization_request authlib.oauth2.rfc6749.grants.refresh_token.RefreshTokenGrant.create_token_response authlib.oauth2.rfc6749.grants.resource_owner_password_credentials.ResourceOwnerPasswordCredentialsGrant.create_token_response -authlib.oauth2.rfc8628.DeviceCodeGrant.create_token_response authlib.oauth2.rfc8628.device_code.DeviceCodeGrant.create_token_response -authlib.oidc.core.OpenIDImplicitGrant.validate_consent_request -authlib.oidc.core.grants.OpenIDImplicitGrant.validate_consent_request authlib.oidc.core.grants.implicit.OpenIDImplicitGrant.validate_consent_request # Exclude integrations dirs diff --git a/stubs/Flask-SocketIO/@tests/stubtest_allowlist.txt b/stubs/Flask-SocketIO/@tests/stubtest_allowlist.txt index 506235e6e560..6e232db3142d 100644 --- a/stubs/Flask-SocketIO/@tests/stubtest_allowlist.txt +++ b/stubs/Flask-SocketIO/@tests/stubtest_allowlist.txt @@ -1,5 +1,4 @@ # private attributes / methods, not present in docs -flask_socketio.SocketIOTestClient.clients flask_socketio.test_client.SocketIOTestClient.clients flask_socketio.gevent_socketio_found flask_socketio.call diff --git a/stubs/WTForms/@tests/stubtest_allowlist.txt b/stubs/WTForms/@tests/stubtest_allowlist.txt index 0bf5472acba9..3d8e733ca9c7 100644 --- a/stubs/WTForms/@tests/stubtest_allowlist.txt +++ b/stubs/WTForms/@tests/stubtest_allowlist.txt @@ -2,48 +2,11 @@ # ============================= # This is hack to get around Field.__new__ not being able to return # UnboundField -wtforms.Field.__get__ -wtforms.fields.Field.__get__ wtforms.fields.core.Field.__get__ # Since DefaultMeta can contain arbitrary values we added __getattr__ # to let mypy know that arbitrary attribute access is possible wtforms.meta.DefaultMeta.__getattr__ # Should allow setting and deleting any attribute -wtforms.Flags.__delattr__ -wtforms.Flags.__setattr__ -wtforms.fields.Flags.__delattr__ -wtforms.fields.Flags.__setattr__ wtforms.fields.core.Flags.__delattr__ wtforms.fields.core.Flags.__setattr__ - -# Error: variable differs from runtime -# ====================== -# _unbound_fields has some weird semantics: due to the metaclass it -# will be None until the form class has been instantiated at least -# once and then will stick around until someone adds a new field -# to the class, which clears it back to None. Which means on instances -# it will always be there and on the class it depends, so maybe this -# should use a dummy descriptor? For now we just pretend it's set. -# The behavior is documented in FormMeta, so I think it's fine. -wtforms.Form._unbound_fields -wtforms.form.Form._unbound_fields - -# widget is both used as a ClassVar and instance variable and does -# not necessarily reflect an upper bound on Widget, so we always use -# our Widget Protocol definition that's contravariant on Self -wtforms.Field.widget -wtforms.FormField.widget -wtforms.SelectField.widget -wtforms.SelectMultipleField.widget -wtforms.TextAreaField.widget -wtforms.fields.Field.widget -wtforms.fields.FormField.widget -wtforms.fields.SelectField.widget -wtforms.fields.SelectMultipleField.widget -wtforms.fields.TextAreaField.widget -wtforms.fields.choices.SelectField.widget -wtforms.fields.choices.SelectMultipleField.widget -wtforms.fields.core.Field.widget -wtforms.fields.form.FormField.widget -wtforms.fields.simple.TextAreaField.widget diff --git a/stubs/WebOb/@tests/stubtest_allowlist.txt b/stubs/WebOb/@tests/stubtest_allowlist.txt index dc716bbabce1..4379483af587 100644 --- a/stubs/WebOb/@tests/stubtest_allowlist.txt +++ b/stubs/WebOb/@tests/stubtest_allowlist.txt @@ -95,7 +95,6 @@ webob.response.ResponseBodyFile.close # Error: is inconsistent # ====================== # set_cookie has a deprecated argument `expires` which has been removed upstream -webob.Response.set_cookie webob.response.Response.set_cookie # These are here due to the slightly more strict nature of the type annotation diff --git a/stubs/auth0-python/@tests/stubtest_allowlist.txt b/stubs/auth0-python/@tests/stubtest_allowlist.txt index 374bc1d561b6..8ebe98654c0b 100644 --- a/stubs/auth0-python/@tests/stubtest_allowlist.txt +++ b/stubs/auth0-python/@tests/stubtest_allowlist.txt @@ -5,6 +5,3 @@ auth0\.test.* # The way these stubs are currently implemented is that we pretend all classes have async methods # Even though in reality, users need to call `auth0.asyncify.asyncify` to generate async subclasses auth0\..*_async - -# Inconsistently implemented, ommitted -auth0\.management\.Auth0\..* diff --git a/stubs/docker/@tests/stubtest_allowlist.txt b/stubs/docker/@tests/stubtest_allowlist.txt index 4ad48dd4aedd..21bc2c9b8898 100644 --- a/stubs/docker/@tests/stubtest_allowlist.txt +++ b/stubs/docker/@tests/stubtest_allowlist.txt @@ -1,7 +1,4 @@ # additional requirements are needed, e.g. win32 apis -docker.transport.NpipeHTTPAdapter -docker.transport.NpipeSocket -docker.transport.SSHHTTPAdapter docker.transport.npipeconn docker.transport.npipesocket docker.transport.sshconn diff --git a/stubs/fanstatic/@tests/stubtest_allowlist.txt b/stubs/fanstatic/@tests/stubtest_allowlist.txt index 3dc14c2e9c20..e51f685c4d08 100644 --- a/stubs/fanstatic/@tests/stubtest_allowlist.txt +++ b/stubs/fanstatic/@tests/stubtest_allowlist.txt @@ -3,7 +3,6 @@ # These are methods and attributes that really should have been # prefixed with a `_`, since they should only really be used # internally -fanstatic.Library.init_library_nr fanstatic.core.Asset.init_dependency_nr fanstatic.core.Library.init_library_nr @@ -22,9 +21,6 @@ fanstatic.compiler.mtime # should really be abstract and instead defines some attributes as # None, even though all subclasses populate them, so these have been # made abstract to make defining correct subclasses more easy -fanstatic.Group.depends -fanstatic.Group.resources -fanstatic.Group.supports fanstatic.core.Asset.depends fanstatic.core.Asset.resources fanstatic.core.Asset.supports @@ -38,11 +34,6 @@ fanstatic.core.Group.supports # The API for Compiler has very much the same problem, so these are # some more attributes/methods that have been made abstract for the # purposes of type checking -fanstatic.Compiler.name -fanstatic.Compiler.source_extension -fanstatic.Minifier.name -fanstatic.Minifier.source_extension -fanstatic.Minifier.target_extension fanstatic.compiler.CommandlineBase.command fanstatic.compiler.Compiler.name fanstatic.compiler.Compiler.source_extension @@ -55,7 +46,6 @@ fanstatic.registry.Registry.ENTRY_POINT # This is only inconsistent because the library authors set this # attribute to `None` on the class, so they could assign a docstring # to it. `__init__` will always populate this attribute with a `str` -fanstatic.Library.path fanstatic.core.Library.path # Error: variable differs from runtime type diff --git a/stubs/fpdf2/@tests/stubtest_allowlist.txt b/stubs/fpdf2/@tests/stubtest_allowlist.txt index 4ceb15988f18..549327b0abaa 100644 --- a/stubs/fpdf2/@tests/stubtest_allowlist.txt +++ b/stubs/fpdf2/@tests/stubtest_allowlist.txt @@ -1,5 +1,4 @@ # Argument has default at runtime, but using it raises a TypeError. -fpdf.FPDF.set_creation_date fpdf.fpdf.FPDF.set_creation_date # fonttools shims since we can't import it diff --git a/stubs/geopandas/@tests/stubtest_allowlist.txt b/stubs/geopandas/@tests/stubtest_allowlist.txt index 8b1d55baf177..2251765af4e4 100644 --- a/stubs/geopandas/@tests/stubtest_allowlist.txt +++ b/stubs/geopandas/@tests/stubtest_allowlist.txt @@ -14,6 +14,11 @@ geopandas\.(geodataframe\.)?GeoDataFrame\.plot geopandas\.io\._geoarrow geopandas\._exports +# stub parameter differs from runtime parameter "self" +geopandas.geodataframe.GeoDataFrame.explore +geopandas.geoseries.GeoSeries.explore +geopandas.geoseries.GeoSeries.plot + # Inconsistent (TODO) geopandas\.(geoseries\.)?GeoSeries\.apply geopandas\.(geoseries\.)?GeoSeries\.fillna diff --git a/stubs/gevent/@tests/stubtest_allowlist.txt b/stubs/gevent/@tests/stubtest_allowlist.txt index 8e42b951b9e8..ed67e0945e91 100644 --- a/stubs/gevent/@tests/stubtest_allowlist.txt +++ b/stubs/gevent/@tests/stubtest_allowlist.txt @@ -52,22 +52,6 @@ gevent.pywsgi.Environ.iteritems # it's not necessary for public API gevent.hub.Waiter.switch_args -# these may be gevent extensions or methods for backwards compatibility -# for now we're fine with pretending it's not there -gevent.socket.SocketType.__enter__ -gevent.socket.SocketType.__exit__ -gevent.socket.SocketType.accept -gevent.socket.SocketType.closed -gevent.socket.SocketType.dup -gevent.socket.SocketType.get_inheritable -gevent.socket.SocketType.makefile -gevent.socket.SocketType.sendfile -gevent.socket.SocketType.set_inheritable - -# Pretends to re-export a type marked @disjoint_base in the stubs, but runtime -# defines __slots__ -gevent.socket.SocketType$ - # zope.interface related attributes we can ignore gevent.[\w\.]+\.__implemented__ gevent.[\w\.]+\.__providedBy__ @@ -84,22 +68,6 @@ gevent.ssl.os gevent.ssl.warnings gevent\.subprocess\._[A-Za-z0-9]\w* -# gevent implements its own Popen which doesn't completely match the original -# API, for now we ignore this discrepancy -gevent.subprocess.Popen.rawlink -gevent.subprocess.Popen.__del__ - -# Error: is not present at runtime -# ============================= -# Due to the way gevent copies globals from other modules, there's a few symbols -# that may not end up in the module, that would otherwise end up there with a -# `from x import *`. None of these seem critical, so we ignore them. For socket -# we ignore all constants that start with at least one segment of all uppercase -# letters before the underscore -gevent\.socket\.[A-Z0-9]+(_\w+)? -gevent.ssl.PROTOCOL_SSLv2 -gevent.ssl.PROTOCOL_SSLv3 - # Error: differs from runtime type # ====================== # these are None in the base class, but all settings are a subclass @@ -140,9 +108,6 @@ gevent._abstract_linkable.AbstractLinkable.rawlink gevent._abstract_linkable.AbstractLinkable.unlink # removed undocumented arguments for internal use -gevent.Greenlet.link -gevent.Greenlet.link_exception -gevent.Greenlet.link_value gevent.greenlet.Greenlet.link gevent.greenlet.Greenlet.link_exception gevent.greenlet.Greenlet.link_value @@ -158,36 +123,7 @@ gevent.pywsgi.WSGIHandler.__init__ # we're fine with holding the geven implemenation to the same restrictions # additionally there's some functions with additional optional arguments, that # we are fine with ignoring for now as well -gevent.socket.SocketType.bind -gevent.socket.SocketType.connect -gevent.socket.SocketType.connect_ex -gevent.socket.SocketType.send -gevent.socket.SocketType.sendall -gevent.socket.SocketType.setblocking -gevent.socket.SocketType.settimeout -gevent.socket.SocketType.shutdown gevent.socket.cancel_wait -gevent.socket.gethostbyaddr -gevent.socket.gethostbyname -gevent.socket.gethostbyname_ex -gevent.socket.getnameinfo -gevent.socket.socket.closed -gevent.socket.wait_readwrite -gevent.socket.wait_write -gevent.socket.socket.__slots__ - -# we have punted on ssl, the gevent version of these functions have an additional -# argument for timeouts/blocking and there are some with different default values -# for nbytes/length, for now we ignore that fact -gevent.ssl.SSLSocket.__init__ -gevent.ssl.SSLSocket.do_handshake -gevent.ssl.SSLSocket.read -gevent.ssl.SSLSocket.send -gevent.ssl.get_server_certificate - -# we have punted on subprocess, the gevent version has slightly different arguments -# for now we ignore that fact, most of the ways to call Popen should be compatible -gevent.subprocess.Popen.__init__ # gevent overwrites with a named parameter for fd, but we're fine with only # supporting the API of the superclass diff --git a/stubs/gevent/@tests/stubtest_allowlist_darwin.txt b/stubs/gevent/@tests/stubtest_allowlist_darwin.txt index dd72ec9eff22..9ef60bc83f94 100644 --- a/stubs/gevent/@tests/stubtest_allowlist_darwin.txt +++ b/stubs/gevent/@tests/stubtest_allowlist_darwin.txt @@ -3,10 +3,6 @@ # internal API stuff we dropped because it wasn't necessary gevent.libev.corecext.loop.async -# these shouldn't be in __all__ they end up there, due to how gevent imports -# the globals from the stdlib ssl module -gevent.subprocess.Popen.pipe_cloexec - # Error: is inconsistent # ====================== # these are inconsistent due to the ParamSpec hack for positional only callables @@ -16,14 +12,3 @@ gevent.libev.watcher.watcher.feed # undocumented argument for internal use only gevent.libev.watcher.watcher.__init__ - - -# we have punted on socket, the gevent version of these functions sometimes use -# named parameters, while the base implementation only allows positional arguments -# we're fine with holding the geven implemenation to the same restrictions -# additionally there's some functions with additional optional arguments, that -# we are fine with ignoring for now as well -gevent.socket.SocketType.recvmsg_into -gevent.socket.SocketType.sendmsg -gevent.socket.socket.recvmsg_into -gevent.socket.socket.sendmsg diff --git a/stubs/gevent/@tests/stubtest_allowlist_linux.txt b/stubs/gevent/@tests/stubtest_allowlist_linux.txt index 83da879a8f8f..9ef60bc83f94 100644 --- a/stubs/gevent/@tests/stubtest_allowlist_linux.txt +++ b/stubs/gevent/@tests/stubtest_allowlist_linux.txt @@ -3,17 +3,6 @@ # internal API stuff we dropped because it wasn't necessary gevent.libev.corecext.loop.async -# these shouldn't be in __all__ they end up there, due to how gevent imports -# the globals from the stdlib ssl module -gevent.subprocess.Popen.pipe_cloexec -gevent.subprocess.Popen.rawlink - -# Error: is not present at runtime -# ============================= -# this is currently missing from the gevent implementation, but we'll ignore -# it for simplicity's sake -gevent.socket.SocketType.sendmsg_afalg - # Error: is inconsistent # ====================== # these are inconsistent due to the ParamSpec hack for positional only callables @@ -23,14 +12,3 @@ gevent.libev.watcher.watcher.feed # undocumented argument for internal use only gevent.libev.watcher.watcher.__init__ - - -# we have punted on socket, the gevent version of these functions sometimes use -# named parameters, while the base implementation only allows positional arguments -# we're fine with holding the geven implemenation to the same restrictions -# additionally there's some functions with additional optional arguments, that -# we are fine with ignoring for now as well -gevent.socket.SocketType.recvmsg_into -gevent.socket.SocketType.sendmsg -gevent.socket.socket.recvmsg_into -gevent.socket.socket.sendmsg diff --git a/stubs/gevent/@tests/stubtest_allowlist_win32.txt b/stubs/gevent/@tests/stubtest_allowlist_win32.txt index 3c3dfcea433d..f64157a5bae8 100644 --- a/stubs/gevent/@tests/stubtest_allowlist_win32.txt +++ b/stubs/gevent/@tests/stubtest_allowlist_win32.txt @@ -6,9 +6,6 @@ gevent.signal.getsignal gevent.signal.signal gevent.signal.set_wakeup_fd -# these don't exist on win32 in stdlib, but they do in gevent, for now we ignore them -gevent.socket.SocketType.share - # the docs say this doesn't work on windows, so it has been removed gevent._ffi.loop.AbstractLoop.fork diff --git a/stubs/google-cloud-ndb/@tests/stubtest_allowlist.txt b/stubs/google-cloud-ndb/@tests/stubtest_allowlist.txt index a67cb1a30510..cdb920843ba3 100644 --- a/stubs/google-cloud-ndb/@tests/stubtest_allowlist.txt +++ b/stubs/google-cloud-ndb/@tests/stubtest_allowlist.txt @@ -1,4 +1,3 @@ # inconsistency of signatures between stub and implementation (cls vs self) -google.cloud.ndb.ModelAdapter.__new__ google.cloud.ndb.metadata.EntityGroup.__new__ google.cloud.ndb.model.ModelAdapter.__new__ diff --git a/stubs/icalendar/@tests/stubtest_allowlist.txt b/stubs/icalendar/@tests/stubtest_allowlist.txt index 960867805a39..d082afed2b4b 100644 --- a/stubs/icalendar/@tests/stubtest_allowlist.txt +++ b/stubs/icalendar/@tests/stubtest_allowlist.txt @@ -5,9 +5,7 @@ icalendar.cli icalendar\.tests(\..*)? # Methods that use `int` to mean `bool`. -icalendar.Component.get_inline icalendar.cal.Component.get_inline # Stubtest gets confused by multiple inheritance. icalendar.prop.vSkip.__new__ -icalendar.vSkip.__new__ diff --git a/stubs/jsonschema/@tests/stubtest_allowlist.txt b/stubs/jsonschema/@tests/stubtest_allowlist.txt index 678e493fd916..0df25c11cc77 100644 --- a/stubs/jsonschema/@tests/stubtest_allowlist.txt +++ b/stubs/jsonschema/@tests/stubtest_allowlist.txt @@ -10,14 +10,6 @@ jsonschema.__main__ .*\.__attrs_own_setattr__ .*\.__attrs_post_init__ .*\.__attrs_props__ -jsonschema.Draft201909Validator.__match_args__ -jsonschema.Draft202012Validator.__match_args__ -jsonschema.Draft3Validator.__match_args__ -jsonschema.Draft4Validator.__match_args__ -jsonschema.Draft6Validator.__match_args__ -jsonschema.Draft7Validator.__match_args__ -jsonschema.RefResolutionError.__match_args__ -jsonschema.TypeChecker.__match_args__ jsonschema._types.TypeChecker.__match_args__ jsonschema.cli._Outputter.__match_args__ jsonschema.cli._PlainFormatter.__match_args__ @@ -30,14 +22,6 @@ jsonschema.validators.Draft4Validator.__match_args__ jsonschema.validators.Draft6Validator.__match_args__ jsonschema.validators.Draft7Validator.__match_args__ # >= Python 3.13 -jsonschema.Draft201909Validator.__replace__ -jsonschema.Draft202012Validator.__replace__ -jsonschema.Draft3Validator.__replace__ -jsonschema.Draft4Validator.__replace__ -jsonschema.Draft6Validator.__replace__ -jsonschema.Draft7Validator.__replace__ -jsonschema.RefResolutionError.__replace__ -jsonschema.TypeChecker.__replace__ jsonschema._types.TypeChecker.__replace__ jsonschema.cli._Outputter.__replace__ jsonschema.cli._PlainFormatter.__replace__ diff --git a/stubs/keyboard/@tests/stubtest_allowlist.txt b/stubs/keyboard/@tests/stubtest_allowlist.txt index fe78bebabe4e..c508422424b0 100644 --- a/stubs/keyboard/@tests/stubtest_allowlist.txt +++ b/stubs/keyboard/@tests/stubtest_allowlist.txt @@ -1,5 +1,4 @@ # scan_code *should* never be None in real use. This is also according to docs. -keyboard.KeyboardEvent.scan_code keyboard._keyboard_event.KeyboardEvent.scan_code # TODO: Should this be allowlisted? keyboard.__main__ diff --git a/stubs/mock/@tests/stubtest_allowlist.txt b/stubs/mock/@tests/stubtest_allowlist.txt index 9e0bbeef0239..636393741865 100644 --- a/stubs/mock/@tests/stubtest_allowlist.txt +++ b/stubs/mock/@tests/stubtest_allowlist.txt @@ -1,6 +1,3 @@ -mock.patch -mock.mock.patch - # Uses `_timeout_unset` sentinel: mock.mock.ThreadingMixin.__init__ mock.mock.ThreadingMixin.wait_until_called diff --git a/stubs/mysqlclient/@tests/stubtest_allowlist.txt b/stubs/mysqlclient/@tests/stubtest_allowlist.txt deleted file mode 100644 index fbc91acd69fa..000000000000 --- a/stubs/mysqlclient/@tests/stubtest_allowlist.txt +++ /dev/null @@ -1 +0,0 @@ -MySQLdb.Connection diff --git a/stubs/openpyxl/@tests/stubtest_allowlist.txt b/stubs/openpyxl/@tests/stubtest_allowlist.txt index 35991ce00df4..20c1b03197d2 100644 --- a/stubs/openpyxl/@tests/stubtest_allowlist.txt +++ b/stubs/openpyxl/@tests/stubtest_allowlist.txt @@ -8,10 +8,6 @@ openpyxl.descriptors.DEBUG # The actual runtime definition depends on what else is installed # (lxml, defusedxml, et_xmlfile) openpyxl.xml._functions_overloads -openpyxl.xml.functions.Element.__iter__ -openpyxl.xml.functions.fromstring -openpyxl.xml.functions.iterparse -openpyxl.xml.functions.tostring # Requires numpy to be installed openpyxl.utils.dataframe @@ -41,10 +37,8 @@ openpyxl\.descriptors\.(base\.)?Typed\.allow_none # Inconsistent methods because # - using the default value results in an error because of the runtime type-guards # - or, keyword arguments are explicitly specified -openpyxl.cell.Cell.__init__ openpyxl.cell.cell.Cell.__init__ openpyxl.cell.cell.WriteOnlyCell -openpyxl.cell.WriteOnlyCell openpyxl.cell.text.PhoneticProperties.__init__ openpyxl.cell.text.PhoneticText.__init__ openpyxl.chart.axis._BaseAxis.__init__ diff --git a/stubs/pika/@tests/stubtest_allowlist.txt b/stubs/pika/@tests/stubtest_allowlist.txt index 954ad6ddc224..36bfaf0983d5 100644 --- a/stubs/pika/@tests/stubtest_allowlist.txt +++ b/stubs/pika/@tests/stubtest_allowlist.txt @@ -3,5 +3,4 @@ pika.spec.Queue.DeclareOk.__init__ # Arguments have a sentinel default, which is not reflected in the stubs. -pika.ConnectionParameters.__init__ pika.connection.ConnectionParameters.__init__ diff --git a/stubs/psutil/@tests/stubtest_allowlist.txt b/stubs/psutil/@tests/stubtest_allowlist.txt index 82909808ec44..785a98e07685 100644 --- a/stubs/psutil/@tests/stubtest_allowlist.txt +++ b/stubs/psutil/@tests/stubtest_allowlist.txt @@ -8,6 +8,3 @@ psutil._pssunos psutil._psutil_aix psutil._psutil_bsd psutil._psutil_sunos - -# process_iter is enhanced with cache_clear method that's not detected by stubtest -psutil.process_iter diff --git a/stubs/pyjks/@tests/stubtest_allowlist.txt b/stubs/pyjks/@tests/stubtest_allowlist.txt index 62639ff151ea..ad6b02338ea7 100644 --- a/stubs/pyjks/@tests/stubtest_allowlist.txt +++ b/stubs/pyjks/@tests/stubtest_allowlist.txt @@ -5,12 +5,6 @@ jks.jks.PrivateKeyEntry.pkey_pkcs8 jks.jks.SecretKeyEntry.algorithm jks.jks.SecretKeyEntry.key jks.jks.SecretKeyEntry.key_size -jks.PrivateKeyEntry.algorithm_oid -jks.PrivateKeyEntry.pkey -jks.PrivateKeyEntry.pkey_pkcs8 -jks.SecretKeyEntry.algorithm -jks.SecretKeyEntry.key -jks.SecretKeyEntry.key_size # Implicit imports, not re-exported jks.DSA_OID diff --git a/stubs/pynput/@tests/stubtest_allowlist.txt b/stubs/pynput/@tests/stubtest_allowlist.txt index 22e40161321b..415752653a84 100644 --- a/stubs/pynput/@tests/stubtest_allowlist.txt +++ b/stubs/pynput/@tests/stubtest_allowlist.txt @@ -1,6 +1,3 @@ -# These __init__ methods have *args, **kwargs arguments on some platforms, but not others -pynput.mouse.Controller.__init__ - # Platform specific private utils: pynput._util.xorg_keysyms pynput._util.xorg diff --git a/stubs/pynput/@tests/stubtest_allowlist_linux.txt b/stubs/pynput/@tests/stubtest_allowlist_linux.txt deleted file mode 100644 index ff54e4166252..000000000000 --- a/stubs/pynput/@tests/stubtest_allowlist_linux.txt +++ /dev/null @@ -1,11 +0,0 @@ -# These __init__ methods have *args, **kwargs arguments on some platforms, but not others -pynput.keyboard.Controller.__init__ - -# To reduce duplication, our stubs simplify things: -# the runtime has several Controller classes, -# some of which have __del__ methods on linux, and some of which don't. -pynput.mouse.Controller.__del__ -pynput.keyboard.Controller.__del__ - -# Platform specific implementation detail: -pynput.keyboard.Controller.keyboard_mapping diff --git a/stubs/pynput/@tests/stubtest_allowlist_win32.txt b/stubs/pynput/@tests/stubtest_allowlist_win32.txt deleted file mode 100644 index 99b195507bcc..000000000000 --- a/stubs/pynput/@tests/stubtest_allowlist_win32.txt +++ /dev/null @@ -1,2 +0,0 @@ -# These __init__ methods have *args, **kwargs arguments on some platforms, but not others -pynput.keyboard.Controller.__init__ diff --git a/stubs/pyserial/@tests/stubtest_allowlist.txt b/stubs/pyserial/@tests/stubtest_allowlist.txt index 29f15f4b22a7..69717d5f7fd3 100644 --- a/stubs/pyserial/@tests/stubtest_allowlist.txt +++ b/stubs/pyserial/@tests/stubtest_allowlist.txt @@ -8,14 +8,11 @@ serial.serialjava # No Java Communications API implementation found # ====================== # These are positional only argument in the stub because they inherit from io.RawIOBase # but at runtime they are normal arguments that don't have consistent names. -serial.Serial.write -serial.SerialBase.readinto serial.serialutil.SerialBase.readinto serial.rfc2217.Serial.write serial.rs485.RS485.write serial.urlhandler.protocol_cp2110.Serial.write serial.urlhandler.protocol_loop.Serial.write -serial.urlhandler.protocol_rfc2217.Serial.write serial.urlhandler.protocol_socket.Serial.write serial.urlhandler.protocol_spy.Serial.write @@ -33,22 +30,6 @@ serial.tools.miniterm.unichr serial.urlhandler.protocol_hwgrep.basestring # Deprecated aliases -serial.SerialBase.applySettingsDict -serial.SerialBase.flushInput -serial.SerialBase.flushOutput -serial.SerialBase.getCD -serial.SerialBase.getCTS -serial.SerialBase.getDSR -serial.SerialBase.getRI -serial.SerialBase.getSettingsDict -serial.SerialBase.inWaiting -serial.SerialBase.interCharTimeout -serial.SerialBase.isOpen -serial.SerialBase.sendBreak -serial.SerialBase.setDTR -serial.SerialBase.setPort -serial.SerialBase.setRTS -serial.SerialBase.writeTimeout serial.serialutil.SerialBase.applySettingsDict serial.serialutil.SerialBase.flushInput serial.serialutil.SerialBase.flushOutput diff --git a/stubs/python-dateutil/@tests/stubtest_allowlist.txt b/stubs/python-dateutil/@tests/stubtest_allowlist.txt index a0c201aa1cac..8484bd3fe67d 100644 --- a/stubs/python-dateutil/@tests/stubtest_allowlist.txt +++ b/stubs/python-dateutil/@tests/stubtest_allowlist.txt @@ -1,11 +1,7 @@ dateutil.rrule.weekday.__init__ dateutil.tz.tz.tzoffset.instance dateutil.tz.tz.tzstr.instance -dateutil.tz.tzoffset.instance -dateutil.tz.tzstr.instance # Metaclass differs: -dateutil.tz.tzoffset -dateutil.tz.tzutc dateutil.tz.tz.tzoffset dateutil.tz.tz.tzutc diff --git a/stubs/python-jose/@tests/stubtest_allowlist.txt b/stubs/python-jose/@tests/stubtest_allowlist.txt index efd6e0e11b8d..b0c651965b8a 100644 --- a/stubs/python-jose/@tests/stubtest_allowlist.txt +++ b/stubs/python-jose/@tests/stubtest_allowlist.txt @@ -1,6 +1 @@ jose.backends.cryptography_backend -jose.backends.CryptographyAESKey -jose.backends.CryptographyECKey -jose.backends.CryptographyHMACKey -jose.backends.CryptographyRSAKey -jose.backends.ECDSAECKey diff --git a/stubs/pytz/@tests/stubtest_allowlist.txt b/stubs/pytz/@tests/stubtest_allowlist.txt index c25eb8283ebb..564e96683da3 100644 --- a/stubs/pytz/@tests/stubtest_allowlist.txt +++ b/stubs/pytz/@tests/stubtest_allowlist.txt @@ -1,5 +1,3 @@ # "Abstract" methods, see the .pyi file for more details. -pytz.BaseTzInfo.localize -pytz.BaseTzInfo.normalize pytz.tzinfo.BaseTzInfo.localize pytz.tzinfo.BaseTzInfo.normalize diff --git a/stubs/qrbill/@tests/stubtest_allowlist.txt b/stubs/qrbill/@tests/stubtest_allowlist.txt index f811d3866278..7be909504ec4 100644 --- a/stubs/qrbill/@tests/stubtest_allowlist.txt +++ b/stubs/qrbill/@tests/stubtest_allowlist.txt @@ -3,5 +3,4 @@ # While the method provides default values for all arguments, the first two # arguments always need to be provided, so it makes no sense to pretend that # they are optional -qrbill.QRBill.__init__ qrbill.bill.QRBill.__init__ diff --git a/stubs/qrcode/@tests/stubtest_allowlist.txt b/stubs/qrcode/@tests/stubtest_allowlist.txt index dca40d4e194f..e24fb492beb2 100644 --- a/stubs/qrcode/@tests/stubtest_allowlist.txt +++ b/stubs/qrcode/@tests/stubtest_allowlist.txt @@ -8,7 +8,6 @@ qrcode\.tests\..* qrcode._types # Parameter "data" has unhelpful default value, which creates a QR code with string "None". -qrcode\.make qrcode\.main\.make # Implementation has marked these methods as abstract without the class diff --git a/stubs/reportlab/@tests/stubtest_allowlist.txt b/stubs/reportlab/@tests/stubtest_allowlist.txt index 0c7995b12587..037ecc58aece 100644 --- a/stubs/reportlab/@tests/stubtest_allowlist.txt +++ b/stubs/reportlab/@tests/stubtest_allowlist.txt @@ -41,7 +41,6 @@ reportlab.platypus.flowables._ContainerSpace.getSpaceBefore # this has an internal __boundary__ argument which confuses stubtest # we've decided to just get rid of the argument in the stub entirely -reportlab.platypus.Frame.drawBoundary reportlab.platypus.frames.Frame.drawBoundary # this is just a case-insenstive version of dict and changes in parameter diff --git a/stubs/setuptools/@tests/stubtest_allowlist.txt b/stubs/setuptools/@tests/stubtest_allowlist.txt index 09c4d676af8d..8c90ae0ad483 100644 --- a/stubs/setuptools/@tests/stubtest_allowlist.txt +++ b/stubs/setuptools/@tests/stubtest_allowlist.txt @@ -1,5 +1,4 @@ # Is a functools.partial, so stubtest says "is not a function" -setuptools.modified.newer_pairwise_group setuptools._distutils._modified.newer_pairwise_group # Runtime initializes to None, but this really should never be None when used diff --git a/stubs/simplejson/@tests/stubtest_allowlist.txt b/stubs/simplejson/@tests/stubtest_allowlist.txt index d2e504a07432..84e705994309 100644 --- a/stubs/simplejson/@tests/stubtest_allowlist.txt +++ b/stubs/simplejson/@tests/stubtest_allowlist.txt @@ -1,7 +1,6 @@ # Speedups (C vs Python inconsistency): simplejson.scanner.make_scanner simplejson.scanner.JSONDecodeError.__init__ -simplejson.JSONDecodeError.__init__ simplejson.encoder.c_make_encoder simplejson.encoder.c_encode_basestring_ascii simplejson.encoder.py_encode_basestring_ascii diff --git a/stubs/ttkthemes/@tests/stubtest_allowlist.txt b/stubs/ttkthemes/@tests/stubtest_allowlist.txt index a949ae94ce36..c8fe52733f00 100644 --- a/stubs/ttkthemes/@tests/stubtest_allowlist.txt +++ b/stubs/ttkthemes/@tests/stubtest_allowlist.txt @@ -1,5 +1,3 @@ # Inconsistency because some params being between *args and **kwargs: -ttkthemes.ThemedStyle.__init__ -ttkthemes.ThemedTk.__init__ ttkthemes.themed_style.ThemedStyle.__init__ ttkthemes.themed_tk.ThemedTk.__init__ diff --git a/stubs/yt-dlp/@tests/stubtest_allowlist.txt b/stubs/yt-dlp/@tests/stubtest_allowlist.txt index 293acf692899..6dbdddad3435 100644 --- a/stubs/yt-dlp/@tests/stubtest_allowlist.txt +++ b/stubs/yt-dlp/@tests/stubtest_allowlist.txt @@ -26,3 +26,6 @@ yt_dlp.utils.(_utils.)?prepend_extension yt_dlp.utils.(_utils.)?replace_extension # Unsure why this is here. yt_dlp.utils.jslib.devalue.TYPE_CHECKING + +# Stubtest weirdness +yt_dlp.utils._utils.preferredencoding