ruler501's flake8-import-order plugin.
Project description
flake8-import-order-ruler501
A flake8-import-order ordering definition, defining ruler501's preferred import order style. Originally based on flake8-import-order-grok
The import order enforced by this style is:
__future__
- builtins
- third-party, grouped separately by package
- Application packages by package
- Relative imports
All groups of imports require a line break between them, except packages within your application.
All imports must be alphabetical horizontally and vertically.
from
import groups are on separate lines sorted by constants first, followed by classes, followed by functions (i.e. CAPITAL_CASE, CamelCase, underscore_case).
The names of the application packages can be configured via the application-import-names
setting in flake8
.
For example, if application-import-names
is set to my_project
, this import ordering enforces the following ordering:
# coding: utf-8
from __future__ import absolute_import, print_function, unicode_literals # 1. `__future__`
import io # 2. Builtins.
import logging
import os
import tarfile
from django.conf import settings # 3.1 django
from django.utils.http import urlencode
from dns.exception import DNSException, Timeout # 3.2
from dns.resolver import NXDOMAIN
from dns.resolver import NoAnswer, Resolver
import requests # 3.3
import ujson #3.4
from my_project.views import MainView # 4. Application packages.
from my_project.core.enums import Enum
from my_project.utils.download import DOWNLOAD_TIMEOUT
from my_project.utils.download import InvalidURLException
from my_project.utils.download import download_content_url
from .models import Article
Usage
Install the flake8-import-order-ruler501
package using pip
, then tell flake8
to use this import order style using the --import-order-style=ruler501
command-line option, or by setting it in setup.cfg
.
The names of your application package(s) can be set by the application-import-names
setting:
[flake8]
import-order-style = ruler501
application-import-names = my_package1, my_package2
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
File details
Details for the file flake8-import-order-ruler501-0.18.1.2.tar.gz
.
File metadata
- Download URL: flake8-import-order-ruler501-0.18.1.2.tar.gz
- Upload date:
- Size: 3.5 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/1.15.0 pkginfo/1.5.0.1 requests/2.18.4 setuptools/41.2.0 requests-toolbelt/0.9.1 tqdm/4.34.0 CPython/3.6.6
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 0d5fce27fc96b4ee1b34507b08f0728f148e15690144cff65fabb1811d97f1a6 |
|
MD5 | 85ed47527f48501382d0ef26976f9edb |
|
BLAKE2b-256 | cb7a669ae609887f42bfaeaaf605360e1059c7737e602163c280ea14674e3a98 |
File details
Details for the file flake8_import_order_ruler501-0.18.1.2-py2.py3-none-any.whl
.
File metadata
- Download URL: flake8_import_order_ruler501-0.18.1.2-py2.py3-none-any.whl
- Upload date:
- Size: 5.4 kB
- Tags: Python 2, Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/1.15.0 pkginfo/1.5.0.1 requests/2.18.4 setuptools/41.2.0 requests-toolbelt/0.9.1 tqdm/4.34.0 CPython/3.6.6
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 76661dd902a84b5af88f7b0b98f4eecd897778e847ebb06bc9c3fcd067642b64 |
|
MD5 | 15485b94b0417c22662a431318dabf12 |
|
BLAKE2b-256 | 191d5cec3abf99e132bb826688605736fa7b6ad110f35a9b9a0c416b1a1c5f6c |