Flake8 and pylama plugin that checks the ordering of import statements.
Project description
A flake8 and Pylama plugin that checks the ordering of your imports.
In general stdlib comes first, then 3rd party, then local packages, and that each group is individually alphabetized, see Configuration section for details.
It will not check anything else about the imports. Merely that they are grouped and ordered correctly.
This plugin is under somewhat active development and is heavily influenced by the personal preferences of the developers of cryptography. Expect seemingly random changes and configuration changes as we figure out how it should work.
Warnings
This package adds 3 new flake8 warnings
I100: Your import statements are in the wrong order.
I101: The names in your from import are in the wrong order.
I201: Missing newline between sections or imports.
Configuration
You will want to set the application-import-names option to a comma separated list of names that should be considered local to your application. These will be used to help categorise your import statements into the correct groups. Note that relative imports are always considered local.
import-order-style controls what style the plugin follows (cryptography is the default):
cryptography - see an example
google - style described in Google Style Guidelines, see an example
smarkets - style as google only with import statements before from X import … statements, see an example
pep8 - style that only enforces groups without enforcing the order within the groups
Limitations
Currently these checks are limited to module scope imports only. Conditional imports in module scope will also be ignored.
Classification of an imported module is achieved by checking the module against a stdlib list and then if there is no match against the application-import-names list. Only if neither of the lists contain the imported module will it be classified as third party.
I201 only checks that groups of imports are not consecutive and only takes into account the first line of each import statement. This means that multi-line from imports, comments between imports and so on may cause this error not to be raised correctly in all situations. This restriction is due to the data provided by the stdlib ast module.
Project details
Release history Release notifications | RSS feed
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
Hashes for flake8-import-order-0.9.2.tar.gz
Algorithm | Hash digest | |
---|---|---|
SHA256 | 9aba3aa5b6e097b4e05cdd6c6c78f3d4f2bdb023211f95151616738de94913d7 |
|
MD5 | 27ea2e459b50c366b1ea777f90b60355 |
|
BLAKE2b-256 | a30f69802f132e04c1e0384c142daf0f8a3da2fbd7d1463b8eb81641c03a359c |
Hashes for flake8_import_order-0.9.2-py2.py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | a6f51ca8d1946b8887914617d84645a207e79901c0902be7374d00d341382049 |
|
MD5 | 066754ff7db714cfa7eea0b332bd618b |
|
BLAKE2b-256 | a35b946a130325f9b2df42cf3a5ab022708727377f766a8d9b30d0f1b3051281 |