Skip to content

Y093: Detect pseudo-protocols - #525

Open
srittau wants to merge 13 commits into
PyCQA:mainfrom
srittau:pseudo-protocols
Open

Y093: Detect pseudo-protocols#525
srittau wants to merge 13 commits into
PyCQA:mainfrom
srittau:pseudo-protocols

Conversation

@srittau

@srittau srittau commented Aug 29, 2025

Copy link
Copy Markdown
Member

Closes: #508

@github-actions

This comment has been minimized.

@github-actions

This comment has been minimized.

@srittau

srittau commented Aug 29, 2025

Copy link
Copy Markdown
Member Author

The remaining pytest errors seem unrelated. The huge typeshed diff was expected, Y092 needs to be deactivated for now, or selectively enabled. (I would start to work though that when this PR gets in and the next flake8-pyi version is released.)

@github-actions

This comment has been minimized.

@github-actions

This comment has been minimized.

@srittau

srittau commented Sep 30, 2025

Copy link
Copy Markdown
Member Author

Pingety pong

@github-actions

This comment has been minimized.

@srittau srittau changed the title Y092: Detect pseudo-protocols Y093: Detect pseudo-protocols Sep 30, 2025
@github-actions

This comment has been minimized.

@github-actions

This comment has been minimized.

@github-actions

This comment has been minimized.

@JelleZijlstra JelleZijlstra left a comment

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

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

The implementation all makes sense but I'm not sure I like the rule; Sequence in practice is often very convenient and useful and recommending against it would make typing unnecessarily more verbose. Maybe it makes sense for typeshed itself but even there I'm not sure.

Comment thread CHANGELOG.md Outdated
Co-authored-by: Jelle Zijlstra <jelle.zijlstra@gmail.com>
@srittau

srittau commented Jul 27, 2026

Copy link
Copy Markdown
Member Author

The implementation all makes sense but I'm not sure I like the rule; Sequence in practice is often very convenient and useful and recommending against it would make typing unnecessarily more verbose. Maybe it makes sense for typeshed itself but even there I'm not sure.

That's the reason why I put it in the optional group. People can use it, but have to. This also has a companion PR in python/typeshed#15152 that makes it more convenient to replace Sequence.

@github-actions

Copy link
Copy Markdown

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

