Skip to content
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

Check for bare Incomplete annotations #475

Merged
merged 6 commits into from
Mar 30, 2024
Merged

Conversation

srittau
Copy link
Collaborator

@srittau srittau commented Mar 30, 2024

No description provided.

@srittau srittau linked an issue Mar 30, 2024 that may be closed by this pull request

This comment has been minimized.

@srittau srittau marked this pull request as draft March 30, 2024 11:14

This comment has been minimized.

tests/incomplete.pyi Outdated Show resolved Hide resolved
@@ -2162,6 +2163,9 @@ def _visit_function(self, node: ast.FunctionDef | ast.AsyncFunctionDef) -> None:
with self.in_function.enabled():
self.generic_visit(node)

if node.name != "__getattr__" and node.returns and _is_Incomplete(node.returns):
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

_is_Incomplete accepts ast.AST | None, so I don't think we need this check here:

Suggested change
if node.name != "__getattr__" and node.returns and _is_Incomplete(node.returns):
if node.name != "__getattr__" and _is_Incomplete(node.returns):

Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

It's necessary to make mypy happy, as self.error() only accepts an AST.

Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Oh, I see. Maybe we could make _is_object return TypeGuard[ast.AST]. But what you have is also fine.

ERRORCODES.md Outdated Show resolved Hide resolved

This comment has been minimized.

@srittau srittau marked this pull request as ready for review March 30, 2024 11:47

This comment has been minimized.

ERRORCODES.md Outdated Show resolved Hide resolved
Co-authored-by: Alex Waygood <[email protected]>
Copy link

⚠ Flake8 diff showing the effect of this PR on typeshed:

