flake8扩展,用于检查类中函数的顺序
项目描述
flake8-function-order
flake8的扩展,用于报告类属性顺序错误和类级别逻辑,由@best-doctor的flake8-class-attributes-order
包改编。
验证器可以提取类属性类型:文档字符串、属性、嵌套类、GLOBAL_VAR
等。如果检测到Django模型字段,验证器可以检测该字段是否链接到另一个表(外键、通用键等)。
解决每个属性类型后,验证器会检查属性顺序。
默认配置检查以下属性顺序
__new__
__init__
__post_init__
- 其他魔术方法
@property
@staticmethod
@classmethod
- 其他方法
- 私有方法
如果顺序被打乱,验证器会报告。
除了方法之外,验证器还会检查其他属性方法:文档字符串、嵌套类、常量、属性等。
此外,验证器还会检查类是否有类级别逻辑,并在有逻辑时报告。以下是一个示例
class PhoneForm(forms.Form):
phone = forms.CharField(17, label='Телефон'.upper())
# this should happen in __init__!
phone.widget.attrs.update({'class': 'form-control phone'})
安装
pip install flake8-function-order
可配置选项
选项 | 描述 | Fallbacks to* |
---|---|---|
meta_class | class Meta: (例如,在Django项目中) | nested_class |
nested_class | 其他嵌套类 | None* |
constant | SOME_CONSTANTS | field |
outer_field | some = 模型.ForeignKey 等。 | field |
field | 其他字段 | 无 |
__new__ |
__new__ |
魔法方法 |
__init__ |
__init__ |
魔法方法 |
__post_init__ |
__post_init__ |
魔法方法 |
__str__ |
__str__ |
魔法方法 |
魔法方法 | 其他魔法方法 | 方法 |
保存 | def 保存(...) | 方法 |
删除 | def 删除(...) | 方法 |
属性方法 | @property/@cached_property 等。 | 方法 |
私有属性方法 | @property/@cached_property 加 _ | 属性方法 |
静态方法 | @staticmethod | 方法 |
私有静态方法 | @staticmethod 以 _ 开头 | 静态方法 |
类方法 | @classmethod | 方法 |
私有类方法 | @classmethod 以 _ 开头 | 类方法 |
私有方法 | 其他以 _ 开头的方法 | 方法 |
方法 | 其他方法 | 无 |
* 如果未提供,将使用其超类顺序
** 如果未定义,则此类及其所有子类型(除非已定义)将在验证期间被忽略。建议至少设置 nested_class
、field
和 method
您可以选择配置的详细程度。例如,您可以定义每个支持的魔法方法的顺序(__new__
、__str__
等),或将 magic_method
设置为允许它们之间的任何顺序,甚至只使用 method
用法
$ flake8 test.py
test.py:5:5: CCE001 User.fetch_info_from_crm should be after User.LOGIN_FIELD
test.py:15:5: CCE002 Class level expression detected model UserNode, line 15
已在 Python 3.7.x 和 flake8 3.7.5 上测试。
错误代码
错误代码 | 描述 |
---|---|
CCE001 | 类属性顺序错误(XXX 应在 YYY 之后 ) |
CCE002 | 检测到类级别表达式 |
项目详情
下载文件
为您的平台下载文件。如果您不确定要选择哪个,请了解有关 安装包 的更多信息。
源分布
flake8_function_order-0.0.5.tar.gz (6.8 kB 查看哈希值)