跳转到主要内容

一个强制执行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。

  1. 从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
    
  2. 在存储库根目录运行pylint,它将自动找到pylintrc

    C:\azure-sdk-for-python>pylint sdk/storage/azure-storage-blob/azure
    
  3. 使用相对路径添加--rcfile命令行参数,指向从当前目录到pylintrc的路径

    C:\azure-sdk-for-python\sdk\storage>pylint --rcfile="../../pylintrc" azure-storage-blob
    
  4. 将环境变量PYLINTRC设置为pylintrc文件的绝对路径

    set PYLINTRC=C:\azure-sdk-for-python\pylintrc
    

    运行pylint

    C:\azure-sdk-for-python\sdk\storage>pylint azure-storage-blob
    
  5. 使用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
    
  6. 如果您使用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 检查执行网络调用的异步客户端方法是否有异步分布式跟踪装饰器。 链接

项目详情


下载文件

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

源代码分发

azure-pylint-guidelines-checker-0.0.8.zip (42.8 kB 查看哈希值)

上传时间 源代码

构建分发

azure_pylint_guidelines_checker-0.0.8-py3-none-any.whl (17.7 kB 查看哈希值)

上传时间 Python 3

由以下支持

AWS AWS 云计算和安全赞助商 Datadog Datadog 监控 Fastly Fastly CDN Google Google 下载分析 Microsoft Microsoft PSF 赞助商 Pingdom Pingdom 监控 Sentry Sentry 错误记录 StatusPage StatusPage 状态页面