Ordre d'importation Python, mélange de… import… et import… (et import… comme…)

Oct 25 2020

C'est le désordre des importations actuellement en haut de mon fichier:

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

Je les ai classés par ordre alphabétique, par nom de package (?).

Je pense que ça a l'air extrêmement moche.

Quelles sont les méthodes standard pour organiser cette section?

PEP8 (que j'ai lu) n'est pas utile dans ce cas:

Les importations doivent être regroupées dans l'ordre suivant:

Importations de bibliothèques standard.
Importations de tiers liés.
Importations spécifiques à une application / bibliothèque locale.
Vous devez mettre une ligne vide entre chaque groupe d'importations.

Réponses

6 candied_orange Oct 25 2020 at 22:26

Les importations doivent être regroupées dans l'ordre suivant:

Importations de bibliothèques standard.
Importations de tiers liés.
Importations spécifiques à une application / bibliothèque locale.
Vous devez mettre une ligne vide entre chaque groupe d'importations.

python.org - pep-0008 - #imports

Pep8 cite également le guide de style GNU Mailman de Barry qui offre des conseils de commande plus détaillés:

Les importations doivent être groupées, l'ordre étant:

  1. non importées pour les bibliothèques standard et tierces
  2. non provenant d'importations depuis l'application
  3. from-importations depuis les bibliothèques standard et tierces
  4. depuis-importations depuis l'application

Les importations d'origine devraient suivre les importations non d'origine. Les importations en pointillé doivent suivre les importations sans point. Les importations non pointées doivent être regroupées par longueur croissante, tandis que les importations pointées doivent être groupées par ordre alphabétique.

Guide de style de codage GNU Mailman

Au fil des ans, j'ai trouvé que le plus important était que tout le monde les organise de la même manière. Parce que les importations souvent très organisées ressemblent au chaos pour ceux qui ne savent pas déjà comment elles sont organisées.

Sergi Nov 07 2020 at 05:28

Commencez à utiliser isort , il a des valeurs par défaut saines. Et configurez-le pour qu'il s'exécute automatiquement lors de l'enregistrement sur votre IDE ou en tant que hook de pré-validation pour vous simplifier la vie.