8000 Sync typeshed by JukkaL · Pull Request #11573 · python/mypy · GitHub
[go: up one dir, main page]

Skip to content

Sync typeshed #11573

New issue

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

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

Already on GitHub? Sign in to your account

Closed
wants to merge 1 commit into from
Closed

Sync typeshed #11573

wants to merge 1 commit into from

Conversation

JukkaL
Copy link
Collaborator
@JukkaL JukkaL commented Nov 17, 2021

Source commit:
python/typeshed@fbb89f9

@github-actions
Copy link
Contributor

Diff from mypy_primer, showing the effect of this PR on open source code:

pydantic (https://github.com/samuelcolvin/pydantic.git)
+ pydantic/class_validators.py:57: error: Missing type parameters for generic type "classmethod"  [type-arg]
+ pydantic/class_validators.py:84: error: Missing type parameters for generic type "classmethod"  [type-arg]
+ pydantic/class_validators.py:100: error: Missing type parameters for generic type "classmethod"  [type-arg]
+ pydantic/class_validators.py:107: error: Missing type parameters for generic type "classmethod"  [type-arg]
+ pydantic/class_validators.py:113: error: Missing type parameters for generic type "classmethod"  [type-arg]
+ pydantic/class_validators.py:125: error: Missing type parameters for generic type "classmethod"  [type-arg]
+ pydantic/class_validators.py:135: error: Missing type parameters for generic type "classmethod"  [type-arg]
+ pydantic/class_validators.py:328: error: Missing type parameters for generic type "classmethod"  [type-arg]
+ pydantic/tools.py:34: error: Unused "type: ignore" comment
+ pydantic/main.py:869: error: Missing type parameters for generic type "classmethod"  [type-arg]
+ pydantic/main.py:882: error: Missing type parameters for generic type "classmethod"  [type-arg]
+ pydantic/main.py:894: error: Missing type parameters for generic type "classmethod"  [type-arg]

core (https://github.com/home-assistant/core.git)
+ homeassistant/components/http/forwarded.py:91: error: Unused "type: ignore" comment
+ homeassistant/auth/mfa_modules/__init__.py:136: error: Unused "type: ignore" comment
+ homeassistant/auth/mfa_modules/__init__.py:171: error: Unused "type: ignore" comment
+ homeassistant/auth/providers/__init__.py:145: error: Unused "type: ignore" comment
+ homeassistant/auth/providers/__init__.py:178: error: Unused "type: ignore" comment
+ homeassistant/config.py:648: error: Unused "type: ignore" comment
+ homeassistant/config.py:651: error: Unused "type: ignore" comment
+ homeassistant/config.py:662: error: Unused "type: ignore" comment
+ homeassistant/config.py:672: error: Unused "type: ignore" comment
+ homeassistant/config.py:673: error: Unused "type: ignore" comment
+ homeassistant/config.py:753: error: Unused "type: ignore" comment
+ homeassistant/config.py:895: error: Unused "type: ignore" comment
+ homeassistant/setup.py:241: error: Unused "type: ignore" comment
+ homeassistant/setup.py:246: error: Unused "type: ignore" comment
+ homeassistant/helpers/check_config.py:161: error: Unused "type: ignore" comment
+ homeassistant/config_entries.py:310: error: Unused "type: ignore" comment
+ homeassistant/config_entries.py:449: error: Unused "type: ignore" comment
+ homeassistant/config_entries.py:488: error: Unused "type: ignore" comment
+ homeassistant/config_entries.py:525: error: Unused "type: ignore" comment
+ homeassistant/helpers/condition.py:929: error: Unused "type: ignore" comment
+ homeassistant/helpers/condition.py:977: error: Unused "type: ignore" comment
+ homeassistant/helpers/script.py:260: error: Unused "type: ignore" comment
+ homeassistant/helpers/script.py:262: error: Unused "type: ignore" comment
+ homeassistant/helpers/script.py:269: error: Unused "type: ignore" comment
+ homeassistant/scripts/__init__.py:67: error: Unused "type: ignore" comment
+ homeassistant/helpers/reload.py:81: error: Unused "type: ignore" comment
+ homeassistant/helpers/reload.py:82: error: Unused "type: ignore" comment
+ homeassistant/components/device_tracker/legacy.py:241: error: Unused "type: ignore" comment
+ homeassistant/components/device_tracker/legacy.py:246: error: Unused "type: ignore" comment
+ homeassistant/components/device_tracker/legacy.py:251: error: Unused "type: ignore" comment
+ homeassistant/components/device_tracker/legacy.py:256: error: Unused "type: ignore" comment
+ homeassistant/components/notify/legacy.py:61: error: Unused "type: ignore" comment
+ homeassistant/components/notify/legacy.py:66: error: Unused "type: ignore" comment

pip (https://github.com/pypa/pip.git)
- src/pip/_internal/locations/__init__.py:68: error: Module has no attribute "platlibdir"
+ src/pip/_internal/network/session.py:106: error: Unused "type: ignore" comment
+ src/pip/_internal/commands/debug.py:70: error: Value of type variable "AnyStr" of "dirname" cannot be "Optional[str]"
+ src/pip/_internal/commands/debug.py:70: error: List item 0 has incompatible type "Optional[str]"; expected "str"

streamlit (https://github.com/streamlit/streamlit.git)
+ lib/streamlit/script_runner.py:432: error: Unused "type: ignore" comment
+ lib/streamlit/script_runner.py:439: error: Unused "type: ignore" comment

werkzeug (https://github.com/pallets/werkzeug.git)
+ src/werkzeug/_reloader.py:20: error: Unused "type: ignore" comment
- tests/test_wrappers.py:833: note: Use "-> None" if function does not return a value
- tests/test_wrappers.py:856: note: (Skipping most remaining errors due to unresolved imports or missing stubs; fix these first)
+ tests/test_wrappers.py:833: note: (Skipping most remaining errors due to unresolved imports or missing stubs; fix these first)

ibis (https://github.com/ibis-project/ibis.git)
+ ibis/backends/tests/base.py:82: error: Argument 1 to "Path" has incompatible type "Union[str, None, Any]"; expected "Union[str, PathLike[str]]"
- ibis/backends/tests/conftest.py:45: error: Module has no attribute "TestConf"

aiohttp (https://github.com/aio-libs/aiohttp.git)
+ aiohttp/helpers.py:808: error: Unused "type: ignore" comment
+ aiohttp/multipart.py:518: error: Returning Any from function declared to return "str"  [no-any-return]
+ aiohttp/multipart.py:692: error: Returning Any from function declared to return "str"  [no-any-return]
+ aiohttp/connector.py:919: error: Returning Any from function declared to return "Optional[SSLContext]"  [no-any-return]
+ aiohttp/connector.py:925: error: Returning Any from function declared to return "Optional[SSLContext]"  [no-any-return]
+ aiohttp/connector.py:926: error: Returning Any from function declared to return "Optional[SSLContext]"  [no-any-return]
+ aiohttp/connector.py:1306: error: Unused "type: ignore" comment
+ aiohttp/client_reqrep.py:1010: error: Returning Any from function declared to 
10000
return "str"  [no-any-return]
+ aiohttp/web_runner.py:181: error: Unused "type: ignore" comment
+ aiohttp/pytest_plugin.py:244: error: Unused "type: ignore" comment

sphinx (https://github.com/sphinx-doc/sphinx.git)
+ sphinx/util/typing.py:228: error: Unused "type: ignore" comment
+ sphinx/util/typing.py:428: error: Unused "type: ignore" comment
+ sphinx/util/inspect.py: note: In function "unwrap_all":
+ sphinx/util/inspect.py:137:19: error: Item "FunctionType" of "Union[FunctionType, FunctionType, MethodType, BuiltinFunctionType, BuiltinFunctionType]" has no attribute "__wrapped__"
+ sphinx/util/inspect.py:137:19: error: Item "MethodType" of "Union[FunctionType, FunctionType, MethodType, BuiltinFunctionType, BuiltinFunctionType]" has no attribute "__wrapped__"
+ sphinx/util/inspect.py:137:19: error: Item "BuiltinFunctionType" of "Union[FunctionType, FunctionType, MethodType, BuiltinFunctionType, BuiltinFunctionType]" has no attribute "__wrapped__"
+ sphinx/util/inspect.py:433: error: Unused "type: ignore" comment
+ sphinx/util/inspect.py:436: error: Unused "type: ignore" comment
+ sphinx/util/inspect.py:439: error: Unused "type: ignore" comment
+ sphinx/util/docutils.py:52: error: Unused "type: ignore" comment
+ sphinx/util/docutils.py:53: error: Unused "type: ignore" comment
+ sphinx/util/docutils.py:67: error: Unused "type: ignore" comment
+ sphinx/util/docutils.py:81: error: Unused "type: ignore" comment
+ sphinx/util/docutils.py:95: error: Unused "type: ignore" comment
+ sphinx/util/docutils.py:110: error: Unused "type: ignore" comment
+ sphinx/environment/__init__.py:624: error: Unused "type: ignore" comment
+ sphinx/domains/python.py:1452: error: Unused "type: ignore" comment
+ sphinx/writers/manpage.py:110: error: Unused "type: ignore" comment
+ sphinx/testing/util.py:126: error: Unused "type: ignore" comment
+ sphinx/testing/util.py:127: error: Unused "type: ignore" comment
+ sphinx/util/compat.py:29: error: Unused "type: ignore" comment

arviz (https://github.com/arviz-devs/arviz.git)
+ arviz/data/io_pymc3_3x.py:47: error: Unused "type: ignore" comment
+ arviz/data/io_pymc3_3x.py:48: error: Unused "type: ignore" comment
- examples/bokeh/bokeh_plot_compare.py:15: error: Call to untyped function "plot_compare" in typed context
- examples/bokeh/bokeh_plot_bpv_tstat.py:9: error: Call to untyped function "load_arviz_data" in typed context
- examples/bokeh/bokeh_plot_bpv_tstat.py:10: note: (Skipping most remaining errors due to unresolved imports or missing stubs; fix these first)
+ examples/bokeh/bokeh_plot_compare.py:15: note: (Skipping most remaining errors due to unresolved imports or missing stubs; fix these first)

python-chess (https://github.com/niklasf/python-chess.git)
+ chess/engine.py:122: error: Unused "type: ignore" comment
+ chess/engine.py:123: error: Unused "type: ignore" comment
+ chess/engine.py:1209: error: Unused "type: ignore" comment

pandas (https://github.com/pandas-dev/pandas.git)
+ pandas/core/dtypes/cast.py:498: error: Unused "type: ignore" comment

isort (https://github.com/pycqa/isort.git)
+ isort/_future/__init__.py:9: error: Unused "type: ignore" comment
+ isort/_future/__init__.py:10: error: Unused "type: ignore" comment
+ isort/place.py:17: error: Returning Any from function declared to return "str"
+ isort/output.py:504: error: Unused "type: ignore" comment
+ isort/output.py:516: error: Unused "type: ignore" comment
+ isort/output.py:523: error: Unused "type: ignore" comment

pylint (https://github.com/pycqa/pylint.git)
+ pylint/checkers/utils.py:326: error: Unused "type: ignore" comment
+ pylint/checkers/utils.py:326: error: Module has no attribute "__iter__" (not iterable)  [attr-defined]

rich (https://github.com/willmcgugan/rich.git)
+ rich/traceback.py:249: error: Value of type variable "AnyStr" of "dirname" cannot be "Optional[str]"
+ rich/traceback.py:252: error: Value of type variable "AnyStr" of "normpath" cannot be "Optional[str]"
+ rich/traceback.py:252: error: Value of type variable "AnyStr" of "abspath" cannot be "Optional[str]"
+ rich/traceback.py:253: error: Argument 1 to "append" of "list" has incompatible type "Optional[str]"; expected "str"

edgedb (https://github.com/edgedb/edgedb.git)
+ edb/server/pgconnparams.py:75: error: Unused "type: ignore" comment
+ edb/schema/objects.py:997: error: Unused "type: ignore" comment
+ edb/schema/objects.py:1992:9: error: Returning Any from function declared to return "QualName"
+ edb/schema/objects.py:2223: error: Unused "type: ignore" comment
+ edb/schema/objects.py:2637:9: error: Returning Any from function declared to return "Name"
+ edb/schema/schema.py:1146:9: error: Returning Any from function declared to return "FrozenSet[Cast]"
+ edb/schema/schema.py:1156:9: error: Returning Any from function declared to return "FrozenSet[Cast]"
+ edb/schema/schema.py:1166:9: error: Returning Any from function declared to return "FrozenSet[so.Object_T]"
+ edb/schema/schema.py:1412:9: error: Returning Any from function declared to return "Optional[Migration]"
+ edb/schema/scalars.py:132:9: error: Returning Any from function declared to return "bool"
+ edb/schema/scalars.py:163:9: error: Returning Any from function declared to return "bool"
+ edb/schema/scalars.py:176:9: error: Returning Any from function declared to return "int"
+ edb/schema/casts.py:91:5: error: Returning Any from function declared to return "bool"
+ edb/schema/casts.py:119:21: error: Returning Any from function declared to return "Optional[Type]"

pytest (https://github.com/pytest-dev/pytest.git)
+ src/_pytest/pathlib.py:542: error: Item "None" of "Optional[str]" has no attribute "endswith"  [union-attr]
+ src/_pytest/pathlib.py:543: error: Value of type "Optional[str]" is not indexable  [index]
+ src/_pytest/pathlib.py:544: error: Item "None" of "Optional[str]" has no attribute "endswith"  [union-attr]
+ src/_pytest/pathlib.py:545: error: Value of type "Optional[str]" is not indexable  [index]
+ src/_pytest/pathlib.py:548: error: Argument 2 to "_is_same" has incompatible type "Optional[str]"; expected "str"  [arg-type]
+ src/_pytest/config/__init__.py:1440: error: Argument 1 to "Path" has incompatible type "Optional[str]"; expected "Union[str, PathLike[str]]"  [arg-type]
- src/_pytest/config/__init__.py:1683: error: Argument 1 to "filterwarnings" has incompatible type "*Tuple[str, str, Type[Warning], str, int]"; expected "Union[Literal['default'], Literal['error'], Literal['ignore'], Literal['always'], Literal['module'], Literal['once']]"  [arg-type]
- src/_pytest/config/__init__.py:1686: error: Argument 1 to "filterwarnings" has incompatible type "*Tuple[str, str, Type[Warning], str, int]"; expected "Union[Literal['default'], Literal['error'], Literal['ignore'], Literal['always'], Literal['module'], Literal['once']]"  [arg-type]
- src/_pytest/fixtures.py:1323: error: Unexpected keyword argument "ids" for "FixtureFunctionMarker"  [call-arg]
- src/_pytest/fixtures.py:1323: error: Unexpected keyword argument "name" for "FixtureFunctionMarker"  [call-arg]
- src/_pytest/fixtures.py:1468: note: (Skipping most remaining errors due to unresolved imports or missing stubs; fix these first)
+ src/_pytest/fixtures.py:1323: note: (Skipping most remaining errors due to unresolved imports or missing stubs; fix these first)

anyio (https://github.com/agronholm/anyio.git)
+ src/anyio/_core/_eventloop.py:56: error: Unused "type: ignore" comment

kornia (https://github.com/kornia/kornia.git)
- kornia/testing/__init__.py:16: error: Module has no attribute "util"  [attr-defined]

@hauntsaninja
Copy link
Collaborator

Test failures aside, this also includes python/typeshed#6221 which as things currently stand would be a bit of a regression for mypy users

@JukkaL
Copy link
Collaborator Author
JukkaL commented Nov 18, 2021

which as things currently stand would be a bit of a regression for mypy users

I'd rather avoid the regression. We could work around this using a plugin, but that's not very principled.

I'm going to instead look at adding support for ParamSpec (at least at a basic level) before we do the typeshed sync. It doesn't look too difficult to support.

@JukkaL
Copy link
Collaborator Author
JukkaL commented Nov 18, 2021

I'm going to instead look at adding support for ParamSpec (at least at a basic level) before we do the typeshed sync.

I did some prototyping and real ParamSpec support looks fairly easy so far. cc @hauntsaninja

@hauntsaninja
Copy link
Collaborator
hauntsaninja commented Nov 18, 2021

Nice! Yeah, in particular the basic "change the callable return type" needed for this PR should be quite easy to knock out. I think I have a version of that on a branch, and then I got distracted and started refactoring type variables and trying to fix generics leakage.

@JukkaL
Copy link
Collaborator Author
JukkaL commented Nov 18, 2021

Cool! I'll try to prepare a PR that implements basic ParamSpec functionality in a "rough and ready" manner soon to unblock ParamSpec usage in typeshed.

@JukkaL
Copy link
Collaborator Author
JukkaL commented Nov 22, 2021

I'm going to create another PR based on a more recent typeshed commit.

@JukkaL JukkaL closed this Nov 22, 2021
@hauntsaninja hauntsaninja deleted the typeshed branch November 22, 2021 18:13
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants
0