Skip to content
Merged
Show file tree
Hide file tree
Changes from 25 commits
Commits
Show all changes
37 commits
Select commit Hold shift + click to select a range
ef2d0ac
Upgrade mypy
Dec 16, 2021
865a992
get rid of unittest._log for now
Dec 16, 2021
0377def
allow pickle
Dec 16, 2021
f9628a0
allow DynamicClassAttribute
Dec 16, 2021
f35df4d
allow characters_written
Dec 16, 2021
339cd00
allow pymysql
Dec 16, 2021
c372241
trigger ci on all third party stubs
Dec 16, 2021
adb5315
Update tests/stubtest_allowlists/py310.txt
hauntsaninja Dec 16, 2021
a29ad29
allow babel
Dec 16, 2021
a6b085c
allow hdbcli
Dec 16, 2021
984f57f
Revert "trigger ci on all third party stubs"
Dec 16, 2021
b2fa7df
[temporary] shard stubtest third party
Dec 16, 2021
d22bf40
allow sqlite
Dec 16, 2021
19fea4d
un-allow mysqlclient
Dec 16, 2021
43cd55c
allow html5lib
Dec 16, 2021
a590d66
un-allow waitress
Dec 16, 2021
4b3358e
also allow waitress
Dec 16, 2021
fe7cd0c
mypy_extensions: fix NoReturn, remove inaccurate comment
Dec 16, 2021
c67672b
update paramiko allowlist
Dec 16, 2021
43205b3
more waitress
Dec 16, 2021
74ed3fa
import
Dec 16, 2021
5b7c182
update requests allowlist
Dec 16, 2021
3000ed5
oops another waitress
Dec 16, 2021
8d3279e
ignore missing stub in requests
Dec 16, 2021
da16408
Merge branch 'mypyext' into upgrade-mypy
Dec 16, 2021
43ed4a8
Merge remote-tracking branch 'upstream/master' into upgrade-mypy
Dec 16, 2021
2d84696
use stubtest 0.920
Dec 16, 2021
9af991a
Revert "[temporary] shard stubtest third party"
Dec 16, 2021
8d49a5b
comment
Dec 16, 2021
e57fce4
undo unittest._log hiding
Dec 16, 2021
54a7ba8
Update .github/workflows/tests.yml
JelleZijlstra Dec 16, 2021
8d896fe
allow windows errors
Dec 16, 2021
e5c75d8
allow remaining
Dec 16, 2021
655e564
allow
Dec 16, 2021
5a6e0f7
allow
Dec 17, 2021
63e319f
one more
Dec 17, 2021
c4ba18f
Update tests/stubtest_allowlists/py310.txt
Akuli Dec 17, 2021
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
17 changes: 6 additions & 11 deletions .github/workflows/tests.yml
Original file line number Diff line number Diff line change
Expand Up @@ -113,23 +113,18 @@ jobs:

stubtest-third-party:
name: Check third party stubs with stubtest
if: github.repository == 'python/typeshed'
runs-on: ubuntu-latest
if: github.event_name == 'pull_request'
strategy:
matrix:
shard-index: [0, 1, 2, 3]
fail-fast: false
steps:
- uses: actions/checkout@v2
with:
fetch-depth: 0
- uses: actions/setup-python@v2
with:
python-version: 3.9
- name: Install dependencies
run: pip install $(grep tomli== requirements-tests.txt)
- name: Run stubtest
run: |
STUBS=$(git diff --name-only origin/${{ github.base_ref }} HEAD | egrep ^stubs/ | cut -d "/" -f 2 | sort -u | (while read stub; do [ -d stubs/$stub ] && echo $stub || true; done))
if test -n "$STUBS"; then
echo "Testing $STUBS..."
python tests/stubtest_third_party.py $STUBS
else
echo "Nothing to test"
fi
run: python tests/stubtest_third_party.py --num-shards 4 --shard-index ${{ matrix.shard-index }}
2 changes: 1 addition & 1 deletion requirements-tests.txt
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
mypy==0.910
mypy==0.920
pytype==2021.11.29; platform_system != "Windows"
# must match .pre-commit-config.yaml
black==21.12b0
Expand Down
1 change: 0 additions & 1 deletion stdlib/VERSIONS
Original file line number Diff line number Diff line change
Expand Up @@ -261,7 +261,6 @@ typing: 3.5-
typing_extensions: 2.7-
unicodedata: 2.7-
unittest: 2.7-
unittest._log: 3.9-
urllib: 2.7-
uu: 2.7-
uuid: 2.7-
Expand Down
1 change: 0 additions & 1 deletion stubs/PyMySQL/@tests/stubtest_allowlist.txt
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand Down
3 changes: 3 additions & 0 deletions stubs/babel/@tests/stubtest_allowlist.txt
Original file line number Diff line number Diff line change
@@ -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
4 changes: 4 additions & 0 deletions stubs/hdbcli/@tests/stubtest_allowlist.txt
Original file line number Diff line number Diff line change
Expand Up @@ -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__
1 change: 1 addition & 0 deletions stubs/html5lib/@tests/stubtest_allowlist.txt
Original file line number Diff line number Diff line change
@@ -1,2 +1,3 @@
# Misnamed first argument in implementation
html5lib._inputstream.EncodingBytes.__new__
html5lib._tokenizer.attributeMap.get
7 changes: 3 additions & 4 deletions stubs/mypy-extensions/mypy_extensions.pyi
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
import abc
import sys
from typing import Any, Callable, Generic, ItemsView, KeysView, Mapping, Type, TypeVar, Union, ValuesView
from typing import Any, Callable, Generic, ItemsView, KeysView, Mapping, Type, TypeVar, ValuesView

