Python 代码风格

代码风格

Black 是用于重新格式化 Python 代码的工具。

代码风格检查

Python 代码风格检查由 Flake8pylint 执行。它们都由 mozlint 在代码审查阶段和 CI 中执行。

缩进

Python 代码使用四个空格进行缩进。

Makefile/moz.build 规范

  • 对 makefile 和 moz.build 变量的更改不需要构建配置同行评审。任何其他构建系统更改,例如添加新脚本或规则,都需要构建配置团队的评审。

  • 在较长的 if/endif 条件语句的末尾添加 #{ & #},以便编辑器能够显示匹配的标记,从而包含一段语句块。

    ifdef CHECK_TYPE #{
      ifneq ($(flavor var_type),recursive) #{
        $(warning var should be expandable but detected var_type=$(flavor var_type))
      endif #}
    endif #}
    
  • moz.build 是 Python 代码,遵循正常的 Python 代码风格。

  • 列表赋值应每行一个元素。将右方括号与变量赋值的开头对齐。如果顺序不重要,变量应按字母顺序排列。

    var += [
        'foo',
        'bar'
    ]
    
  • 使用 CONFIG['TARGET_CPU'] {=arm} 来测试通用架构类别,而不是 CONFIG['OS_TEST'] {=armv7} (参见 bug 886689)。

其他建议

  • 安装 mozext Mercurial 扩展,并在提交时或 hg critic 输出中解决所有报告的问题。

  • 遵循 PEP 8。请运行 Black 来完成此操作。

  • 不要将语句放在 if/elif/else 条件语句的同一行,以形成单行语句。

  • 全局变量,请尽量避免使用。

  • 从条件语句中排除外部括号。使用 if x > 5:,,而不是 if (x > 5):

  • 使用字符串格式化程序,而不是 var + str(val)。 var = 'Type %s value is %d'% ('int', 5).

  • 测试/单元测试,请编写测试并确保它们在 CI 中执行。