风格指南
Home Assistant 对所有提交的代码强制要求严格遵守 PEP8 风格和 PEP 257(文档字符串约定)。作为代码检查过程的一部分,我们使用 Coveralls 和 Travis CI 自动测试每个拉取请求。
最相关要点总结:
行长度限制为 79 个字符(见下文)。
每个缩进级别使用 4 个空格。我们不使用制表符。
注释应该是完整的句子并以句号结尾。
导入应该排序。
常量以及列表和字典的内容应该按字母顺序排列。
避免尾部空格,但在二元运算符周围使用单个空格。
行分隔符应设置为LF。
最大行长度直接来自 PEP8 风格指南,并且也被 Python 标准库使用。所有代码必须通过这些代码检查,不会有例外。已经有很多请求增加最大行长度,但在评估选项后,Home Assistant 维护者决定保持在 79 个字符。此决定为最终决定。
这些要点可能要求您调整 IDE 或编辑器设置。
我们的建议
在某些情况下,PEP 没有给出说明。本节涵盖我们关于代码风格的建议。这些要点是从现有代码中收集的,并基于贡献者和开发者最常用的方式。这基本上是多数决定,因此您可能不同意。但我们希望鼓励您遵循这些建议以保持代码统一。
引号
对于单个单词使用单引号’,对于多个单词或句子使用双引号"。
ATTR_WATERLEVEL = 'level'
CONF_ATTRIBUTION = "Data provided by the WUnderground weather service"
SENSOR_TYPES = {
'alerts': ['Alerts', None],
}
文件头
文件头中的文档字符串应包含指向文档的链接,以便于查找更多信息,特别是关于配置或代码中未提及的详细信息。
"""
支持MQTT灯光。
有关此平台的更多详细信息,请参阅https://home-assistant.io/components/light.mqtt/上的文档。
"""
需求
请将平台需求紧跟在导入之后。
[...]
from homeassistant.helpers.entity import Entity
REQUIREMENTS = ['xmltodict==0.11.0']
日志消息
无需在日志消息中添加平台或组件名称。这将自动添加。与syslog消息一样,末尾不应有句号。尽量避免在输出周围使用括号和额外的引号,以便用户更容易解析日志。下面展示了一种常见的格式,但您可以自由组合消息。
_LOGGER.error("No route to device: %s", self._resource)
2017-05-01 14:28:07 ERROR [homeassistant.components.sensor.arest] No route to device: 192.168.0.18
不要打印出错误的 API 密钥、令牌、用户名或密码。
总结
主要介绍了 Home Assistant 开发中的代码风格指南。一方面严格要求遵循 PEP8 和 PEP 257 规范,包括行长度、缩进、注释、导入、常量及数据结构内容排序、空格使用、行分隔符等方面的规则,且行长度限制为 79 字符不会更改。另一方面给出了一些额外的建议,如引号使用、文件头文档字符串包含文档链接、平台需求放置位置、日志消息格式(避免添加平台组件名、句号,简化输出格式)以及注意不打印敏感信息等,目的是统一代码风格,方便代码管理和维护,同时也提醒开发者可能需要调整开发工具的相关设置以适应这些要求
2129

被折叠的 条评论
为什么被折叠?



