diff --git a/.github/workflows/tests.yml b/.github/workflows/tests.yml index 589faaa9a94d..b125705e56dc 100644 --- a/.github/workflows/tests.yml +++ b/.github/workflows/tests.yml @@ -109,9 +109,7 @@ jobs: - name: Update pip run: python -m pip install -U pip - name: Install dependencies - # Temporarily hard-code the mypy version used for stubtest - # run: pip install $(grep tomli== requirements-tests.txt) (grep mypy== requirements-tests.txt) - run: pip install mypy==0.910 + run: pip install $(grep tomli== requirements-tests.txt) $(grep mypy== requirements-tests.txt) - name: Run stubtest run: python tests/stubtest_stdlib.py diff --git a/stubs/PyMySQL/@tests/stubtest_allowlist.txt b/stubs/PyMySQL/@tests/stubtest_allowlist.txt index 30e7a1729bc9..f8fe06591c4e 100644 --- a/stubs/PyMySQL/@tests/stubtest_allowlist.txt +++ b/stubs/PyMySQL/@tests/stubtest_allowlist.txt @@ -6,7 +6,6 @@ pymysql.cursors.Cursor.__del__ # DictCursorMixin changes method types of inherited classes, but doesn't contain much at runtime pymysql.cursors.DictCursorMixin.__iter__ pymysql.cursors.DictCursorMixin.fetch[a-z]* -pymysql.err.ER pymysql.escape_dict pymysql.escape_sequence pymysql.escape_string diff --git a/stubs/babel/@tests/stubtest_allowlist.txt b/stubs/babel/@tests/stubtest_allowlist.txt new file mode 100644 index 000000000000..fb000897a30e --- /dev/null +++ b/stubs/babel/@tests/stubtest_allowlist.txt @@ -0,0 +1,3 @@ +# In the stub we alias to OrderedDict, but it has positional-only differences +babel.util.odict.fromkeys +babel.util.odict.setdefault diff --git a/stubs/hdbcli/@tests/stubtest_allowlist.txt b/stubs/hdbcli/@tests/stubtest_allowlist.txt index d73612be9c97..283ddd3b2062 100644 --- a/stubs/hdbcli/@tests/stubtest_allowlist.txt +++ b/stubs/hdbcli/@tests/stubtest_allowlist.txt @@ -2,3 +2,7 @@ hdbcli.dbapi.Error.errorcode hdbcli.dbapi.Error.errortext hdbcli.dbapi.Warning.errorcode hdbcli.dbapi.Warning.errortext +# Similar issues to builtins.memoryview +hdbcli.dbapi.BINARY.__iter__ +hdbcli.dbapi.BINARY.cast +hdbcli.dbapi.BINARY.__contains__ diff --git a/stubs/html5lib/@tests/stubtest_allowlist.txt b/stubs/html5lib/@tests/stubtest_allowlist.txt index fe341582b147..82dbdb726b09 100644 --- a/stubs/html5lib/@tests/stubtest_allowlist.txt +++ b/stubs/html5lib/@tests/stubtest_allowlist.txt @@ -1,2 +1,3 @@ # Misnamed first argument in implementation html5lib._inputstream.EncodingBytes.__new__ +html5lib._tokenizer.attributeMap.get diff --git a/stubs/mysqlclient/@tests/stubtest_allowlist.txt b/stubs/mysqlclient/@tests/stubtest_allowlist.txt index 1e7b85b94727..fbc91acd69fa 100644 --- a/stubs/mysqlclient/@tests/stubtest_allowlist.txt +++ b/stubs/mysqlclient/@tests/stubtest_allowlist.txt @@ -1,8 +1 @@ MySQLdb.Connection -MySQLdb.connections -MySQLdb.constants.CLIENT -MySQLdb.constants.CR -MySQLdb.constants.ER -MySQLdb.constants.FLAG -MySQLdb.converters -MySQLdb.cursors diff --git a/stubs/paramiko/@tests/stubtest_allowlist.txt b/stubs/paramiko/@tests/stubtest_allowlist.txt index 34b27e512725..3b8d828018e8 100644 --- a/stubs/paramiko/@tests/stubtest_allowlist.txt +++ b/stubs/paramiko/@tests/stubtest_allowlist.txt @@ -3,25 +3,11 @@ paramiko.Transport.open_x11_channel paramiko.Transport.send_ignore paramiko.Transport.start_server paramiko._winapi -paramiko.py3compat.builtins.bytearray.pop -paramiko.py3compat.builtins.bytearray.remove -paramiko.py3compat.builtins.classmethod.__get__ -paramiko.py3compat.builtins.copyright -paramiko.py3compat.builtins.credits -paramiko.py3compat.builtins.dict.get -paramiko.py3compat.builtins.ellipsis -paramiko.py3compat.builtins.exit -paramiko.py3compat.builtins.function -paramiko.py3compat.builtins.help -paramiko.py3compat.builtins.license -paramiko.py3compat.builtins.memoryview.__contains__ -paramiko.py3compat.builtins.memoryview.__iter__ -paramiko.py3compat.builtins.memoryview.cast -paramiko.py3compat.builtins.object.__init__ -paramiko.py3compat.builtins.property.__get__ -paramiko.py3compat.builtins.quit -paramiko.py3compat.builtins.staticmethod.__get__ paramiko.py3compat.input +paramiko.py3compat.BytesIO.readlines +paramiko.py3compat.BytesIO.seek +paramiko.py3compat.StringIO.seek +paramiko.py3compat.StringIO.truncate paramiko.sftp_server.SFTPServer.__init__ paramiko.transport.Transport.open_x11_channel paramiko.transport.Transport.send_ignore diff --git a/stubs/requests/@tests/stubtest_allowlist.txt b/stubs/requests/@tests/stubtest_allowlist.txt index c040f9c71c27..236bdeafdf90 100644 --- a/stubs/requests/@tests/stubtest_allowlist.txt +++ b/stubs/requests/@tests/stubtest_allowlist.txt @@ -5,6 +5,12 @@ requests.Session.options requests.Session.patch requests.Session.post requests.Session.put +requests.adapters.HTTPResponse.__init__ +requests.adapters.PoolManager.connection_from_host +requests.adapters.PoolManager.connection_from_url +requests.adapters.PoolManager.urlopen +requests.adapters.Retry.is_forced_retry +requests.adapters.Retry.sleep requests.api.delete requests.api.get requests.api.head @@ -13,12 +19,28 @@ requests.api.patch requests.api.post requests.api.put requests.api.request +requests.compat.OrderedDict.fromkeys +requests.compat.OrderedDict.setdefault requests.delete requests.get requests.head +requests.models.RequestField.__init__ +requests.models.RequestField.from_tuples requests.options requests.packages.VendorAlias +requests.packages.urllib3.HTTPConnectionPool.__init__ +requests.packages.urllib3.HTTPConnectionPool.urlopen +requests.packages.urllib3.HTTPResponse.__init__ +requests.packages.urllib3.HTTPSConnectionPool.__init__ requests.packages.urllib3.NullHandler +requests.packages.urllib3.PoolManager.connection_from_host +requests.packages.urllib3.PoolManager.connection_from_url +requests.packages.urllib3.PoolManager.urlopen +requests.packages.urllib3.ProxyManager.__init__ +requests.packages.urllib3.ProxyManager.connection_from_host +requests.packages.urllib3.ProxyManager.urlopen +requests.packages.urllib3.Retry.is_forced_retry +requests.packages.urllib3.Retry.sleep requests.packages.urllib3._collections.HTTPHeaderDict.from_httplib requests.packages.urllib3._collections.HTTPHeaderDict.getlist requests.packages.urllib3._collections.RLock @@ -27,12 +49,23 @@ requests.packages.urllib3.connection.HTTPSConnection.__init__ requests.packages.urllib3.connection.VerifiedHTTPSConnection.__init__ requests.packages.urllib3.connection.VerifiedHTTPSConnection.set_cert requests.packages.urllib3.connectionpool.ConnectionError +requests.packages.urllib3.connectionpool.HTTPConnection.request requests.packages.urllib3.connectionpool.HTTPConnectionPool.__init__ requests.packages.urllib3.connectionpool.HTTPConnectionPool.urlopen +requests.packages.urllib3.connectionpool.HTTPResponse.__init__ +requests.packages.urllib3.connectionpool.HTTPSConnection.__init__ requests.packages.urllib3.connectionpool.HTTPSConnectionPool.__init__ +requests.packages.urllib3.connectionpool.ProxyError.__init__ +requests.packages.urllib3.connectionpool.RequestMethods.request_encode_url +requests.packages.urllib3.connectionpool.Retry.is_forced_retry +requests.packages.urllib3.connectionpool.Retry.sleep +requests.packages.urllib3.connectionpool.VerifiedHTTPSConnection.__init__ +requests.packages.urllib3.connectionpool.VerifiedHTTPSConnection.set_cert requests.packages.urllib3.exceptions.ProxyError.__init__ requests.packages.urllib3.fields.RequestField.__init__ requests.packages.urllib3.fields.RequestField.from_tuples +requests.packages.urllib3.filepost.RequestField.__init__ +requests.packages.urllib3.filepost.RequestField.from_tuples requests.packages.urllib3.poolmanager.PoolManager.connection_from_host requests.packages.urllib3.poolmanager.PoolManager.connection_from_url requests.packages.urllib3.poolmanager.PoolManager.urlopen @@ -40,8 +73,12 @@ requests.packages.urllib3.poolmanager.ProxyManager.__init__ requests.packages.urllib3.poolmanager.ProxyManager.connection_from_host requests.packages.urllib3.poolmanager.ProxyManager.urlopen requests.packages.urllib3.request.RequestMethods.request_encode_url +requests.packages.urllib3.response.HTTPHeaderDict.from_httplib +requests.packages.urllib3.response.HTTPHeaderDict.getlist requests.packages.urllib3.response.HTTPResponse.__init__ requests.packages.urllib3.response.PY3 +requests.packages.urllib3.util.Retry.is_forced_retry +requests.packages.urllib3.util.Retry.sleep requests.packages.urllib3.util.connection.poll requests.packages.urllib3.util.connection.select requests.packages.urllib3.util.retry.Retry.is_forced_retry @@ -52,6 +89,8 @@ requests.patch requests.post requests.put requests.request +requests.sessions.OrderedDict.fromkeys +requests.sessions.OrderedDict.setdefault requests.sessions.Session.delete requests.sessions.Session.get requests.sessions.Session.head @@ -62,3 +101,5 @@ requests.sessions.Session.put requests.sessions.SessionRedirectMixin.resolve_redirects requests.structures.LookupDict.__getattr__ requests.structures.LookupDict.get +requests.utils.OrderedDict.fromkeys +requests.utils.OrderedDict.setdefault diff --git a/stubs/waitress/@tests/stubtest_allowlist.txt b/stubs/waitress/@tests/stubtest_allowlist.txt index d839ceb061c3..8468ef5449e1 100644 --- a/stubs/waitress/@tests/stubtest_allowlist.txt +++ b/stubs/waitress/@tests/stubtest_allowlist.txt @@ -9,14 +9,6 @@ waitress.channel.HTTPChannel.error_task_class waitress.channel.HTTPChannel.parser_class waitress.channel.HTTPChannel.request waitress.channel.HTTPChannel.task_class -waitress.channel.wasyncore.compat.qualname -waitress.channel.wasyncore.compat.reraise -waitress.channel.wasyncore.compat.set_nonblocking -waitress.channel.wasyncore.compat.text_ -waitress.channel.wasyncore.compat.tobytes -waitress.channel.wasyncore.compat.tostr -waitress.channel.wasyncore.compat.unquote_bytes_to_wsgi -waitress.channel.wasyncore.dispatcher_with_send.handle_write waitress.compat.PY2 waitress.compat.PY3 waitress.compat.ResourceWarning @@ -40,20 +32,6 @@ waitress.server.WSGIServer waitress.task.ErrorTask.content_length waitress.task.ThreadedTaskDispatcher.start_new_thread waitress.task.WSGITask.content_length -waitress.trigger.wasyncore.compat.qualname -waitress.trigger.wasyncore.compat.reraise -waitress.trigger.wasyncore.compat.set_nonblocking -waitress.trigger.wasyncore.compat.text_ -waitress.trigger.wasyncore.compat.tobytes -waitress.trigger.wasyncore.compat.tostr -waitress.trigger.wasyncore.compat.unquote_bytes_to_wsgi -waitress.trigger.wasyncore.dispatcher_with_send.handle_write -waitress.wasyncore.compat.qualname -waitress.wasyncore.compat.reraise -waitress.wasyncore.compat.set_nonblocking -waitress.wasyncore.compat.text_ -waitress.wasyncore.compat.tobytes -waitress.wasyncore.compat.tostr -waitress.wasyncore.compat.unquote_bytes_to_wsgi -waitress.wasyncore.dispatcher_with_send.handle_write +waitress.rfc7230.BWS waitress.wasyncore.map +waitress.wasyncore.dispatcher_with_send.handle_write diff --git a/tests/stubtest_allowlists/linux.txt b/tests/stubtest_allowlists/linux.txt index bff6db8ebb09..842fc1361561 100644 --- a/tests/stubtest_allowlists/linux.txt +++ b/tests/stubtest_allowlists/linux.txt @@ -36,6 +36,10 @@ msvcrt winreg winsound +# Aliases for OSError +posix.error.characters_written +resource.error.characters_written + # NamedTuple like, but not actually NamedTuples (PyStructSequence) posix.[a-z]+_(param|result)._(asdict|make|replace) diff --git a/tests/stubtest_allowlists/py310.txt b/tests/stubtest_allowlists/py310.txt index 8da3570bac52..1e07ba5426ac 100644 --- a/tests/stubtest_allowlists/py310.txt +++ b/tests/stubtest_allowlists/py310.txt @@ -31,6 +31,8 @@ asyncio.futures.Future.__init__ # Usually initialized from c object asyncio.futures.Future._callbacks # Usually initialized from c object builtins.dict.get contextvars.Context.__init__ # Default C __init__ signature is wrong +contextlib.AbstractAsyncContextManager.__class_getitem__ +contextlib.AbstractContextManager.__class_getitem__ dataclasses.field dataclasses.KW_ONLY enum.Enum._generate_next_value_ @@ -40,6 +42,8 @@ functools.partialmethod.__get__ functools.singledispatchmethod.__call__ gettext.install gettext.translation +hashlib.sha3_\d+ # Can be a class or a built-in function +hashlib.shake_\d+ # Can be a class or a built-in function hmac.new # Stub is a white lie; see comments in the stub http.server.SimpleHTTPRequestHandler.__init__ # *args is expanded importlib.abc.Traversable.__init__ # Inherits __init__ from typing.Protocol @@ -106,8 +110,11 @@ _collections_abc.Generator.send _collections_abc.Generator.throw contextvars.ContextVar.reset contextvars.ContextVar.set +contextlib.AbstractAsyncContextManager.__aexit__ +contextlib.AbstractContextManager.__exit__ io.IncrementalNewlineDecoder.setstate typing.SupportsRound.__round__ +types.DynamicClassAttribute..* # In the stub we pretend it's an alias for property, but it has positional-only differences # These enums derive from (str, Enum). See comment in py3_common.txt pstats.SortKey.__new__ diff --git a/tests/stubtest_allowlists/py36.txt b/tests/stubtest_allowlists/py36.txt index 71757f511f8d..2d4be08fc597 100644 --- a/tests/stubtest_allowlists/py36.txt +++ b/tests/stubtest_allowlists/py36.txt @@ -43,24 +43,24 @@ typing.AsyncGenerator.ag_await typing.AsyncGenerator.ag_code typing.AsyncGenerator.ag_frame typing.AsyncGenerator.ag_running +typing.ChainMap.fromkeys typing.Coroutine.cr_await typing.Coroutine.cr_code typing.Coroutine.cr_frame typing.Coroutine.cr_running -typing.Generator.__new__ typing.Generator.gi_code typing.Generator.gi_frame typing.Generator.gi_running typing.Generator.gi_yieldfrom -typing.GenericMeta.__new__ typing.IO.closed # Incorrect definition in CPython, fixed in bpo-39493 typing.Mapping.get -typing.NamedTuple.__new__ typing.NamedTuple._asdict typing.NamedTuple._make typing.NamedTuple._replace typing.Sequence.index +typing.Text.maketrans typing.runtime_checkable +typing\.\w+\.__new__ unittest._log # New in Python 3.9 unittest.async_case # Added in Python 3.8 uuid.UUID.int @@ -72,6 +72,14 @@ tkinter.EventType.__new__ builtins.memoryview.__iter__ # C type that implements __getitem__ builtins.memoryview.cast # inspect.signature is incorrect about shape being kw-only +sqlite3.dbapi2.Binary.__iter__ # C type that implements __getitem__ +sqlite3.dbapi2.Binary.cast # inspect.signature is incorrect about shape being kw-only +sqlite3.Binary.__iter__ # C type that implements __getitem__ +sqlite3.Binary.cast # inspect.signature is incorrect about shape being kw-only + +sqlite3.OptimizedUnicode.maketrans +sqlite3.dbapi2.OptimizedUnicode.maketrans + collections.Coroutine.cr_await collections.Coroutine.cr_code collections.Coroutine.cr_frame diff --git a/tests/stubtest_allowlists/py37.txt b/tests/stubtest_allowlists/py37.txt index 2cd19fda5430..44a273080c0c 100644 --- a/tests/stubtest_allowlists/py37.txt +++ b/tests/stubtest_allowlists/py37.txt @@ -51,6 +51,7 @@ typing.NamedTuple._replace typing._SpecialForm.__init__ typing._SpecialForm.__new__ typing.runtime_checkable +typing.Text.maketrans unittest._log # New in Python 3.9 unittest.async_case # Added in Python 3.8 uuid.UUID.int @@ -65,6 +66,14 @@ tkinter.EventType.__new__ builtins.memoryview.__iter__ # C type that implements __getitem__ builtins.memoryview.cast # inspect.signature is incorrect about shape being kw-only +sqlite3.dbapi2.Binary.__iter__ # C type that implements __getitem__ +sqlite3.dbapi2.Binary.cast # inspect.signature is incorrect about shape being kw-only +sqlite3.Binary.__iter__ # C type that implements __getitem__ +sqlite3.Binary.cast # inspect.signature is incorrect about shape being kw-only + +sqlite3.OptimizedUnicode.maketrans +sqlite3.dbapi2.OptimizedUnicode.maketrans + collections.Coroutine.cr_await collections.Coroutine.cr_code collections.Coroutine.cr_frame diff --git a/tests/stubtest_allowlists/py38.txt b/tests/stubtest_allowlists/py38.txt index 6b5aef5777db..ab175c37e643 100644 --- a/tests/stubtest_allowlists/py38.txt +++ b/tests/stubtest_allowlists/py38.txt @@ -82,6 +82,10 @@ tkinter.EventType.__new__ builtins.memoryview.__iter__ # C type that implements __getitem__ builtins.memoryview.cast # inspect.signature is incorrect about shape being kw-only +sqlite3.dbapi2.Binary.__iter__ # C type that implements __getitem__ +sqlite3.dbapi2.Binary.cast # inspect.signature is incorrect about shape being kw-only +sqlite3.Binary.__iter__ # C type that implements __getitem__ +sqlite3.Binary.cast # inspect.signature is incorrect about shape being kw-only collections.Coroutine.cr_await collections.Coroutine.cr_code collections.Coroutine.cr_frame diff --git a/tests/stubtest_allowlists/py39.txt b/tests/stubtest_allowlists/py39.txt index e61cf9e7d2a2..76b157a44c15 100644 --- a/tests/stubtest_allowlists/py39.txt +++ b/tests/stubtest_allowlists/py39.txt @@ -29,6 +29,8 @@ collections.ItemsView.__reversed__ collections.KeysView.__reversed__ collections.ValuesView.__reversed__ contextvars.Context.__init__ # Default C __init__ signature is wrong +contextlib.AbstractAsyncContextManager.__class_getitem__ +contextlib.AbstractContextManager.__class_getitem__ dataclasses.field enum.Enum._generate_next_value_ fractions.Fraction.__new__ # overload is too complicated for stubtest to resolve @@ -37,6 +39,8 @@ functools.partialmethod.__get__ functools.singledispatchmethod.__call__ gettext.install gettext.translation +hashlib.sha3_\d+ +hashlib.shake_\d+ hmac.new # Stub is a white lie; see comments in the stub http.server.SimpleHTTPRequestHandler.__init__ # *args is expanded importlib.abc.Traversable.__init__ # Inherits __init__ from typing.Protocol @@ -94,6 +98,10 @@ tkinter.EventType.__new__ builtins.memoryview.__iter__ # C type that implements __getitem__ builtins.memoryview.cast # inspect.signature is incorrect about shape being kw-only +sqlite3.dbapi2.Binary.__iter__ # C type that implements __getitem__ +sqlite3.dbapi2.Binary.cast # inspect.signature is incorrect about shape being kw-only +sqlite3.Binary.__iter__ # C type that implements __getitem__ +sqlite3.Binary.cast # inspect.signature is incorrect about shape being kw-only collections.Coroutine.cr_await collections.Coroutine.cr_code collections.Coroutine.cr_frame diff --git a/tests/stubtest_allowlists/py3_common.txt b/tests/stubtest_allowlists/py3_common.txt index d7602a8db32e..2a0805d2982b 100644 --- a/tests/stubtest_allowlists/py3_common.txt +++ b/tests/stubtest_allowlists/py3_common.txt @@ -14,6 +14,7 @@ _csv.Dialect.__init__ # C __init__ signature is inaccurate _socket.* _threading_local.local.__new__ _typeshed.* # Utility types for typeshed, doesn't exist at runtime +_weakref.ref.__call__ abc.abstractclassmethod # Deprecated, unsupported by mypy, hard to fix. #6552 abc.abstractstaticmethod # Deprecated, unsupported by mypy, hard to fix. #6552 abc.ABCMeta.__new__ # pytype wants the parameter named cls and not mcls @@ -42,6 +43,8 @@ builtins.classmethod.__get__ # this function can accept no value for the type p builtins.ellipsis # type is not exposed anywhere builtins.function builtins.memoryview.__contains__ # C type that implements __getitem__ +sqlite3.dbapi2.Binary.__contains__ # C type that implements __getitem__ +sqlite3.Binary.__contains__ # C type that implements __getitem__ builtins.object.__init__ # default C signature is incorrect builtins.property.__get__ # this function can accept no value for the type parameter. builtins.staticmethod.__get__ # this function can accept no value for the type parameter. @@ -163,6 +166,8 @@ numbers.Number.__hash__ # typeshed marks this as abstract but code just sets th optparse.Values.__getattr__ # Some attributes are set in __init__ using setattr pickle.Pickler.persistent_id # C pickler persistent_id is an attribute pickle.Unpickler.persistent_load # C unpickler persistent_load is an attribute +pickle._Unpickler\..* # Best effort typing for undocumented internals +pickle._Pickler\..* # Best effort typing for undocumented internals poplib.POP3_SSL.stls # bad declaration of inherited function. See poplib.pyi select.poll # Depends on configuration selectors.DevpollSelector # Depends on configuration @@ -184,7 +189,12 @@ tempfile.SpooledTemporaryFile.seekable tempfile.SpooledTemporaryFile.writable threading.Condition.acquire # Condition functions are exported in __init__ threading.Condition.release # Condition functions are exported in __init__ +multiprocessing.dummy.Condition.acquire +multiprocessing.dummy.Condition.release threading.Lock # A factory function that returns 'most efficient lock'. Marking it as a function will make it harder for users to mark the Lock type. +threading.RLock # Similar to above +multiprocessing.dummy.Lock # Similar to above +multiprocessing.dummy.RLock # Similar to above tkinter.Misc.grid_propagate # The noarg placeholder is a set value list tkinter.Misc.pack_propagate # The noarg placeholder is a set value list tkinter.Misc.grid_columnconfigure # an empty dict literal is actually a valid default for a TypedDict(total=False) parameter @@ -211,6 +221,7 @@ weakref.ReferenceType.__call__ # C function default annotation is wrong weakref.WeakKeyDictionary.get weakref.WeakKeyDictionary.update weakref.WeakValueDictionary.get +weakref.ref.__call__ webbrowser.UnixBrowser.remote_action # always overridden in inheriting class webbrowser.UnixBrowser.remote_action_newtab # always overridden in inheriting class webbrowser.UnixBrowser.remote_action_newwin # always overridden in inheriting class @@ -233,6 +244,13 @@ builtins.reveal_locals builtins.reveal_type # GetSetDescriptor that always raises AttributeError builtins.OSError.characters_written +# Aliases for OSError +builtins.EnvironmentError.characters_written +builtins.IOError.characters_written +dbm.dumb.error.characters_written +os.error.characters_written +select.error.characters_written +socket.error.characters_written collections.abc.* # Types are re-exported from _collections_abc, so errors should be fixed there distutils.command.check.SilentReporter # only defined if docutils in installed hmac.HMAC.blocksize # use block_size instead diff --git a/tests/stubtest_allowlists/win32.txt b/tests/stubtest_allowlists/win32.txt index 8c404aed9707..6768d85c8221 100644 --- a/tests/stubtest_allowlists/win32.txt +++ b/tests/stubtest_allowlists/win32.txt @@ -9,6 +9,10 @@ locale.nl_langinfo # Function that should be moved to _locale and re-exported c # Allowlist entries that cannot or should not be fixed # ========== +# Aliases for OSError +builtins.WindowsError.characters_written +winreg.error.characters_written + # Modules that do not exist on Windows systems _curses _posixsubprocess