> ./stdlib/_bisect.pyi:79:8: Y093 Don't use pseudo-protocol "MutableSequence" as parameter type. Use a protocol instead.
> ./stdlib/_bisect.pyi:88:8: Y093 Don't use pseudo-protocol "MutableSequence" as parameter type. Use a protocol instead.
> ./stdlib/_bisect.pyi:93:8: Y093 Don't use pseudo-protocol "MutableSequence" as parameter type. Use a protocol instead.
> ./stdlib/_bisect.pyi:102:8: Y093 Don't use pseudo-protocol "MutableSequence" as parameter type. Use a protocol instead.
> ./stdlib/_frozen_importlib.pyi:14:14: Y093 Don't use pseudo-protocol "Mapping" as parameter type. Use a protocol instead.
> ./stdlib/_frozen_importlib.pyi:15:13: Y093 Don't use pseudo-protocol "Mapping" as parameter type. Use a protocol instead.
> ./stdlib/_frozen_importlib.pyi:16:15: Y093 Don't use pseudo-protocol "Sequence" as parameter type. Use a protocol instead.
> ./stdlib/_frozen_importlib.pyi:54:51: Y093 Don't use pseudo-protocol "Sequence" as parameter type. Use a protocol instead.
> ./stdlib/_frozen_importlib.pyi:58:35: Y093 Don't use pseudo-protocol "Sequence" as parameter type. Use a protocol instead.
> ./stdlib/_frozen_importlib.pyi:88:51: Y093 Don't use pseudo-protocol "Sequence" as parameter type. Use a protocol instead.
> ./stdlib/_frozen_importlib.pyi:92:35: Y093 Don't use pseudo-protocol "Sequence" as parameter type. Use a protocol instead.
> ./stdlib/_frozen_importlib_external.pyi:52:51: Y093 Don't use pseudo-protocol "Sequence" as parameter type. Use a protocol instead.
> ./stdlib/_frozen_importlib_external.pyi:56:35: Y093 Don't use pseudo-protocol "Sequence" as parameter type. Use a protocol instead.
> ./stdlib/_frozen_importlib_external.pyi:66:35: Y093 Don't use pseudo-protocol "Sequence" as parameter type. Use a protocol instead.
> ./stdlib/_frozen_importlib_external.pyi:71:51: Y093 Don't use pseudo-protocol "Sequence" as parameter type. Use a protocol instead.
> ./stdlib/_frozen_importlib_external.pyi:140:36: Y093 Don't use pseudo-protocol "MutableSequence" as parameter type. Use a protocol instead.
> ./stdlib/_frozen_importlib_external.pyi:162:36: Y093 Don't use pseudo-protocol "MutableSequence" as parameter type. Use a protocol instead.
> ./stdlib/_operator.pyi:109:15: Y093 Don't use pseudo-protocol "Sequence" as parameter type. Use a protocol instead.
> ./stdlib/_operator.pyi:109:32: Y093 Don't use pseudo-protocol "Sequence" as parameter type. Use a protocol instead.
> ./stdlib/_operator.pyi:114:16: Y093 Don't use pseudo-protocol "MutableSequence" as parameter type. Use a protocol instead.
> ./stdlib/_operator.pyi:116:16: Y093 Don't use pseudo-protocol "MutableSequence" as parameter type. Use a protocol instead.
> ./stdlib/_operator.pyi:118:16: Y093 Don't use pseudo-protocol "MutableMapping" as parameter type. Use a protocol instead.
> ./stdlib/_operator.pyi:121:16: Y093 Don't use pseudo-protocol "Sequence" as parameter type. Use a protocol instead.
> ./stdlib/_operator.pyi:128:16: Y093 Don't use pseudo-protocol "MutableSequence" as parameter type. Use a protocol instead.
> ./stdlib/_operator.pyi:130:16: Y093 Don't use pseudo-protocol "MutableSequence" as parameter type. Use a protocol instead.
> ./stdlib/_operator.pyi:130:62: Y093 Don't use pseudo-protocol "Sequence" as parameter type. Use a protocol instead.
> ./stdlib/_operator.pyi:132:16: Y093 Don't use pseudo-protocol "MutableMapping" as parameter type. Use a protocol instead.
> ./stdlib/_osx_support.pyi:29:57: Y093 Don't use pseudo-protocol "Sequence" as parameter type. Use a protocol instead.
> ./stdlib/_posixsubprocess.pyi:9:19: Y093 Don't use pseudo-protocol "Sequence" as parameter type. Use a protocol instead.
> ./stdlib/_posixsubprocess.pyi:10:30: Y093 Don't use pseudo-protocol "Sequence" as parameter type. Use a protocol instead.
> ./stdlib/_posixsubprocess.pyi:14:18: Y093 Don't use pseudo-protocol "Sequence" as parameter type. Use a protocol instead.
> ./stdlib/_posixsubprocess.pyi:35:19: Y093 Don't use pseudo-protocol "Sequence" as parameter type. Use a protocol instead.
> ./stdlib/_posixsubprocess.pyi:36:30: Y093 Don't use pseudo-protocol "Sequence" as parameter type. Use a protocol instead.
> ./stdlib/_posixsubprocess.pyi:40:18: Y093 Don't use pseudo-protocol "Sequence" as parameter type. Use a protocol instead.
> ./stdlib/_typeshed/dbapi.pyi:27:51: Y093 Don't use pseudo-protocol "Sequence" as parameter type. Use a protocol instead.
> ./stdlib/_typeshed/dbapi.pyi:27:67: Y093 Don't use pseudo-protocol "Mapping" as parameter type. Use a protocol instead.
> ./stdlib/_typeshed/dbapi.pyi:28:62: Y093 Don't use pseudo-protocol "Sequence" as parameter type. Use a protocol instead.
> ./stdlib/_typeshed/dbapi.pyi:28:71: Y093 Don't use pseudo-protocol "Sequence" as parameter type. Use a protocol instead.
> ./stdlib/_typeshed/dbapi.pyi:35:36: Y093 Don't use pseudo-protocol "Sequence" as parameter type. Use a protocol instead.
> ./stdlib/_typeshed/importlib.pyi:15:46: Y093 Don't use pseudo-protocol "Sequence" as parameter type. Use a protocol instead.
> ./stdlib/_winapi.pyi:279:44: Y093 Don't use pseudo-protocol "Sequence" as parameter type. Use a protocol instead.
> ./stdlib/_winapi.pyi:299:25: Y093 Don't use pseudo-protocol "Sequence" as parameter type. Use a protocol instead.
> ./stdlib/_zstd.pyi:51:18: Y093 Don't use pseudo-protocol "Mapping" as parameter type. Use a protocol instead.
> ./stdlib/_zstd.pyi:65:81: Y093 Don't use pseudo-protocol "Mapping" as parameter type. Use a protocol instead.
> ./stdlib/annotationlib.pyi:59:21: Y093 Don't use pseudo-protocol "Mapping" as parameter type. Use a protocol instead.
> ./stdlib/annotationlib.pyi:69:21: Y093 Don't use pseudo-protocol "Mapping" as parameter type. Use a protocol instead.
> ./stdlib/annotationlib.pyi:79:21: Y093 Don't use pseudo-protocol "Mapping" as parameter type. Use a protocol instead.
> ./stdlib/annotationlib.pyi:89:22: Y093 Don't use pseudo-protocol "Mapping" as parameter type. Use a protocol instead.
> ./stdlib/annotationlib.pyi:125:48: Y093 Don't use pseudo-protocol "Mapping" as parameter type. Use a protocol instead.
> ./stdlib/annotationlib.pyi:132:17: Y093 Don't use pseudo-protocol "Mapping" as parameter type. Use a protocol instead.
> ./stdlib/annotationlib.pyi:141:17: Y093 Don't use pseudo-protocol "Mapping" as parameter type. Use a protocol instead.
> ./stdlib/annotationlib.pyi:150:17: Y093 Don't use pseudo-protocol "Mapping" as parameter type. Use a protocol instead.
> ./stdlib/argparse.pyi:298:49: Y093 Don't use pseudo-protocol "Sequence" as parameter type. Use a protocol instead.
> ./stdlib/argparse.pyi:404:29: Y093 Don't use pseudo-protocol "Sequence" as parameter type. Use a protocol instead.
> ./stdlib/argparse.pyi:419:29: Y093 Don't use pseudo-protocol "Sequence" as parameter type. Use a protocol instead.
> ./stdlib/argparse.pyi:432:75: Y093 Don't use pseudo-protocol "Sequence" as parameter type. Use a protocol instead.
> ./stdlib/argparse.pyi:441:33: Y093 Don't use pseudo-protocol "Sequence" as parameter type. Use a protocol instead.
> ./stdlib/argparse.pyi:452:33: Y093 Don't use pseudo-protocol "Sequence" as parameter type. Use a protocol instead.
> ./stdlib/argparse.pyi:464:33: Y093 Don't use pseudo-protocol "Sequence" as parameter type. Use a protocol instead.
> ./stdlib/argparse.pyi:478:33: Y093 Don't use pseudo-protocol "Sequence" as parameter type. Use a protocol instead.
> ./stdlib/argparse.pyi:489:33: Y093 Don't use pseudo-protocol "Sequence" as parameter type. Use a protocol instead.
> ./stdlib/argparse.pyi:504:29: Y093 Don't use pseudo-protocol "Sequence" as parameter type. Use a protocol instead.
> ./stdlib/argparse.pyi:515:29: Y093 Don't use pseudo-protocol "Sequence" as parameter type. Use a protocol instead.
> ./stdlib/argparse.pyi:585:29: Y093 Don't use pseudo-protocol "Sequence" as parameter type. Use a protocol instead.
> ./stdlib/argparse.pyi:597:29: Y093 Don't use pseudo-protocol "Sequence" as parameter type. Use a protocol instead.
> ./stdlib/argparse.pyi:608:29: Y093 Don't use pseudo-protocol "Sequence" as parameter type. Use a protocol instead.
> ./stdlib/argparse.pyi:622:29: Y093 Don't use pseudo-protocol "Sequence" as parameter type. Use a protocol instead.
> ./stdlib/argparse.pyi:631:35: Y093 Don't use pseudo-protocol "Sequence" as parameter type. Use a protocol instead.
> ./stdlib/argparse.pyi:639:29: Y093 Don't use pseudo-protocol "Sequence" as parameter type. Use a protocol instead.
> ./stdlib/argparse.pyi:648:35: Y093 Don't use pseudo-protocol "Sequence" as parameter type. Use a protocol instead.
> ./stdlib/argparse.pyi:662:29: Y093 Don't use pseudo-protocol "Sequence" as parameter type. Use a protocol instead.
> ./stdlib/argparse.pyi:674:29: Y093 Don't use pseudo-protocol "Sequence" as parameter type. Use a protocol instead.
> ./stdlib/argparse.pyi:685:29: Y093 Don't use pseudo-protocol "Sequence" as parameter type. Use a protocol instead.
> ./stdlib/argparse.pyi:699:29: Y093 Don't use pseudo-protocol "Sequence" as parameter type. Use a protocol instead.
> ./stdlib/argparse.pyi:708:35: Y093 Don't use pseudo-protocol "Sequence" as parameter type. Use a protocol instead.
> ./stdlib/argparse.pyi:716:29: Y093 Don't use pseudo-protocol "Sequence" as parameter type. Use a protocol instead.
> ./stdlib/argparse.pyi:725:29: Y093 Don't use pseudo-protocol "Sequence" as parameter type. Use a protocol instead.
> ./stdlib/argparse.pyi:737:29: Y093 Don't use pseudo-protocol "Sequence" as parameter type. Use a protocol instead.
> ./stdlib/argparse.pyi:747:29: Y093 Don't use pseudo-protocol "Sequence" as parameter type. Use a protocol instead.
> ./stdlib/argparse.pyi:756:29: Y093 Don't use pseudo-protocol "Sequence" as parameter type. Use a protocol instead.
> ./stdlib/argparse.pyi:773:25: Y093 Don't use pseudo-protocol "Sequence" as parameter type. Use a protocol instead.
> ./stdlib/ast.pyi:2083:31: Y093 Don't use pseudo-protocol "Set" as parameter type. Use a protocol instead.
> ./stdlib/ast.pyi:2196:20: Y093 Don't use pseudo-protocol "Sequence" as parameter type. Use a protocol instead.
> ./stdlib/asyncio/base_events.pyi:245:25: Y093 Don't use pseudo-protocol "Sequence" as parameter type. Use a protocol instead.
> ./stdlib/asyncio/base_events.pyi:284:25: Y093 Don't use pseudo-protocol "Sequence" as parameter type. Use a protocol instead.
> ./stdlib/asyncio/base_events.pyi:321:25: Y093 Don't use pseudo-protocol "Sequence" as parameter type. Use a protocol instead.
> ./stdlib/asyncio/base_futures.pyi:16:27: Y093 Don't use pseudo-protocol "Sequence" as parameter type. Use a protocol instead.
> ./stdlib/asyncio/base_subprocess.pyi:25:29: Y093 Don't use pseudo-protocol "Sequence" as parameter type. Use a protocol instead.
> ./stdlib/asyncio/base_subprocess.pyi:37:29: Y093 Don't use pseudo-protocol "Sequence" as parameter type. Use a protocol instead.
> ./stdlib/asyncio/events.pyi:80:54: Y093 Don't use pseudo-protocol "Sequence" as parameter type. Use a protocol instead.
> ./stdlib/asyncio/events.pyi:94:15: Y093 Don't use pseudo-protocol "Sequence" as parameter type. Use a protocol instead.
> ./stdlib/asyncio/events.pyi:300:25: Y093 Don't use pseudo-protocol "Sequence" as parameter type. Use a protocol instead.
> ./stdlib/asyncio/events.pyi:341:25: Y093 Don't use pseudo-protocol "Sequence" as parameter type. Use a protocol instead.
> ./stdlib/asyncio/events.pyi:380:25: Y093 Don't use pseudo-protocol "Sequence" as parameter type. Use a protocol instead.
> ./stdlib/asyncio/proactor_events.pyi:16:16: Y093 Don't use pseudo-protocol "Mapping" as parameter type. Use a protocol instead.
> ./stdlib/asyncio/proactor_events.pyi:28:16: Y093 Don't use pseudo-protocol "Mapping" as parameter type. Use a protocol instead.
> ./stdlib/asyncio/proactor_events.pyi:45:16: Y093 Don't use pseudo-protocol "Mapping" as parameter type. Use a protocol instead.
> ./stdlib/asyncio/streams.pyi:41:17: Y093 Don't use pseudo-protocol "Sequence" as parameter type. Use a protocol instead.
> ./stdlib/asyncio/transports.pyi:12:31: Y093 Don't use pseudo-protocol "Mapping" as parameter type. Use a protocol instead.
> ./stdlib/asyncio/transports.pyi:57:31: Y093 Don't use pseudo-protocol "Mapping" as parameter type. Use a protocol instead.
> ./stdlib/bdb.pyi:91:17: Y093 Don't use pseudo-protocol "Mapping" as parameter type. Use a protocol instead.
> ./stdlib/bdb.pyi:94:93: Y093 Don't use pseudo-protocol "Mapping" as parameter type. Use a protocol instead.
> ./stdlib/bdb.pyi:100:17: Y093 Don't use pseudo-protocol "Mapping" as parameter type. Use a protocol instead.
> ./stdlib/builtins.pyi:1709:17: Y093 Don't use pseudo-protocol "Mapping" as parameter type. Use a protocol instead.
> ./stdlib/builtins.pyi:1717:17: Y093 Don't use pseudo-protocol "Mapping" as parameter type. Use a protocol instead.
> ./stdlib/builtins.pyi:1724:17: Y093 Don't use pseudo-protocol "Mapping" as parameter type. Use a protocol instead.
> ./stdlib/builtins.pyi:1734:17: Y093 Don't use pseudo-protocol "Mapping" as parameter type. Use a protocol instead.
> ./stdlib/builtins.pyi:1744:17: Y093 Don't use pseudo-protocol "Mapping" as parameter type. Use a protocol instead.
> ./stdlib/builtins.pyi:1753:17: Y093 Don't use pseudo-protocol "Mapping" as parameter type. Use a protocol instead.
> ./stdlib/builtins.pyi:1763:17: Y093 Don't use pseudo-protocol "Mapping" as parameter type. Use a protocol instead.
> ./stdlib/builtins.pyi:2289:14: Y093 Don't use pseudo-protocol "Mapping" as parameter type. Use a protocol instead.
> ./stdlib/builtins.pyi:2290:13: Y093 Don't use pseudo-protocol "Mapping" as parameter type. Use a protocol instead.
> ./stdlib/builtins.pyi:2291:15: Y093 Don't use pseudo-protocol "Sequence" as parameter type. Use a protocol instead.
> ./stdlib/builtins.pyi:2298:18: Y093 Don't use pseudo-protocol "Mapping" as parameter type. Use a protocol instead.
> ./stdlib/builtins.pyi:2299:17: Y093 Don't use pseudo-protocol "Mapping" as parameter type. Use a protocol instead.
> ./stdlib/builtins.pyi:2300:19: Y093 Don't use pseudo-protocol "Sequence" as parameter type. Use a protocol instead.
> ./stdlib/builtins.pyi:2508:52: Y093 Don't use pseudo-protocol "Sequence" as parameter type. Use a protocol instead.
> ./stdlib/builtins.pyi:2509:54: Y093 Don't use pseudo-protocol "Sequence" as parameter type. Use a protocol instead.
> ./stdlib/builtins.pyi:2543:32: Y093 Don't use pseudo-protocol "Sequence" as parameter type. Use a protocol instead.
> ./stdlib/builtins.pyi:2545:32: Y093 Don't use pseudo-protocol "Sequence" as parameter type. Use a protocol instead.
> ./stdlib/builtins.pyi:2550:52: Y093 Don't use pseudo-protocol "Sequence" as parameter type. Use a protocol instead.
> ./stdlib/builtins.pyi:2551:54: Y093 Don't use pseudo-protocol "Sequence" as parameter type. Use a protocol instead.
> ./stdlib/cProfile.pyi:13:54: Y093 Don't use pseudo-protocol "Mapping" as parameter type. Use a protocol instead.
> ./stdlib/cProfile.pyi:27:65: Y093 Don't use pseudo-protocol "Mapping" as parameter type. Use a protocol instead.
> ./stdlib/cgi.pyi:88:18: Y093 Don't use pseudo-protocol "Mapping" as parameter type. Use a protocol instead.
> ./stdlib/collections/__init__.pyi:207:35: Y093 Don't use pseudo-protocol "Mapping" as parameter type. Use a protocol instead.
> ./stdlib/collections/__init__.pyi:308:33: Y093 Don't use pseudo-protocol "Mapping" as parameter type. Use a protocol instead.
> ./stdlib/collections/__init__.pyi:319:25: Y093 Don't use pseudo-protocol "Mapping" as parameter type. Use a protocol instead.
> ./stdlib/collections/__init__.pyi:496:31: Y093 Don't use pseudo-protocol "MutableMapping" as parameter type. Use a protocol instead.
> ./stdlib/collections/__init__.pyi:497:28: Y093 Don't use pseudo-protocol "MutableMapping" as parameter type. Use a protocol instead.
> ./stdlib/collections/__init__.pyi:552:29: Y093 Don't use pseudo-protocol "Mapping" as parameter type. Use a protocol instead.
> ./stdlib/collections/__init__.pyi:554:29: Y093 Don't use pseudo-protocol "Mapping" as parameter type. Use a protocol instead.
> ./stdlib/collections/__init__.pyi:557:30: Y093 Don't use pseudo-protocol "Mapping" as parameter type. Use a protocol instead.
> ./stdlib/collections/__init__.pyi:559:30: Y093 Don't use pseudo-protocol "Mapping" as parameter type. Use a protocol instead.
> ./stdlib/compression/zstd/__init__.pyi:49:14: Y093 Don't use pseudo-protocol "Mapping" as parameter type. Use a protocol instead.
> ./stdlib/compression/zstd/__init__.pyi:53:94: Y093 Don't use pseudo-protocol "Mapping" as parameter type. Use a protocol instead.
> ./stdlib/compression/zstd/_zstdfile.pyi:37:18: Y093 Don't use pseudo-protocol "Mapping" as parameter type. Use a protocol instead.
> ./stdlib/compression/zstd/_zstdfile.pyi:48:18: Y093 Don't use pseudo-protocol "Mapping" as parameter type. Use a protocol instead.
> ./stdlib/compression/zstd/_zstdfile.pyi:73:14: Y093 Don't use pseudo-protocol "Mapping" as parameter type. Use a protocol instead.
> ./stdlib/compression/zstd/_zstdfile.pyi:86:14: Y093 Don't use pseudo-protocol "Mapping" as parameter type. Use a protocol instead.
> ./stdlib/compression/zstd/_zstdfile.pyi:99:14: Y093 Don't use pseudo-protocol "Mapping" as parameter type. Use a protocol instead.
> ./stdlib/compression/zstd/_zstdfile.pyi:112:14: Y093 Don't use pseudo-protocol "Mapping" as parameter type. Use a protocol instead.
> ./stdlib/concurrent/futures/process.pyi:52:96: Y093 Don't use pseudo-protocol "Mapping" as parameter type. Use a protocol instead.
> ./stdlib/concurrent/futures/process.pyi:71:91: Y093 Don't use pseudo-protocol "Mapping" as parameter type. Use a protocol instead.
> ./stdlib/concurrent/futures/process.pyi:164:54: Y093 Don't use pseudo-protocol "MutableSequence" as parameter type. Use a protocol instead.
> ./stdlib/concurrent/futures/thread.pyi:72:100: Y093 Don't use pseudo-protocol "Mapping" as parameter type. Use a protocol instead.
> ./stdlib/configparser.pyi:162:23: Y093 Don't use pseudo-protocol "Mapping" as parameter type. Use a protocol instead.
> ./stdlib/configparser.pyi:163:29: Y093 Don't use pseudo-protocol "Mapping" as parameter type. Use a protocol instead.
> ./stdlib/configparser.pyi:166:25: Y093 Don't use pseudo-protocol "Sequence" as parameter type. Use a protocol instead.
> ./stdlib/configparser.pyi:167:31: Y093 Don't use pseudo-protocol "Sequence" as parameter type. Use a protocol instead.
> ./stdlib/configparser.pyi:168:38: Y093 Don't use pseudo-protocol "Sequence" as parameter type. Use a protocol instead.
> ./stdlib/configparser.pyi:179:23: Y093 Don't use pseudo-protocol "Mapping" as parameter type. Use a protocol instead.
> ./stdlib/configparser.pyi:180:29: Y093 Don't use pseudo-protocol "Mapping" as parameter type. Use a protocol instead.
> ./stdlib/configparser.pyi:183:25: Y093 Don't use pseudo-protocol "Sequence" as parameter type. Use a protocol instead.
> ./stdlib/configparser.pyi:184:31: Y093 Don't use pseudo-protocol "Sequence" as parameter type. Use a protocol instead.
> ./stdlib/configparser.pyi:185:38: Y093 Don't use pseudo-protocol "Sequence" as parameter type. Use a protocol instead.
> ./stdlib/configparser.pyi:197:29: Y093 Don't use pseudo-protocol "Mapping" as parameter type. Use a protocol instead.
> ./stdlib/configparser.pyi:200:25: Y093 Don't use pseudo-protocol "Sequence" as parameter type. Use a protocol instead.
> ./stdlib/configparser.pyi:201:31: Y093 Don't use pseudo-protocol "Sequence" as parameter type. Use a protocol instead.
> ./stdlib/configparser.pyi:202:38: Y093 Don't use pseudo-protocol "Sequence" as parameter type. Use a protocol instead.
> ./stdlib/configparser.pyi:214:23: Y093 Don't use pseudo-protocol "Mapping" as parameter type. Use a protocol instead.
> ./stdlib/configparser.pyi:215:29: Y093 Don't use pseudo-protocol "Mapping" as parameter type. Use a protocol instead.
> ./stdlib/configparser.pyi:218:25: Y093 Don't use pseudo-protocol "Sequence" as parameter type. Use a protocol instead.
> ./stdlib/configparser.pyi:219:31: Y093 Don't use pseudo-protocol "Sequence" as parameter type. Use a protocol instead.
> ./stdlib/configparser.pyi:220:38: Y093 Don't use pseudo-protocol "Sequence" as parameter type. Use a protocol instead.
> ./stdlib/configparser.pyi:230:23: Y093 Don't use pseudo-protocol "Mapping" as parameter type. Use a protocol instead.
> ./stdlib/configparser.pyi:231:29: Y093 Don't use pseudo-protocol "Mapping" as parameter type. Use a protocol instead.
> ./stdlib/configparser.pyi:234:25: Y093 Don't use pseudo-protocol "Sequence" as parameter type. Use a protocol instead.
> ./stdlib/configparser.pyi:235:31: Y093 Don't use pseudo-protocol "Sequence" as parameter type. Use a protocol instead.
> ./stdlib/configparser.pyi:236:38: Y093 Don't use pseudo-protocol "Sequence" as parameter type. Use a protocol instead.
> ./stdlib/configparser.pyi:247:29: Y093 Don't use pseudo-protocol "Mapping" as parameter type. Use a protocol instead.
> ./stdlib/configparser.pyi:250:25: Y093 Don't use pseudo-protocol "Sequence" as parameter type. Use a protocol instead.
> ./stdlib/configparser.pyi:251:31: Y093 Don't use pseudo-protocol "Sequence" as parameter type. Use a protocol instead.
> ./stdlib/configparser.pyi:252:38: Y093 Don't use pseudo-protocol "Sequence" as parameter type. Use a protocol instead.
> ./stdlib/configparser.pyi:284:37: Y093 Don't use pseudo-protocol "Mapping" as parameter type. Use a protocol instead.
> ./stdlib/csv.pyi:84:21: Y093 Don't use pseudo-protocol "Sequence" as parameter type. Use a protocol instead.
> ./stdlib/csv.pyi:102:21: Y093 Don't use pseudo-protocol "Sequence" as parameter type. Use a protocol instead.
> ./stdlib/csv.pyi:145:33: Y093 Don't use pseudo-protocol "Mapping" as parameter type. Use a protocol instead.
> ./stdlib/csv.pyi:146:44: Y093 Don't use pseudo-protocol "Mapping" as parameter type. Use a protocol instead.
> ./stdlib/ctypes/macholib/dyld.pyi:7:67: Y093 Don't use pseudo-protocol "Mapping" as parameter type. Use a protocol instead.
> ./stdlib/ctypes/macholib/dyld.pyi:8:70: Y093 Don't use pseudo-protocol "Mapping" as parameter type. Use a protocol instead.
> ./stdlib/dataclasses.pyi:197:23: Y093 Don't use pseudo-protocol "Mapping" as parameter type. Use a protocol instead.
> ./stdlib/dataclasses.pyi:210:23: Y093 Don't use pseudo-protocol "Mapping" as parameter type. Use a protocol instead.
> ./stdlib/dataclasses.pyi:229:19: Y093 Don't use pseudo-protocol "Mapping" as parameter type. Use a protocol instead.
> ./stdlib/dataclasses.pyi:242:19: Y093 Don't use pseudo-protocol "Mapping" as parameter type. Use a protocol instead.
> ./stdlib/dataclasses.pyi:255:19: Y093 Don't use pseudo-protocol "Mapping" as parameter type. Use a protocol instead.
> ./stdlib/dataclasses.pyi:269:19: Y093 Don't use pseudo-protocol "Mapping" as parameter type. Use a protocol instead.
> ./stdlib/dataclasses.pyi:281:19: Y093 Don't use pseudo-protocol "Mapping" as parameter type. Use a protocol instead.
> ./stdlib/dataclasses.pyi:293:19: Y093 Don't use pseudo-protocol "Mapping" as parameter type. Use a protocol instead.
> ./stdlib/difflib.pyi:31:64: Y093 Don't use pseudo-protocol "Sequence" as parameter type. Use a protocol instead.
> ./stdlib/difflib.pyi:31:81: Y093 Don't use pseudo-protocol "Sequence" as parameter type. Use a protocol instead.
> ./stdlib/difflib.pyi:33:30: Y093 Don't use pseudo-protocol "Sequence" as parameter type. Use a protocol instead.
> ./stdlib/difflib.pyi:33:47: Y093 Don't use pseudo-protocol "Sequence" as parameter type. Use a protocol instead.
> ./stdlib/difflib.pyi:38:12: Y093 Don't use pseudo-protocol "Sequence" as parameter type. Use a protocol instead.
> ./stdlib/difflib.pyi:39:12: Y093 Don't use pseudo-protocol "Sequence" as parameter type. Use a protocol instead.
> ./stdlib/difflib.pyi:43:27: Y093 Don't use pseudo-protocol "Sequence" as parameter type. Use a protocol instead.
> ./stdlib/difflib.pyi:43:44: Y093 Don't use pseudo-protocol "Sequence" as parameter type. Use a protocol instead.
> ./stdlib/difflib.pyi:44:27: Y093 Don't use pseudo-protocol "Sequence" as parameter type. Use a protocol instead.
> ./stdlib/difflib.pyi:45:27: Y093 Don't use pseudo-protocol "Sequence" as parameter type. Use a protocol instead.
> ./stdlib/difflib.pyi:59:11: Y093 Don't use pseudo-protocol "Sequence" as parameter type. Use a protocol instead.
> ./stdlib/difflib.pyi:59:49: Y093 Don't use pseudo-protocol "Sequence" as parameter type. Use a protocol instead.
> ./stdlib/difflib.pyi:64:26: Y093 Don't use pseudo-protocol "Sequence" as parameter type. Use a protocol instead.
> ./stdlib/difflib.pyi:64:44: Y093 Don't use pseudo-protocol "Sequence" as parameter type. Use a protocol instead.
> ./stdlib/difflib.pyi:76:12: Y093 Don't use pseudo-protocol "Sequence" as parameter type. Use a protocol instead.
> ./stdlib/difflib.pyi:77:12: Y093 Don't use pseudo-protocol "Sequence" as parameter type. Use a protocol instead.
> ./stdlib/difflib.pyi:90:12: Y093 Don't use pseudo-protocol "Sequence" as parameter type. Use a protocol instead.
> ./stdlib/difflib.pyi:91:12: Y093 Don't use pseudo-protocol "Sequence" as parameter type. Use a protocol instead.
> ./stdlib/difflib.pyi:101:8: Y093 Don't use pseudo-protocol "Sequence" as parameter type. Use a protocol instead.
> ./stdlib/difflib.pyi:102:8: Y093 Don't use pseudo-protocol "Sequence" as parameter type. Use a protocol instead.
> ./stdlib/difflib.pyi:111:8: Y093 Don't use pseudo-protocol "Sequence" as parameter type. Use a protocol instead.
> ./stdlib/difflib.pyi:112:8: Y093 Don't use pseudo-protocol "Sequence" as parameter type. Use a protocol instead.
> ./stdlib/difflib.pyi:127:20: Y093 Don't use pseudo-protocol "Sequence" as parameter type. Use a protocol instead.
> ./stdlib/difflib.pyi:128:18: Y093 Don't use pseudo-protocol "Sequence" as parameter type. Use a protocol instead.
> ./stdlib/difflib.pyi:138:20: Y093 Don't use pseudo-protocol "Sequence" as parameter type. Use a protocol instead.
> ./stdlib/difflib.pyi:139:18: Y093 Don't use pseudo-protocol "Sequence" as parameter type. Use a protocol instead.
> ./stdlib/distutils/ccompiler.pyi:66:18: Y093 Don't use pseudo-protocol "Sequence" as parameter type. Use a protocol instead.
> ./stdlib/distutils/command/config.pyi:29:18: Y093 Don't use pseudo-protocol "Sequence" as parameter type. Use a protocol instead.
> ./stdlib/distutils/command/config.pyi:30:23: Y093 Don't use pseudo-protocol "Sequence" as parameter type. Use a protocol instead.
> ./stdlib/distutils/command/config.pyi:37:18: Y093 Don't use pseudo-protocol "Sequence" as parameter type. Use a protocol instead.
> ./stdlib/distutils/command/config.pyi:38:23: Y093 Don't use pseudo-protocol "Sequence" as parameter type. Use a protocol instead.
> ./stdlib/distutils/command/config.pyi:42:35: Y093 Don't use pseudo-protocol "Sequence" as parameter type. Use a protocol instead.
> ./stdlib/distutils/command/config.pyi:42:78: Y093 Don't use pseudo-protocol "Sequence" as parameter type. Use a protocol instead.
> ./stdlib/distutils/command/config.pyi:47:18: Y093 Don't use pseudo-protocol "Sequence" as parameter type. Use a protocol instead.
> ./stdlib/distutils/command/config.pyi:48:23: Y093 Don't use pseudo-protocol "Sequence" as parameter type. Use a protocol instead.
> ./stdlib/distutils/command/config.pyi:49:20: Y093 Don't use pseudo-protocol "Sequence" as parameter type. Use a protocol instead.
> ./stdlib/distutils/command/config.pyi:50:23: Y093 Don't use pseudo-protocol "Sequence" as parameter type. Use a protocol instead.
> ./stdlib/distutils/command/config.pyi:56:18: Y093 Don't use pseudo-protocol "Sequence" as parameter type. Use a protocol instead.
> ./stdlib/distutils/command/config.pyi:57:23: Y093 Don't use pseudo-protocol "Sequence" as parameter type. Use a protocol instead.
> ./stdlib/distutils/command/config.pyi:58:20: Y093 Don't use pseudo-protocol "Sequence" as parameter type. Use a protocol instead.
> ./stdlib/distutils/command/config.pyi:59:23: Y093 Don't use pseudo-protocol "Sequence" as parameter type. Use a protocol instead.
> ./stdlib/distutils/command/config.pyi:65:18: Y093 Don't use pseudo-protocol "Sequence" as parameter type. Use a protocol instead.
> ./stdlib/distutils/command/config.pyi:66:23: Y093 Don't use pseudo-protocol "Sequence" as parameter type. Use a protocol instead.
> ./stdlib/distutils/command/config.pyi:67:20: Y093 Don't use pseudo-protocol "Sequence" as parameter type. Use a protocol instead.
> ./stdlib/distutils/command/config.pyi:68:23: Y093 Don't use pseudo-protocol "Sequence" as parameter type. Use a protocol instead.
> ./stdlib/distutils/command/config.pyi:75:23: Y093 Don't use pseudo-protocol "Sequence" as parameter type. Use a protocol instead.
> ./stdlib/distutils/command/config.pyi:76:18: Y093 Don't use pseudo-protocol "Sequence" as parameter type. Use a protocol instead.
> ./stdlib/distutils/command/config.pyi:77:23: Y093 Don't use pseudo-protocol "Sequence" as parameter type. Use a protocol instead.
> ./stdlib/distutils/command/config.pyi:81:42: Y093 Don't use pseudo-protocol "Sequence" as parameter type. Use a protocol instead.
> ./stdlib/distutils/command/config.pyi:81:85: Y093 Don't use pseudo-protocol "Sequence" as parameter type. Use a protocol instead.
> ./stdlib/distutils/core.pyi:35:14: Y093 Don't use pseudo-protocol "Mapping" as parameter type. Use a protocol instead.
> ./stdlib/distutils/core.pyi:39:15: Y093 Don't use pseudo-protocol "Mapping" as parameter type. Use a protocol instead.
> ./stdlib/distutils/core.pyi:41:18: Y093 Don't use pseudo-protocol "Mapping" as parameter type. Use a protocol instead.
> ./stdlib/distutils/core.pyi:46:22: Y093 Don't use pseudo-protocol "Mapping" as parameter type. Use a protocol instead.
> ./stdlib/distutils/core.pyi:47:19: Y093 Don't use pseudo-protocol "Mapping" as parameter type. Use a protocol instead.
> ./stdlib/distutils/dist.pyi:82:31: Y093 Don't use pseudo-protocol "MutableMapping" as parameter type. Use a protocol instead.
> ./stdlib/distutils/fancy_getopt.pyi:32:43: Y093 Don't use pseudo-protocol "Mapping" as parameter type. 

... (truncated 1888 lines) ...

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.

Check for pseudo-Protocols in argument types

2 participants