Leia a documentação mais recente - Navegue pelo repositório de códigos GitHub
isorte suas importações, para que você não precise fazer isso.
isort é um utilitário/biblioteca Python para classificar importações em ordem alfabética e separar automaticamente em seções e por tipo. Ele fornece um utilitário de linha de comando, biblioteca Python e plug-ins para vários editores classificarem rapidamente todas as suas importações. Requer Python 3.8+ para ser executado, mas também suporta a formatação do código Python 2.
Antes de classificar:
from my_lib import Object
import os
from my_lib import Object3
from my_lib import Object2
import sys
from third_party import lib15 , lib1 , lib2 , lib3 , lib4 , lib5 , lib6 , lib7 , lib8 , lib9 , lib10 , lib11 , lib12 , lib13 , lib14
import sys
from __future__ import absolute_import
from third_party import lib3
print ( "Hey" )
print ( "yo" )
Após a classificação:
from __future__ import absolute_import
import os
import sys
from third_party import ( lib1 , lib2 , lib3 , lib4 , lib5 , lib6 , lib7 , lib8 ,
lib9 , lib10 , lib11 , lib12 , lib13 , lib14 , lib15 )
from my_lib import Object , Object2 , Object3
print ( "Hey" )
print ( "yo" )
Instalar o isort é tão simples quanto:
pip install isort
Na linha de comando :
Para executar em arquivos específicos:
isort mypythonfile.py mypythonfile2.py
Para aplicar recursivamente:
isort .
Se globstar estiver habilitado, isort .
é equivalente a:
isort ** / * .py
Para visualizar as alterações propostas sem aplicá-las:
isort mypythonfile.py --diff
Finalmente, para executar isort atomicamente em um projeto, aplicando alterações apenas se elas não introduzirem erros de sintaxe:
isort --atomic .
(Observação: isso está desabilitado por padrão, pois evita que o isort seja executado em código escrito usando uma versão diferente do Python.)
De dentro do Python :
import isort
isort . file ( "pythonfile.py" )
ou:
import isort
sorted_code = isort . code ( "import b n import a n " )
Vários plug-ins foram escritos para permitir o uso do isort em uma variedade de editores de texto. Você pode encontrar uma lista completa deles no wiki do isort. Além disso, aceitarei com entusiasmo solicitações pull que incluam plug-ins para outros editores de texto e adicionarei documentação para eles conforme for notificado.
Você notará acima a configuração "multi_line_output". Esta configuração define como as importações são quebradas quando ultrapassam o limite line_length e tem 12 configurações possíveis.
Para alterar a forma como os recuos constantes aparecem - basta alterar a propriedade de recuo com os seguintes formatos aceitos:
Por exemplo:
" "
é equivalente a 4.
Para os estilos de importação que usam parênteses, você pode controlar se deve ou não incluir uma vírgula final após a última importação com a opção include_trailing_comma
(o padrão é False
).
A partir da isorção 3.1.0 foi adicionado suporte para importações multilinhas balanceadas. Com esta opção habilitada, o isort mudará dinamicamente o comprimento de importação para aquele que produza a grade mais balanceada, permanecendo abaixo do comprimento máximo de importação definido.
Exemplo:
from __future__ import ( absolute_import , division ,
print_function , unicode_literals )
Será produzido em vez de:
from __future__ import ( absolute_import , division , print_function ,
unicode_literals )
Para ativar isso, defina balanced_wrapping
como True
em sua configuração ou passe a opção -e
no utilitário de linha de comando.
isort fornece opções de configuração para alterar quase todos os aspectos de como as importações são organizadas, ordenadas ou agrupadas em seções.
Clique aqui para uma visão geral de todas essas opções.
Para fazer com que isort ignore uma única importação, basta adicionar um comentário no final da linha de importação contendo o texto isort:skip
:
import module # isort:skip
ou:
from xyz import ( abc , # isort:skip
yo ,
hey )
Para fazer o isort pular um arquivo inteiro, basta adicionar isort:skip_file
à string doc do módulo:
""" my_module.py
Best module ever
isort:skip_file
"""
import b
import a
isort pode ser executado ou configurado para adicionar/remover importações automaticamente.
Veja um guia completo aqui.
--check-only
isort também pode ser usado para verificar se o código está formatado corretamente, executando-o com -c
. Quaisquer arquivos que contenham importações classificadas e/ou formatadas incorretamente serão enviados para stderr
.
isort ** / * .py -c -v
SUCCESS: /home/timothy/Projects/Open_Source/isort/isort_kate_plugin.py Everything Looks Good !
ERROR: /home/timothy/Projects/Open_Source/isort/isort/isort.py Imports are incorrectly sorted.
Um ótimo lugar para usar isso é com um git hook pré-commit, como este de @acdha:
https://gist.github.com/acdha/8717683
Isso pode ajudar a garantir um certo nível de qualidade de código ao longo de um projeto.
isort fornece uma função de gancho que pode ser integrada ao script de pré-confirmação do Git para verificar o código Python antes de confirmar.
Mais informações aqui.
Após a instalação, o isort habilita um comando setuptools
que verifica os arquivos Python declarados pelo seu projeto.
Mais informações aqui.
Coloque este emblema no topo do seu repositório para que outras pessoas saibam que seu projeto usa isort.
Para README.md:
[ ![ Imports: isort ] ( https://img.shields.io/badge/%20imports-isort-%231674b1?style=flat&labelColor=ef8336 )] ( https://pycqa.github.io/isort/ )
Ou README.rst:
.. image :: https://img.shields.io/badge/%20imports-isort-%231674b1?style=flat&labelColor=ef8336
:target: https://pycqa.github.io/isort/
Para relatar uma vulnerabilidade de segurança, use o contato de segurança da Tidelift. A Tidelift coordenará a correção e divulgação.
isort significa simplesmente classificação de importação. Foi originalmente chamado de "sortImports", mas cansei de digitar os caracteres extras e percebi que camelCase não é pythônico.
Escrevi isort porque em uma organização em que trabalhei, o gerente chegou um dia e decidiu que todo o código deveria ter importações ordenadas em ordem alfabética. A base de código era enorme - e ele queria que fizéssemos isso manualmente. No entanto, sendo um programador - tenho preguiça de gastar 8 horas executando uma função sem pensar, mas não tenho preguiça de gastar 16 horas automatizando-a. Recebi permissão para abrir sortImports de código-fonte e aqui estamos :)
Obtenha suporte profissional do isort com a assinatura Tidelift
O suporte profissional para isort está disponível como parte da assinatura Tidelift. O Tidelift oferece às equipes de desenvolvimento de software uma fonte única para compra e manutenção de seu software, com garantias de nível profissional dos especialistas que melhor o conhecem, ao mesmo tempo que se integra perfeitamente às ferramentas existentes.
Obrigado e espero que você ache o isort útil!
~Timothy Crosley