A flake8 plugin that checks the use of type alternatives from the typing module over actual run time types, especially from the collections module.
Project description
flake8-typing-collections
A flake8 plugin that checks the use of type alternatives from
the typing module over actual run time types, especially from
the collections module.
Options
The plugin offers the following flags to select which errors to enable. All errors that are not explicitly enabled, are not reported.
--tyc_generic_alt: EnablesTYC101,TYC102,TYC103,TYC106,TYC107,TYC108,TYC109,TYC110,TYC111,TYC112,TYC114,TYC115,TYC116,TYC117,TYC118,TYC119,TYC120,TYC121,TYC122,TYC123,TYC124,TYC125,TYC126,TYC127,TYC128,TYC129,TYC130,TYC131, andTYC132.--tyc_alias_alt: EnablesTYC104,TYC105, andTYC113.--tyc_general_args: EnablesTYC200,TYC201, andTYC202.
If none of these flags is given, the default selection is used instead,
which is --tyc_generic_alt and --tyc_general_args.
Error Codes
TYC1xx class
The typing module defines several generic versions of built-in
classes, such as typing.List[T] instead of list. Their usage
is preferred.
# Good
def sum_list(x: List[SupportsFloat]) -> float:
...
# Bad
def sum_list(x: list) -> float:
...
TYC100
Use typing.Iterable instead of collections.abc.Iterable for type annotations.
TYC101
Use typing.Iterator instead of collections.abc.Iterator for type annotations.
TYC102
Use typing.Reversible instead of collections.abc.Reversible for type annotations.
TYC103
Use typing.Container instead of collections.abc.Container for type annotations.
TYC104
Use typing.Hashable instead of collections.abc.Hashable for type annotations.
TYC105
Use typing.Sized instead of collections.abc.Sized for type annotations.
TYC106
Use typing.Collection instead of collections.abc.Collection for type annotations.
TYC107
Use typing.AbstractSet instead of collections.abc.Set for type annotations.
TYC108
Use typing.MutableSet instead of collections.abc.MutableSet for type annotations.
TYC109
Use typing.Mapping instead of collections.abc.Mapping for type annotations.
TYC110
Use typing.MutableMapping instead of collections.abc.MutableMapping for type annotations.
TYC111
Use typing.Sequence instead of collections.abc.Sequence for type annotations.
TYC112
Use typing.MutableSequence instead of collections.abc.MutableSequence for type annotations.
TYC113
Use typing.ByteString instead of bytes for type annotations.
TYC114
Use typing.Deque instead of collections.Deque for type annotations.
TYC115
Use typing.List instead of list for type annotations.
TYC116
Use typing.Set instead of set for type annotations.
TYC117
Use typing.FrozenSet instead of frozenset for type annotations.
TYC118
Use typing.MappingView instead of collections.abc.MappingView for type annotations.
TYC119
Use typing.KeysView instead of collections.abc.KeysView for type annotations.
TYC120
Use typing.ItemsView instead of collections.abc.ItemsView for type annotations.
TYC121
Use typing.ValuesView instead of collections.abc.ValuesView for type annotations.
TYC122
Use typing.Awaitable instead of collections.abc.Awaitable for type annotations.
TYC123
Use typing.Coroutine instead of collections.abc.Coroutine for type annotations.
TYC124
Use typing.AsyncIterable instead of collections.abc.AsyncIterable for type annotations.
TYC125
Use typing.AsyncIterator instead of collections.abc.AsyncIterator for type annotations.
TYC126
Use typing.ContextManager instead of contextlib.AbstractContextManager for type annotations.
TYC127
Use typing.AsyncContextManager instead of contextlib.AbstractAsyncContextManager for type annotations.
TYC128
Use typing.Dict instead of dict for type annotations.
TYC129
Use typing.DefaultDict instead of collections.defaultdict for type annotations.
TYC130
Use typing.OrderedDict instead of collections.OrderedDict for type annotations.
TYC131
Use typing.Counter instead of collections.Counter for type annotations.
TYC132
Use typing.ChainMap instead of collections.ChainMap for type annotations.
TYC2xx class
The documentation of the typing module recommends to use
more general types such as typing.Sequence over specialized
types such as typing.List in function parameters.
# Good
def sum_list(x: Sequence[int]) -> int:
...
# Bad
def sum_list(x: List[int]) -> int:
...
TYC200
Use typing.Sequence or typing.MutableSequence
instead of typing.List in function arguments.
TYC201
Use typing.AbstractSet or typing.MutableSet
instead of typing.Set in function arguments.
TYC201
Use typing.Mapping or typing.MutableMapping
instead of typing.Dict in function arguments.
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file flake8_typing_collections-2.1.tar.gz.
File metadata
- Download URL: flake8_typing_collections-2.1.tar.gz
- Upload date:
- Size: 12.7 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/5.1.0 CPython/3.12.3
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
5bebe595178aafd87a7a978afdda56f8192ea5afcac278ec16e2e96dffb642e8
|
|
| MD5 |
35b99399bd2888cba8a609e156d62646
|
|
| BLAKE2b-256 |
884ca836d1f3ac4c6116a7587af0cec914d1980c84950e7a3a6346cf8318296b
|
File details
Details for the file flake8_typing_collections-2.1-py3-none-any.whl.
File metadata
- Download URL: flake8_typing_collections-2.1-py3-none-any.whl
- Upload date:
- Size: 8.9 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/5.1.0 CPython/3.12.3
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
92b64994193d314fe069188b64fabb53e189251f7a68de24bd1fc5dab05b9319
|
|
| MD5 |
1c788857cbb13618738a349a434ef1e1
|
|
| BLAKE2b-256 |
3ecc80d8bbcc5c5820d099895ae40720c54927c18d4dd45211d377aab9d86267
|