跳转到主要内容

导入顺序检测

项目描述

一个脚本来检测导入顺序是否符合Mozilla WebDev Python
指南。

示例:

[baked] zamboni $ p ~/sandboxes/baked/baked.py lib/video/ffmpeg.py -p
lib/video/ffmpeg.py:9: 检查输出,子进程,VideoBase的顺序错误
--- /Users/andy/sandboxes/zamboni/lib/video/ffmpeg.py 2014-05-23 16:11:56.000000000 -0700
+++ /var/folders/15/3crpnr7j4sj75xynpsqkqbr00000gp/T/tmpXvc_Ml.py 2014-05-23 16:12:11.000000000 -0700
@@ -1,14 +1,14 @@
import logging
+import logging
import re
import tempfile

from django.conf import settings

+from django_statsd.clients import statsd
from tower import ugettext as _

-from django_statsd.clients import statsd
from .utils import check_output, subprocess, VideoBase
-import logging

注意,它检测到`logging`应该在顶部,并且
`django_statsd`与第三方导入。

用法:

baked.py [文件名] [文件名..]

文件名可以是glob。也可以是多个文件名。例如:

baked.py apps/*.py mkt/*.py

Baked还接受通过管道传入的文件,例如:

git diff-index HEAD^ --name-only | baked

Baked将以JSON格式加载配置文件。它将在以下位置查找该文件

* 在当前和父目录中检查的文件
``.baked``
* 当前目录中的``.baked``
* 用户配置文件目录中的``.baked``

示例请参阅

https://gist.github.com/andymckay/5507339

配置文件包含

**order**:导入“块”的顺序列表。这允许您将导入分组到类别中。
**fallback**:如果找不到lib的类别,应该回退到什么,对于大多数情况,这将是“local”。
**from_order**:包含各个部分的字典,每个部分对应一个布尔值。如果值为false,则baked将忽略在“from”之前出现的“import”语句。默认情况下,每个类别都为true。
**modules**:包含类别和模块列表的字典。这允许baked将每个模块放入相应的类别中。

如果您想从baked中排除某个导入语句,请添加注释“#NOQA”。

指导原则

http://mozweb.readthedocs.org/en/latest/coding.html#import-statements

除了一项例外,我们忽略导入语句的顺序应该为“CONSTANT”,“Class”,“var”。只需按字母顺序排序,不区分大小写。这样更易于解析。
对于每个人来说都更容易。
大家。

配置参数

**-i**:就地更改文件,但请注意,它不会修复同一行上导入语句的顺序,例如:`from foo import XX, bar`会被当作警告,但“XX”和“bar”的顺序不会固定。


**-p**:打印baked计算出的差异。

更改
-------

0.2.1:将导入名称转换为小写,例如:“import StringIO”在“import os”之后。


0.2:这是一个向后不兼容的更改,它侧重于生成易于阅读的diff,比一些规则更容易阅读。对于一行中顺序不正确的导入语句,它仍然会打印导入顺序,但不会尝试修复它。


项目详细信息


下载文件

下载适用于您的平台的文件。如果您不确定选择哪一个,请了解更多关于安装包的信息。

源分布

baked-0.2.5.tar.gz (6.2 kB 查看散列)

上传时间:

支持者