plone/code-quality和isort的详细配置也在pyproject.toml中设置。示例配置:
toml[tool.black] line-length = 88 target-version = ['py38'] include = '\.pyi?$' [tool.isort] profile = "black" force_alphabetical_sort = true force_single_line = true lines_after_imports = 2 line_length = 120 [tool.flakeheaven] format="grouped" max_line_length=88 show_source=true max-complexity=25 [tool.flakeheaven.plugins] pycodestyle = ["+*"] pyflakes = ["+*"] "flake8-*" = ["+*"] [tool.plone-code-analysis] paths = "docker-entrypoint.py src/setup.py src/plone_code_analysis tests/fixtures/packages/ok tests/package tests/conftest.py" paths_pyroma = "src/ tests/fixtures/packages/ok"
首先进入需要检查或格式化的代码仓库目录。
使用pyproject.toml中的配置运行所有检查器:
bashdocker run --rm -v "${PWD}":/github/workspace plone/code-quality:latest check
black检查
使用配置文件检查:
bashdocker run --rm -v "${PWD}":/github/workspace plone/code-quality:latest check black
显式检查指定目录和文件:
bashdocker run --rm -v "${PWD}":/github/workspace plone/code-quality:latest check black src setup.py
flake8检查
使用flakeheaven配置的flake8检查,包含插件:flake8-blind-except、flake8-debugger、flake8-print。
使用配置文件检查:
bashdocker run --rm -v "${PWD}":/github/workspace plone/code-quality:latest check flake8
显式检查指定目录和文件:
bashdocker run --rm -v "${PWD}":/github/workspace plone/code-quality:latest check flake8 src setup.py
isort检查
使用配置文件检查:
bashdocker run --rm -v "${PWD}":/github/workspace plone/code-quality:latest check isort
显式检查指定目录和文件:
bashdocker run --rm -v "${PWD}":/github/workspace plone/code-quality:latest check isort src setup.py
pyroma检查
使用配置文件检查:
bashdocker run --rm -v "${PWD}":/github/workspace plone/code-quality:latest check pyroma
显式检查指定包目录:
bashdocker run --rm -v "${PWD}":/github/workspace plone/code-quality:latest check pyroma src/mypackage
zpretty检查
使用配置文件检查:
bashdocker run --rm -v "${PWD}":/github/workspace plone/code-quality:latest check zpretty
显式检查指定目录:
bashdocker run --rm -v "${PWD}":/github/workspace plone/code-quality:latest check zpretty src
为避免修改文件的所有者和组信息,格式化时需通过--user参数指定当前用户ID和组ID。以下示例使用"$(id -u $(whoami)):$(getent group $(whoami)|cut -d: -f3)"获取当前用户信息。
使用pyproject.toml配置运行所有格式化器:
bashdocker run --user="$(id -u $(whoami)):$(getent group $(whoami)|cut -d: -f3)" --rm -v "${PWD}":/github/workspace plone/code-quality:latest format
black格式化
使用配置文件格式化:
bashdocker run --user="$(id -u $(whoami)):$(getent group $(whoami)|cut -d: -f3)" --rm -v "${PWD}":/github/workspace plone/code-quality:latest format black
显式格式化指定目录和文件:
bashdocker run --user="$(id -u $(whoami)):$(getent group $(whoami)|cut -d: -f3)" --rm -v "${PWD}":/github/workspace plone/code-quality:latest format src setup.py
isort格式化
使用配置文件格式化:
bashdocker run --user="$(id -u $(whoami)):$(getent group $(whoami)|cut -d: -f3)" --rm -v "${PWD}":/github/workspace plone/code-quality:latest format isort
显式格式化指定目录和文件:
bashdocker run --user="$(id -u $(whoami)):$(getent group $(whoami)|cut -d: -f3)" --rm -v "${PWD}":/github/workspace plone/code-quality:latest format src setup.py
zpretty格式化
使用配置文件格式化:
bashdocker run --user="$(id -u $(whoami)):$(getent group $(whoami)|cut -d: -f3)" --rm -v "${PWD}":/github/workspace plone/code-quality:latest format zpretty
显式格式化指定目录:
bashdocker run --user="$(id -u $(whoami)):$(getent group $(whoami)|cut -d: -f3)" --rm -v "${PWD}":/github/workspace plone/code-quality:latest format src
请注意:不要直接提交到版本分支,即使是最小的修复。始终创建拉取请求并请求他人合并,不要自行合并。
使用本工具检查自身代码库:
shellmake lint-all
增加详细程度:
shellLOG_LEVEL=DEBUG make lint-all
使用本工具格式化自身代码库:
shellmake format
增加详细程度:
shellLOG_LEVEL=DEBUG make format
测试使用pytest实现,可通过以下命令运行:
shellmake build make test
基于kitconcept GmbH最初开发的解决方案。
]([***] !GitHub 仓库星数
Plone代码质量工具是一个集成多种代码检查和格式化工具的Docker镜像,旨在为Plone项目及Python代码库提供统一的代码质量保障解决方案。通过简单的命令行接口和灵活的配置,可实现代码风格检查、语法分析和自动格式化,确保代码符合行业标准和项目规范。
pyproject.toml文件集中配置所有工具参数、检查路径和启用状态工具通过项目根目录的pyproject.toml文件读取配置。
默认配置值如下:
toml[tool.plone-code-analysis] checkers = ["black", "flake8", "isort", "pyroma", "zpretty"] formatters = ["black", "isort", "zpretty"] paths = "." paths_pyroma = "." paths_black = "." paths_flake8 = "." paths_isort = "." paths_pyroma = "." paths_zpretty = "."
如需修改所有工具的默认检查路径,添加:
toml[tool.plone-code-analysis] paths = "src/ setup.py"
可针对特定工具设置独立路径:
toml[tool.plone-code-analysis] paths_black = "src/ tests/ setup.py" # black检查路径 paths_flake8 = "src/ setup.py" # flake8检查路径
显式指定要启用的检查器或格式化器:
toml[tool.plone-code-analysis] checkers = ["black", "flake8", "isort"] # 仅启用这些检查器 formatters = ["black", "isort"] # 仅启用这些格式化器
black、flake8(通过flakeheaven)和isort的详细配置也在pyproject.toml中设置。示例配置:
toml[tool.black] line-length = 88 target-version = ['py38'] include = '\.pyi?$' [tool.isort] profile = "black" force_alphabetical_sort = true force_single_line = true lines_after_imports = 2 line_length = 120 [tool.flakeheaven] format="grouped" max_line_length=88 show_source=true max-complexity=25 [tool.flakeheaven.plugins] pycodestyle = ["+*"] pyflakes = ["+*"] "flake8-*" = ["+*"] [tool.plone-code-analysis] paths = "src/ setup.py tests/" paths_pyroma = "src/"
进入需要检查或格式化的代码仓库目录。
使用pyproject.toml配置运行所有检查器:
bashdocker run --rm -v "${PWD}":/github/workspace plone/code-quality:latest check
black检查
使用配置文件检查:
bashdocker run --rm -v "${PWD}":/github/workspace plone/code-quality:latest check black
显式指定检查目录和文件:
bashdocker run --rm -v "${PWD}":/github/workspace plone/code-quality:latest check black src setup.py
flake8检查
Flake8检查(含flake8-blind-except、flake8-debugger、flake8-print插件):
bashdocker run --rm -v "${PWD}":/github/workspace plone/code-quality:latest check flake8
显式指定检查目录和文件:
bashdocker run --rm -v "${PWD}":/github/workspace plone/code-quality:latest check flake8 src setup.py
isort检查
bashdocker run --rm -v "${PWD}":/github/workspace plone/code-quality:latest check isort
显式指定检查目录和文件:
bashdocker run --rm -v "${PWD}":/github/workspace plone/code-quality:latest check isort src setup.py
pyroma检查
bashdocker run --rm -v "${PWD}":/github/workspace plone/code-quality:latest check pyroma
显式指定检查包目录:
bashdocker run --rm -v "${PWD}":/github/workspace plone/code-quality:latest check pyroma src/mypackage
zpretty检查
bashdocker run --rm -v "${PWD}":/github/workspace plone/code-quality:latest check zpretty
显式指定检查目录:
bashdocker run --rm -v "${PWD}":/github/workspace plone/code-quality:latest check zpretty src
格式化会修改文件内容,为保留文件所有者信息,需通过--user参数指定当前用户ID和组ID。以下示例使用"$(id -u $(whoami)):$(getent group $(whoami)|cut -d: -f3)"自动获取当前用户信息。
使用配置文件运行所有格式化器:
bashdocker run --user="$(id -u $(whoami)):$(getent group $(whoami)|cut -d: -f3)" --rm -v "${PWD}":/github/workspace plone/code-quality:latest format
black格式化
bashdocker run --user="$(id -u $(whoami)):$(getent group $(whoami)|cut -d: -f3)" --rm -v "${PWD}":/github/workspace plone/code-quality:latest format black
显式指定格式化目录和文件:
bashdocker run --user="$(id -u $(whoami)):$(getent group $(whoami)|cut -d: -f3)" --rm -v "${PWD}":/github/workspace plone/code-quality:latest format src setup.py
isort格式化
bashdocker run --user="$(id -u $(whoami)):$(getent group $(whoami)|cut -d: -f3)" --rm -v "${PWD}":/github/workspace plone/code-quality:latest format isort
显式指定格式化目录和文件:
bashdocker run --user="$(id -u $(whoami)):$(getent group $(whoami)|cut -d: -f3


manifest unknown 错误
TLS 证书验证失败
DNS 解析超时
410 错误:版本过低
402 错误:流量耗尽
身份认证失败错误
429 限流错误
凭证保存错误
来自真实用户的反馈,见证轩辕镜像的优质服务