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
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 |