一个强制执行Azure SDK指南的pylint插件。
项目描述
代码规范检查
此存储库中的代码是从@kristapratico最初编写的代码迁移过来的。
在Azure/azure-sdk-for-python存储库中运行规范检查
为了进行代码规范检查,您必须确保在pylint调用中启用了`pylint-guidelines-checker`。使用存储库根目录的rcfile将确保插件被正确激活
建议您在库包级别运行pylint,以确保与CI运行pylint的方式保持一致。
请确保您运行的是pylint版本 >=2.14.5和astroid版本 >=2.12.0。
-
从azure-sdk开发源安装pylint检查器。
pip install --index-url="https://pkgs.dev.azure.com/azure-sdk/public/_packaging/azure-sdk-for-python/pypi/simple/" pylint-guidelines-checker
-
在存储库根目录运行pylint,它将自动找到pylintrc
C:\azure-sdk-for-python>pylint sdk/storage/azure-storage-blob/azure
-
使用相对路径添加--rcfile命令行参数,指向从当前目录到pylintrc的路径
C:\azure-sdk-for-python\sdk\storage>pylint --rcfile="../../pylintrc" azure-storage-blob
-
将环境变量PYLINTRC设置为pylintrc文件的绝对路径
set PYLINTRC=C:\azure-sdk-for-python\pylintrc
运行pylint
C:\azure-sdk-for-python\sdk\storage>pylint azure-storage-blob
-
使用tox在包级别运行pylint,它将找到pylintrc文件
pip install tox tox-monorepo C:\azure-sdk-for-python\sdk\storage\azure-storage-blob>tox -e lint -c ../../../eng/tox/tox.ini
-
如果您使用VS代码或Pycharm的pylint扩展,它应该会自动找到pylintrc。
如何禁用pylint错误
# pylint:disable=connection-string-should-not-be-constructor-param
针对 SDK 指引的 Pylint 自定义检查器属于消息范围 C4717 - C4738。如果自定义检查器包含对指南的链接,则表示您遇到了自定义检查器。
在出现误报的情况下,使用 disable 命令来移除 Pylint 错误。
规则列表
Pylint 检查器名称 | 如何修复此问题 | 如何禁用此规则 | 链接到 Python 指南 |
---|---|---|---|
client-method-should-not-use-static-method | 使用模块级别的函数代替。 | # pylint:disable=client-method-should-not-use-static-method | 链接 |
missing-client-constructor-parameter-credential | 在客户端构造函数中添加一个凭证参数。不要使用复数形式 "credentials"。 | # pylint:disable=missing-client-constructor-parameter-credential | 链接 |
missing-client-constructor-parameter-kwargs | 在客户端构造函数中添加一个 **kwargs 参数。 | # pylint:disable=missing-client-constructor-parameter-kwargs | 链接 |
client-method-has-more-than-5-positional-arguments | 使用关键字参数来减少位置参数的数量。 | # pylint:disable=client-method-has-more-than-5-positional-arguments | 链接 |
client-method-missing-type-annotations | 检查是否存在参数/返回类型注释,或者是否存在参数/返回类型注解。检查您是否混淆了类型注释和类型注解。 | # pylint:disable=client-method-missing-type-annotations | 链接 |
client-incorrect-naming-convention | 检查您是否使用了... snake_case 进行变量、函数和方法命名。对于类型使用 Pascal case。对于常量使用 ALL CAPS。 | # pylint:disable=client-incorrect-naming-convention | 链接 |
client-method-missing-kwargs | 检查任何进行网络调用的方法是否具有 **kwargs 参数。 | # pylint:disable=client-method-missing-kwargs | 链接 |
config-missing-kwargs-in-policy | 检查您的配置函数中的策略是否包含 **kwargs 参数。 | # pylint:disable=config-missing-kwargs-in-policy | 链接 |
async-client-bad-name | 从您的服务客户端名称中删除 "Async"。 | # pylint:disable=async-client-bad-name | 链接 |
file-needs-copyright-header | 在文件顶部添加版权头。 | # pylint:disable=file-needs-copyright-header | 链接 |
client-method-name-no-double-underscore | 不要使用以 "__" 为前缀的方法名称。 | # pylint:disable=client-method-name-no-double-underscore | 链接 |
specify-parameter-names-in-call | 在调用具有超过 2 个必需位置参数的方法时指定参数名称。例如:self.get_foo(one, two, three=three, four=four, five=five) | # pylint:disable=specify-parameter-names-in-call | 链接 |
connection-string-should-not-be-constructor-param | 从客户端构造函数中删除连接字符串参数。创建一个使用连接字符串创建客户端的方法。 | # pylint:disable=connection-string-should-not-be-constructor-param | 链接 |
package-name-incorrect | 将您的分发包名称更改为仅包含连字符,例如 azure-storage-file-share | # pylint:disable=package-name-incorrect | 链接 |
client-suffix-needed | 服务客户端类型应使用 "Client" 后缀,例如 BlobClient。 | # pylint:disable=client-suffix-needed | 链接 |
docstring-admonition-needs-newline | 在 .. literalinclude 语句之上添加一个空白换行符。 | # pylint:disable=docstring-admonition-needs-newline | 没有指南,仅帮助我们的文档正确构建为 Microsoft 文档。 |
naming-mismatch | 不要对从生成的代码导入的模型进行别名。 | # pylint:disable=naming-mismatch | 链接 |
client-accepts-api-version-keyword | 确保客户端构造函数接受一个仅关键字参数 api_version。 | # pylint:disable=client-accepts-api-version-keyword | 链接 |
enum-must-be-uppercase | 枚举名称必须全部大写。 | # pylint:disable=enum-must-be-uppercase | 链接 |
enum-must-inherit-case-insensitive-enum-meta | 枚举应继承自 CaseInsensitiveEnumMeta。 | # pylint:disable=enum-must-inherit-case-insensitive-enum-meta | 链接 |
networking-import-outside-azure-core-transport | 此导入仅在 azure.core.pipeline.transport 中允许。 | # pylint:disable=networking-import-outside-azure-core-transport | 链接 |
non-abstract-transport-import | 仅导入抽象传输。让核心或最终用户决定使用哪种传输。 | # pylint:disable=non-abstract-transport-import | 链接 |
no-raise-with-traceback | 检查 azure-core 的 raise_with_traceback 是否已替换为 Python 3 的 'raise from' 语法。 | 禁用 # pylint:disable=no-raise-with-traceback | 链接 |
名称过长 | 检查类名、函数名和变量名的长度是否不超过40个字符。 | 禁用 # pylint:disable=name-too-long | 链接 |
delete-operation-wrong-return-type | 检查 delete* 或 begin_delete* 方法返回 None 或 LROPoller[None]。 | 禁用 # pylint:disable=delete-operation-wrong-return-type | 链接 |
客户端方法缺少跟踪装饰器 | pylint:disable=client-method-missing-tracing-decorator | 检查执行网络调用的同步客户端方法是否有同步分布式跟踪装饰器。 | 链接 |
客户端方法缺少异步跟踪装饰器 | pylint:disable=client-method-missing-tracing-decorator-async | 检查执行网络调用的异步客户端方法是否有异步分布式跟踪装饰器。 | 链接 |
项目详情
关闭
哈希值 for azure_pylint_guidelines_checker-0.0.8-py3-none-any.whl
算法 | 哈希摘要 | |
---|---|---|
SHA256 | c5e8074d85352cc6e9ed194d42e0f9aa537e54af227755dc33c0847e130a385d |
|
MD5 | c0535d77ca5de4a24763ee88fe6efb4f |
|
BLAKE2b-256 | eb6a2f3680e72819734f87946db01234bdfb25b79f9f53559556952ab4e93f03 |