_T = TypeVar("_T")
_U = TypeVar("_U")
Expand Down Expand Up @@ -34,9 +34,8 @@ def VarArg(type: _T = ...) -> _T: ...
def KwArg(type: _T = ...) -> _T: ...

# Return type that indicates a function does not return.
# This type is equivalent to the None type, but the no-op Union is necessary to
# distinguish the None type from the None value.
NoReturn = Union[None] # Deprecated: Use typing.NoReturn instead.
# Deprecated: Use typing.NoReturn instead.
class NoReturn: ...

# This is intended as a class decorator, but mypy rejects abstract classes
# when a Type[_T] is expected, so we can't give it the type we want
Expand Down
7 changes: 0 additions & 7 deletions stubs/mysqlclient/@tests/stubtest_allowlist.txt
Original file line number Diff line number Diff line change
@@ -1,8 +1 @@
MySQLdb.Connection
MySQLdb.connections
MySQLdb.constants.CLIENT
MySQLdb.constants.CR
MySQLdb.constants.ER
MySQLdb.constants.FLAG
MySQLdb.converters
MySQLdb.cursors
22 changes: 4 additions & 18 deletions stubs/paramiko/@tests/stubtest_allowlist.txt
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand Down
41 changes: 41 additions & 0 deletions stubs/requests/@tests/stubtest_allowlist.txt
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand All @@ -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
Expand All @@ -27,21 +49,36 @@ 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
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
Expand All @@ -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
Expand All @@ -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
26 changes: 2 additions & 24 deletions stubs/waitress/@tests/stubtest_allowlist.txt
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand All @@ -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
1 change: 1 addition & 0 deletions tests/stubtest_allowlists/py310.txt
Original file line number Diff line number Diff line change
Expand Up @@ -107,6 +107,7 @@ contextvars.ContextVar.reset
contextvars.ContextVar.set
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__
Expand Down
2 changes: 2 additions & 0 deletions tests/stubtest_allowlists/py36.txt
Original file line number Diff line number Diff line change
Expand Up @@ -72,6 +72,8 @@ 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
collections.Coroutine.cr_await
collections.Coroutine.cr_code
collections.Coroutine.cr_frame
Expand Down
2 changes: 2 additions & 0 deletions tests/stubtest_allowlists/py37.txt
Original file line number Diff line number Diff line change
Expand Up @@ -65,6 +65,8 @@ 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
collections.Coroutine.cr_await
collections.Coroutine.cr_code
collections.Coroutine.cr_frame
Expand Down
2 changes: 2 additions & 0 deletions tests/stubtest_allowlists/py38.txt
Original file line number Diff line number Diff line change
Expand Up @@ -82,6 +82,8 @@ 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
collections.Coroutine.cr_await
collections.Coroutine.cr_code
collections.Coroutine.cr_frame
Expand Down
2 changes: 2 additions & 0 deletions tests/stubtest_allowlists/py39.txt
Original file line number Diff line number Diff line change
Expand Up @@ -93,6 +93,8 @@ 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
collections.Coroutine.cr_await
collections.Coroutine.cr_code
collections.Coroutine.cr_frame
Expand Down
11 changes: 11 additions & 0 deletions tests/stubtest_allowlists/py3_common.txt
Original file line number Diff line number Diff line change
Expand Up @@ -42,6 +42,7 @@ 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__
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.
Expand Down Expand Up @@ -164,6 +165,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
Expand Down Expand Up @@ -234,6 +237,14 @@ builtins.reveal_locals
builtins.reveal_type
# GetSetDescriptor that always raises AttributeError
builtins.OSError.characters_written
builtins.EnvironmentError.characters_written
builtins.IOError.characters_written
Comment thread
hauntsaninja marked this conversation as resolved.
dbm.dumb.error.characters_written
os.error.characters_written
posix.error.characters_written
resource.error.characters_written
select.error.characters_written
socket.error.characters_written
Comment thread
hauntsaninja marked this conversation as resolved.
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
Expand Down