> ./stdlib/importlib/resources/simple.pyi:31:51: Y065 Leave parameter "args" unannotated rather than using "Incomplete"
> ./stdlib/importlib/resources/simple.pyi:31:71: Y065 Leave parameter "kwargs" unannotated rather than using "Incomplete"
> ./stdlib/importlib/resources/simple.pyi:35:36: Y065 Leave parameter "args" unannotated rather than using "Incomplete"
> ./stdlib/importlib/resources/simple.pyi:35:56: Y065 Leave parameter "kwargs" unannotated rather than using "Incomplete"
> ./stdlib/multiprocessing/resource_tracker.pyi:9:37: Y065 Leave parameter "rtype" unannotated rather than using "Incomplete"
> ./stdlib/multiprocessing/resource_tracker.pyi:10:39: Y065 Leave parameter "rtype" unannotated rather than using "Incomplete"
> ./stdlib/multiprocessing/util.pyi:45:25: Y065 Leave parameter "obj" unannotated rather than using "Incomplete"
> ./stdlib/multiprocessing/util.pyi:62:10: Y065 Leave return type unannotated rather than using "Incomplete"
> ./stdlib/tkinter/commondialog.pyi:13:60: Y065 Leave parameter "options" unannotated rather than using "Incomplete"
> ./stdlib/tkinter/commondialog.pyi:14:22: Y065 Leave parameter "options" unannotated rather than using "Incomplete"
> ./stdlib/tkinter/commondialog.pyi:14:46: Y065 Leave return type unannotated rather than using "Incomplete"
> ./stdlib/tkinter/dialog.pyi:15:89: Y065 Leave parameter "kw" unannotated rather than using "Incomplete"
> ./stdlib/tkinter/scrolledtext.pyi:10:54: Y065 Leave parameter "kwargs" unannotated rather than using "Incomplete"
> ./stdlib/typing.pyi:173:36: Y065 Leave parameter "arg" unannotated rather than using "Incomplete"
> ./stdlib/typing.pyi:173:56: Y065 Leave return type unannotated rather than using "Incomplete"
> ./stdlib/typing.pyi:224:44: Y065 Leave parameter "alias" unannotated rather than using "Incomplete"
> ./stdlib/typing.pyi:224:63: Y065 Leave parameter "args" unannotated rather than using "Incomplete"
> ./stdlib/typing.pyi:224:84: Y065 Leave return type unannotated rather than using "Incomplete"
> ./stdlib/typing.pyi:273:40: Y065 Leave parameter "arg" unannotated rather than using "Incomplete"
> ./stdlib/typing.pyi:273:60: Y065 Leave return type unannotated rather than using "Incomplete"
> ./stdlib/typing.pyi:274:48: Y065 Leave parameter "alias" unannotated rather than using "Incomplete"
> ./stdlib/typing.pyi:274:67: Y065 Leave parameter "args" unannotated rather than using "Incomplete"
> ./stdlib/typing.pyi:274:88: Y065 Leave return type unannotated rather than using "Incomplete"
> ./stdlib/typing_extensions.pyi:416:36: Y065 Leave parameter "arg" unannotated rather than using "Incomplete"
> ./stdlib/typing_extensions.pyi:416:56: Y065 Leave return type unannotated rather than using "Incomplete"
> ./stdlib/xml/dom/xmlbuilder.pyi:63:40: Y065 Leave return type unannotated rather than using "Incomplete"
> ./stubs/Flask-SocketIO/flask_socketio/namespace.pyi:27:9: Y065 Leave parameter "data" unannotated rather than using "Incomplete"
> ./stubs/Flask-SocketIO/flask_socketio/namespace.pyi:68:9: Y065 Leave parameter "data" unannotated rather than using "Incomplete"
> ./stubs/Pillow/PIL/PdfParser.pyi:68:14: Y065 Leave parameter "x" unannotated rather than using "Incomplete"
> ./stubs/Pillow/PIL/PyAccess.pyi:14:51: Y065 Leave return type unannotated rather than using "Incomplete"
> ./stubs/Pillow/PIL/PyAccess.pyi:16:48: Y065 Leave return type unannotated rather than using "Incomplete"
> ./stubs/Pillow/PIL/_imaging.pyi:20:48: Y065 Leave parameter "color" unannotated rather than using "Incomplete"
> ./stubs/Pillow/PIL/_imaging.pyi:21:54: Y065 Leave return type unannotated rather than using "Incomplete"
> ./stubs/Pillow/PIL/_imaging.pyi:22:45: Y065 Leave parameter "color" unannotated rather than using "Incomplete"
> ./stubs/Pillow/PIL/_imaging.pyi:23:51: Y065 Leave return type unannotated rather than using "Incomplete"
> ./stubs/aiofiles/aiofiles/tempfile/__init__.pyi:259:35: Y065 Leave return type unannotated rather than using "Incomplete"
> ./stubs/aiofiles/aiofiles/tempfile/temptypes.pyi:23:46: Y065 Leave return type unannotated rather than using "Incomplete"
> ./stubs/aiofiles/aiofiles/tempfile/temptypes.pyi:24:61: Y065 Leave return type unannotated rather than using "Incomplete"
> ./stubs/aiofiles/aiofiles/tempfile/temptypes.pyi:41:27: Y065 Leave parameter "s" unannotated rather than using "Incomplete"
> ./stubs/aiofiles/aiofiles/tempfile/temptypes.pyi:47:23: Y065 Leave return type unannotated rather than using "Incomplete"
> ./stubs/antlr4-python3-runtime/antlr4/error/Errors.pyi:44:9: Y065 Leave parameter "recognizer" unannotated rather than using "Incomplete"
> ./stubs/bleach/bleach/sanitizer.pyi:28:61: Y065 Leave return type unannotated rather than using "Incomplete"
> ./stubs/boltons/boltons/debugutils.pyi:8:5: Y065 Leave parameter "obj" unannotated rather than using "Incomplete"
> ./stubs/boltons/boltons/debugutils.pyi:9:6: Y065 Leave return type unannotated rather than using "Incomplete"
> ./stubs/boltons/boltons/queueutils.pyi:8:36: Y065 Leave return type unannotated rather than using "Incomplete"
> ./stubs/boltons/boltons/queueutils.pyi:9:35: Y065 Leave return type unannotated rather than using "Incomplete"
> ./stubs/braintree/braintree/risk_data.pyi:6:24: Y065 Leave parameter "attributes" unannotated rather than using "Incomplete"
> ./stubs/caldav/caldav/davclient.pyi:69:11: Y065 Leave parameter "extra" unannotated rather than using "Incomplete"
> ./stubs/caldav/caldav/objects.pyi:36:11: Y065 Leave parameter "extra" unannotated rather than using "Incomplete"
> ./stubs/caldav/caldav/objects.pyi:74:95: Y065 Leave parameter "ical_data" unannotated rather than using "Incomplete"
> ./stubs/caldav/caldav/objects.pyi:77:95: Y065 Leave parameter "ical_data" unannotated rather than using "Incomplete"
> ./stubs/caldav/caldav/objects.pyi:80:95: Y065 Leave parameter "ical_data" unannotated rather than using "Incomplete"
> ./stubs/cffi/_cffi_backend.pyi:86:57: Y065 Leave parameter "object" unannotated rather than using "Incomplete"
> ./stubs/dateparser/dateparser/utils/__init__.pyi:26:52: Y065 Leave return type unannotated rather than using "Incomplete"
> ./stubs/docutils/docutils/utils/__init__.pyi:72:11: Y065 Leave parameter "kwargs" unannotated rather than using "Incomplete"
> ./stubs/docutils/docutils/utils/__init__.pyi:80:11: Y065 Leave parameter "kwargs" unannotated rather than using "Incomplete"
> ./stubs/docutils/docutils/utils/__init__.pyi:88:11: Y065 Leave parameter "kwargs" unannotated rather than using "Incomplete"
> ./stubs/docutils/docutils/utils/__init__.pyi:96:11: Y065 Leave parameter "kwargs" unannotated rather than using "Incomplete"
> ./stubs/docutils/docutils/utils/__init__.pyi:104:11: Y065 Leave parameter "kwargs" unannotated rather than using "Incomplete"
> ./stubs/docutils/docutils/utils/__init__.pyi:112:11: Y065 Leave parameter "kwargs" unannotated rather than using "Incomplete"
> ./stubs/fpdf2/fpdf/html.pyi:87:25: Y065 Leave parameter "args" unannotated rather than using "Incomplete"
> ./stubs/fpdf2/fpdf/html.pyi:87:45: Y065 Leave parameter "kwargs" unannotated rather than using "Incomplete"
> ./stubs/hdbcli/hdbcli/dbapi.pyi:37:28: Y065 Leave parameter "args" unannotated rather than using "Incomplete"
> ./stubs/hdbcli/hdbcli/dbapi.pyi:37:48: Y065 Leave parameter "kwargs" unannotated rather than using "Incomplete"
> ./stubs/hdbcli/hdbcli/dbapi.pyi:37:71: Y065 Leave return type unannotated rather than using "Incomplete"
> ./stubs/hdbcli/hdbcli/dbapi.pyi:86:30: Y065 Leave parameter "args" unannotated rather than using "Incomplete"
> ./stubs/hdbcli/hdbcli/dbapi.pyi:86:50: Y065 Leave parameter "kwargs" unannotated rather than using "Incomplete"
> ./stubs/hdbcli/hdbcli/dbapi.pyi:86:73: Y065 Leave return type unannotated rather than using "Incomplete"
> ./stubs/hdbcli/hdbcli/dbapi.pyi:87:32: Y065 Leave parameter "args" unannotated rather than using "Incomplete"
> ./stubs/hdbcli/hdbcli/dbapi.pyi:87:52: Y065 Leave parameter "kwargs" unannotated rather than using "Incomplete"
> ./stubs/hdbcli/hdbcli/dbapi.pyi:87:75: Y065 Leave return type unannotated rather than using "Incomplete"
> ./stubs/jsonschema/jsonschema/exceptions.pyi:35:9: Y065 Leave parameter "instance" unannotated rather than using "Incomplete"
> ./stubs/jsonschema/jsonschema/exceptions.pyi:36:9: Y065 Leave parameter "schema" unannotated rather than using "Incomplete"
> ./stubs/netaddr/netaddr/core.pyi:16:22: Y065 Leave parameter "data" unannotated rather than using "Incomplete"
> ./stubs/netaddr/netaddr/ip/__init__.pyi:95:22: Y065 Leave parameter "module" unannotated rather than using "Incomplete"
> ./stubs/netaddr/netaddr/ip/iana.pyi:24:24: Y065 Leave parameter "fh" unannotated rather than using "Incomplete"
> ./stubs/netaddr/netaddr/ip/iana.pyi:48:22: Y065 Leave parameter "data" unannotated rather than using "Incomplete"
> ./stubs/networkx/networkx/algorithms/operators/binary.pyi:25:43: Y065 Leave parameter "rename" unannotated rather than using "Incomplete"
> ./stubs/networkx/networkx/algorithms/planarity.pyi:26:24: Y065 Leave parameter "left" unannotated rather than using "Incomplete"
> ./stubs/networkx/networkx/algorithms/planarity.pyi:26:48: Y065 Leave parameter "right" unannotated rather than using "Incomplete"
> ./stubs/networkx/networkx/classes/graph.pyi:48:78: Y065 Leave parameter "attr" unannotated rather than using "Incomplete"
> ./stubs/networkx/networkx/classes/graph.pyi:58:99: Y065 Leave parameter "attr" unannotated rather than using "Incomplete"
> ./stubs/networkx/networkx/classes/graph.pyi:71:49: Y065 Leave parameter "default" unannotated rather than using "Incomplete"
> ./stubs/networkx/networkx/classes/reportviews.pyi:18:54: Y065 Leave parameter "default" unannotated rather than using "Incomplete"
> ./stubs/networkx/networkx/classes/reportviews.pyi:20:51: Y065 Leave parameter "default" unannotated rather than using "Incomplete"
> ./stubs/networkx/networkx/classes/reportviews.pyi:21:45: Y065 Leave parameter "default" unannotated rather than using "Incomplete"
> ./stubs/networkx/networkx/classes/reportviews.pyi:24:86: Y065 Leave parameter "default" unannotated rather than using "Incomplete"
> ./stubs/networkx/networkx/convert.pyi:23:100: Y065 Leave return type unannotated rather than using "Incomplete"
> ./stubs/openpyxl/openpyxl/descriptors/base.pyi:299:56: Y065 Leave parameter "value" unannotated rather than using "Incomplete"
> ./stubs/openpyxl/openpyxl/descriptors/excel.pyi:25:56: Y065 Leave parameter "value" unannotated rather than using "Incomplete"
> ./stubs/openpyxl/openpyxl/worksheet/print_settings.pyi:25:24: Y065 Leave parameter "range_string" unannotated rather than using "Incomplete"
> ./stubs/openpyxl/openpyxl/worksheet/print_settings.pyi:34:24: Y065 Leave parameter "range_string" unannotated rather than using "Incomplete"
> ./stubs/openpyxl/openpyxl/xml/_functions_overloads.pyi:111:5: Y065 Leave parameter "inclusive_ns_prefixes" unannotated rather than using "Incomplete"
> ./stubs/parsimonious/parsimonious/nodes.pyi:39:77: Y065 Leave return type unannotated rather than using "Incomplete"
> ./stubs/protobuf/google/protobuf/internal/builder.pyi:4:36: Y065 Leave parameter "file_des" unannotated rather than using "Incomplete"
> ./stubs/protobuf/google/protobuf/internal/builder.pyi:5:36: Y065 Leave parameter "file_des" unannotated rather than using "Incomplete"
> ./stubs/protobuf/google/protobuf/internal/well_known_types.pyi:13:15: Y065 Leave parameter "msg" unannotated rather than using "Incomplete"
> ./stubs/protobuf/google/protobuf/internal/well_known_types.pyi:15:22: Y065 Leave parameter "msg" unannotated rather than using "Incomplete"
> ./stubs/protobuf/google/protobuf/internal/well_known_types.pyi:17:18: Y065 Leave parameter "descriptor" unannotated rather than using "Incomplete"
> ./stubs/psycopg2/psycopg2/_psycopg.pyi:285:28: Y065 Leave return type unannotated rather than using "Incomplete"
> ./stubs/psycopg2/psycopg2/_psycopg.pyi:286:28: Y065 Leave return type unannotated rather than using "Incomplete"
> ./stubs/psycopg2/psycopg2/_psycopg.pyi:585:24: Y065 Leave parameter "protocol" unannotated rather than using "Incomplete"
> ./stubs/psycopg2/psycopg2/_psycopg.pyi:585:52: Y065 Leave parameter "alternate" unannotated rather than using "Incomplete"
> ./stubs/psycopg2/psycopg2/pool.pyi:15:55: Y065 Leave return type unannotated rather than using "Incomplete"
> ./stubs/psycopg2/psycopg2/pool.pyi:16:23: Y065 Leave parameter "conn" unannotated rather than using "Incomplete"
> ./stubs/pyOpenSSL/OpenSSL/SSL.pyi:168:15: Y065 Leave parameter "label" unannotated rather than using "Incomplete"
> ./stubs/pyOpenSSL/OpenSSL/SSL.pyi:168:34: Y065 Leave parameter "olen" unannotated rather than using "Incomplete"
> ./stubs/pyOpenSSL/OpenSSL/SSL.pyi:168:52: Y065 Leave parameter "context" unannotated rather than using "Incomplete"
> ./stubs/pyOpenSSL/OpenSSL/SSL.pyi:169:10: Y065 Leave return type unannotated rather than using "Incomplete"
> ./stubs/pycurl/pycurl.pyi:20:35: Y065 Leave parameter "value" unannotated rather than using "Incomplete"
> ./stubs/pycurl/pycurl.pyi:25:23: Y065 Leave parameter "info" unannotated rather than using "Incomplete"
> ./stubs/pycurl/pycurl.pyi:25:44: Y065 Leave return type unannotated rather than using "Incomplete"
> ./stubs/pycurl/pycurl.pyi:26:27: Y065 Leave parameter "info" unannotated rather than using "Incomplete"
> ./stubs/pycurl/pycurl.pyi:26:48: Y065 Leave return type unannotated rather than using "Incomplete"
> ./stubs/pycurl/pycurl.pyi:28:40: Y065 Leave return type unannotated rather than using "Incomplete"
> ./stubs/pycurl/pycurl.pyi:29:21: Y065 Leave parameter "bitmask" unannotated rather than using "Incomplete"
> ./stubs/pycurl/pycurl.pyi:29:45: Y065 Leave return type unannotated rather than using "Incomplete"
> ./stubs/pycurl/pycurl.pyi:40:35: Y065 Leave parameter "value" unannotated rather than using "Incomplete"
> ./stubs/pycurl/pycurl.pyi:46:35: Y065 Leave parameter "socket" unannotated rather than using "Incomplete"
> ./stubs/pycurl/pycurl.pyi:46:61: Y065 Leave return type unannotated rather than using "Incomplete"
> ./stubs/pycurl/pycurl.pyi:53:35: Y065 Leave parameter "value" unannotated rather than using "Incomplete"
> ./stubs/pycurl/pycurl.pyi:53:57: Y065 Leave return type unannotated rather than using "Incomplete"
> ./stubs/pyinstaller/PyInstaller/building/splash.pyi:27:98: Y065 Leave parameter "kwargs" unannotated rather than using "Incomplete"
> ./stubs/python-crontab/crontab.pyi:161:61: Y065 Leave return type unannotated rather than using "Incomplete"
> ./stubs/python-crontab/crontab.pyi:163:29: Y065 Leave parameter "kw" unannotated rather than using "Incomplete"
> ./stubs/python-crontab/crontab.pyi:163:48: Y065 Leave return type unannotated rather than using "Incomplete"
> ./stubs/python-crontab/crontab.pyi:295:27: Y065 Leave return type unannotated rather than using "Incomplete"
> ./stubs/python-crontab/crontab.pyi:297:27: Y065 Leave parameter "key" unannotated rather than using "Incomplete"
> ./stubs/python-crontab/crontab.pyi:297:47: Y065 Leave return type unannotated rather than using "Incomplete"
> ./stubs/pytz/pytz/lazy.pyi:6:40: Y065 Leave return type unannotated rather than using "Incomplete"
> ./stubs/redis/redis/cluster.pyi:253:74: Y065 Leave parameter "kwargs" unannotated rather than using "Incomplete"
> ./stubs/redis/redis/commands/cluster.pyi:55:29: Y065 Leave parameter "target_node" unannotated rather than using "Incomplete"
> ./stubs/requests-oauthlib/requests_oauthlib/oauth2_session.pyi:20:15: Y065 Leave parameter "url" unannotated rather than using "Incomplete"
> ./stubs/requests-oauthlib/requests_oauthlib/oauth2_session.pyi:20:32: Y065 Leave parameter "headers" unannotated rather than using "Incomplete"
> ./stubs/requests-oauthlib/requests_oauthlib/oauth2_session.pyi:20:53: Y065 Leave parameter "data" unannotated rather than using "Incomplete"
> ./stubs/seaborn/seaborn/_core/groupby.pyi:26:10: Y065 Leave parameter "args" unannotated rather than using "Incomplete"
> ./stubs/seaborn/seaborn/_core/groupby.pyi:29:11: Y065 Leave parameter "kwargs" unannotated rather than using "Incomplete"
> ./stubs/seaborn/seaborn/_core/plot.pyi:56:96: Y065 Leave parameter "kwds" unannotated rather than using "Incomplete"
> ./stubs/seaborn/seaborn/_core/scales.pyi:96:25: Y065 Leave parameter "units" unannotated rather than using "Incomplete"
> ./stubs/seaborn/seaborn/_core/scales.pyi:97:28: Y065 Leave parameter "x" unannotated rather than using "Incomplete"
> ./stubs/seaborn/seaborn/_core/scales.pyi:98:29: Y065 Leave parameter "x" unannotated rather than using "Incomplete"
> ./stubs/seaborn/seaborn/_core/scales.pyi:98:47: Y065 Leave return type unannotated rather than using "Incomplete"
> ./stubs/seaborn/seaborn/_core/typing.pyi:15:81: Y065 Leave return type unannotated rather than using "Incomplete"
> ./stubs/seaborn/seaborn/axisgrid.pyi:67:9: Y065 Leave parameter "prop_cycle" unannotated rather than using "Incomplete"
> ./stubs/seaborn/seaborn/categorical.pyi:74:5: Y065 Leave parameter "scale" unannotated rather than using "Incomplete"
> ./stubs/seaborn/seaborn/categorical.pyi:75:5: Y065 Leave parameter "scale_hue" unannotated rather than using "Incomplete"
> ./stubs/seaborn/seaborn/categorical.pyi:76:5: Y065 Leave parameter "bw" unannotated rather than using "Incomplete"
> ./stubs/seaborn/seaborn/categorical.pyi:109:5: Y065 Leave parameter "scale" unannotated rather than using "Incomplete"
> ./stubs/seaborn/seaborn/categorical.pyi:193:5: Y065 Leave parameter "ci" unannotated rather than using "Incomplete"
> ./stubs/seaborn/seaborn/categorical.pyi:194:5: Y065 Leave parameter "errcolor" unannotated rather than using "Incomplete"
> ./stubs/seaborn/seaborn/categorical.pyi:195:5: Y065 Leave parameter "errwidth" unannotated rather than using "Incomplete"
> ./stubs/seaborn/seaborn/categorical.pyi:226:5: Y065 Leave parameter "ci" unannotated rather than using "Incomplete"
> ./stubs/seaborn/seaborn/categorical.pyi:227:5: Y065 Leave parameter "errwidth" unannotated rather than using "Incomplete"
> ./stubs/seaborn/seaborn/categorical.pyi:228:5: Y065 Leave parameter "join" unannotated rather than using "Incomplete"
> ./stubs/seaborn/seaborn/categorical.pyi:229:5: Y065 Leave parameter "scale" unannotated rather than using "Incomplete"
> ./stubs/seaborn/seaborn/categorical.pyi:293:5: Y065 Leave parameter "ci" unannotated rather than using "Incomplete"
> ./stubs/seaborn/seaborn/matrix.pyi:43:7: Y065 Leave parameter "kwargs" unannotated rather than using "Incomplete"
> ./stubs/seaborn/seaborn/matrix.pyi:153:77: Y065 Leave parameter "kws" unannotated rather than using "Incomplete"
> ./stubs/seaborn/seaborn/matrix.pyi:155:102: Y065 Leave parameter "kws" unannotated rather than using "Incomplete"
> ./stubs/seaborn/seaborn/matrix.pyi:167:11: Y065 Leave parameter "kws" unannotated rather than using "Incomplete"
> ./stubs/seaborn/seaborn/matrix.pyi:197:7: Y065 Leave parameter "kwargs" unannotated rather than using "Incomplete"
> ./stubs/seaborn/seaborn/utils.pyi:106:48: Y065 Leave parameter "dtype" unannotated rather than using "Incomplete"
> ./stubs/tensorflow/tensorflow/__init__.pyi:185:9: Y065 Leave parameter "node_def" unannotated rather than using "Incomplete"
> ./stubs/tensorflow/tensorflow/__init__.pyi:193:9: Y065 Leave parameter "op_def" unannotated rather than using "Incomplete"
> ./stubs/tensorflow/tensorflow/__init__.pyi:304:29: Y065 Leave parameter "other" unannotated rather than using "Incomplete"
> ./stubs/tensorflow/tensorflow/keras/callbacks.pyi:151:11: Y065 Leave parameter "kwargs" unannotated rather than using "Incomplete"
> ./stubs/tensorflow/tensorflow/keras/layers/preprocessing/index_lookup.pyi:7:40: Y065 Leave parameter "input_spec" unannotated rather than using "Incomplete"
> ./stubs/tensorflow/tensorflow/keras/models.pyi:29:29: Y065 Leave return type unannotated rather than using "Incomplete"
> ./stubs/tensorflow/tensorflow/keras/models.pyi:30:28: Y065 Leave parameter "memo" unannotated rather than using "Incomplete"
> ./stubs/tensorflow/tensorflow/keras/models.pyi:30:49: Y065 Leave return type unannotated rather than using "Incomplete"
> ./stubs/tensorflow/tensorflow/keras/models.pyi:64:53: Y065 Leave return type unannotated rather than using "Incomplete"
> ./stubs/tensorflow/tensorflow/keras/models.pyi:73:83: Y065 Leave parameter "sample_weight" unannotated rather than using "Incomplete"
> ./stubs/tensorflow/tensorflow/keras/models.pyi:189:30: Y065 Leave return type unannotated rather than using "Incomplete"
> ./stubs/tensorflow/tensorflow/saved_model/experimental.pyi:27:25: Y065 Leave parameter "proto" unannotated rather than using "Incomplete"
> ./stubs/tensorflow/tensorflow/types/experimental.pyi:27:45: Y065 Leave parameter "args" unannotated rather than using "Incomplete"
> ./stubs/tensorflow/tensorflow/types/experimental.pyi:27:65: Y065 Leave parameter "kwargs" unannotated rather than using "Incomplete"
> ./stubs/tensorflow/tensorflow/types/experimental.pyi:27:88: Y065 Leave return type unannotated rather than using "Incomplete"
> ./stubs/tqdm/tqdm/contrib/discord.pyi:87:9: Y065 Leave parameter "bar_style" unannotated rather than using "Incomplete"
> ./stubs/tqdm/tqdm/contrib/slack.pyi:87:91: Y065 Leave parameter "bar_style" unannotated rather than using "Incomplete"
> ./stubs/tqdm/tqdm/contrib/telegram.pyi:92:91: Y065 Leave parameter "bar_style" unannotated rather than using "Incomplete"
> ./stubs/tqdm/tqdm/rich.pyi:16:35: Y065 Leave return type unannotated rather than using "Incomplete"
> ./stubs/tqdm/tqdm/rich.pyi:17:24: Y065 Leave parameter "task" unannotated rather than using "Incomplete"
> ./stubs/tqdm/tqdm/rich.pyi:17:45: Y065 Leave return type unannotated rather than using "Incomplete"
> ./stubs/tqdm/tqdm/rich.pyi:19:22: Y065 Leave parameter "task" unannotated rather than using "Incomplete"
> ./stubs/tqdm/tqdm/rich.pyi:19:43: Y065 Leave return type unannotated rather than using "Incomplete"

srittau added a commit to srittau/typeshed that referenced this pull request Mar 30, 2024
Copy link
Collaborator

@AlexWaygood AlexWaygood left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM

@srittau srittau merged commit 3d11d63 into PyCQA:main Mar 30, 2024
20 checks passed
@srittau srittau deleted the bare-incomplete branch March 30, 2024 12:27
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.

Warn about redundant Incomplete annotations
2 participants