Утилита для исправления стиля импорта Python? - PullRequest
1 голос
/ 08 октября 2011

У нас есть много файлов с ужасными операторами импорта, такими как:

from project.foo import a, b
from project.foo import c
from project.bar import d, e, f, g

Существует ли что-то, что изменит их все на один импорт на строку?

from project.foo import a
from project.foo import b
from project.foo import c
from project.bar import d
from project.bar import e
from project.bar import f
from project.bar import g

Уточнение: Причина этого заключается в том, чтобы поддерживать согласованный стиль, например Руководство по стилю Google для Python .

Ответы [ 2 ]

7 голосов
/ 08 октября 2011

Согласно Руководству по стилю PEP8 :

Импорт

- Imports should usually be on separate lines, e.g.:

    Yes: import os
         import sys

    No:  import sys, os

  it's okay to say this though:

    from subprocess import Popen, PIPE

Итак, я думаю, что вы должны делать то, что вы и должныне разделять их.Я не знаю ни о какой утилите, которая сделает это за вас.

Кроме того, если:

project.bar содержит, скажем: d,e,f,g,x,y,z, тогда я бы сказал, просто сделайте import project.bar,код будет намного меньше и проще для глаз.

0 голосов
/ 08 октября 2011

sed может сделать это с помощью чего-то подобного (сначала протестируйте, поскольку у меня нет доступа к моему Linux-боксу, чтобы проверить его в данный момент):

sed -i".backup" 's/from ([^ ]+) import ([^,]+), ([^,]+)/from \1 import \2\nfrom \1 import \3/' *.py
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...