Ordem de importação do Python, combinando de ... importar ... e importar ... (e importar ... como ...)

Oct 25 2020

Esta é a bagunça das importações atualmente no topo do meu arquivo:

import argparse
from copy import deepcopy
from functools import cmp_to_key, partial
from itertools import chain
import math
from multiprocessing import Pool
import os
import re
from typing import Dict, List, Set, Tuple
import xml.etree.ElementTree as ET

from third_party import Tool

Eu os organizei em ordem alfabética, por nome de pacote (?).

Eu acho que parece extremamente feio.

Quais são as maneiras padrão de organizar esta seção?

PEP8 (que li) não é útil neste caso:

As importações devem ser agrupadas na seguinte ordem:

Importações de biblioteca padrão.
Importações de terceiros relacionados.
Importações específicas de aplicativos / bibliotecas locais.
Você deve colocar uma linha em branco entre cada grupo de importações.

Respostas

6 candied_orange Oct 25 2020 at 22:26

As importações devem ser agrupadas na seguinte ordem:

Importações de biblioteca padrão.
Importações de terceiros relacionados.
Importações específicas de aplicativos / bibliotecas locais.
Você deve colocar uma linha em branco entre cada grupo de importações.

python.org - pep-0008 - #imports

Pep8 também cita o guia de estilo GNU Mailman de Barry, que oferece uma orientação de pedido mais detalhada:

As importações devem ser agrupadas, sendo a ordem:

  1. importações não provenientes de bibliotecas padrão e de terceiros
  2. não provenientes de importações do aplicativo
  3. from-importa das bibliotecas padrão e de terceiros
  4. de-importações do aplicativo

Das importações devem seguir as não provenientes das importações. As importações pontilhadas devem seguir as importações não pontilhadas. As importações não pontilhadas devem ser agrupadas por comprimento crescente, enquanto as importações pontilhadas devem ser agrupadas em ordem alfabética.

Guia de estilo de codificação do GNU Mailman

Ao longo dos anos, descobri que o mais importante é fazer com que todos os organizem da mesma forma. Porque geralmente as importações muito organizadas parecem um caos para quem ainda não sabe como estão organizadas.

Sergi Nov 07 2020 at 05:28

Comece a usar isort , ele tem padrões lógicos . E configure-o para execução automática ao salvar em seu IDE ou como um gancho de pré-confirmação para tornar sua vida mais fácil.