跳转到主要内容

可以对仓库进行检查的框架

项目描述

repo-review

Actions Status Documentation Status

PyPI version Conda-Forge PyPI platforms

这是一个用于构建检查的框架,用于检查存储库是否遵循指南。本身并不做任何事情 - 它至少需要安装一个插件。

安装一个或多个插件后,它将生成一个结果列表 - 绿色勾号表示遵循了此规则,红色叉号表示未遵循规则。黄色警告标志表示由于之前的必需检查失败而跳过了检查。支持四种输出格式: rich, svg, htmljson

插件

以下是一些已知的插件。欢迎您提出将您的插件添加到该列表的请求。

repo-review本身也是validate-pyproject的插件,允许您验证pyproject.toml中的[tool.repo-review]部分。

使用sp-repo-reviewvalidate-pyproject的现场WebAssembly演示在此可用

运行repo-review

Repo-review支持多种运行方式

在安装时,请确保还安装了至少一个插件,因为repo-review没有集成检查。如果您正在使用命令行界面,请确保包含cli额外(repo-review[cli])。一些插件,如sp-repo-review,支持直接运行,例如

pipx run sp-repo-review[cli] <args>

如果包的根不是仓库根,请传递--package-dir a/b/c

配置

Repo-review 支持通过pyproject.toml进行配置

[tool.repo-review]
select = ["A", "B", "C100"]
ignore = ["A100"]

如果命令行上提供了--select--ignore,它们将覆盖pyproject.toml配置。

与其他框架的比较

Repo-review受到了像Flake8Ruff这样的框架的启发。它主要有两点不同:它被设计成查看配置文件而不是Python文件;这意味着它也只需要仓库的一部分(因为大多数文件不是配置文件)。它还被设计成可以在外部仓库上运行,而不是在仓库内部预先配置并运行(它可以这样做)。这些差异也为WebAssembly/远程版本提供了动力,它只需要调用几个API来查看插件感兴趣的文件。

所以,如果您想检查Python代码,请使用Flake8或Ruff。但如果您想检查Flake8或Ruff的配置,请使用repo-review!通常,repo-review插件更关注要求某些内容存在,例如确保所有仓库都有一些pre-commit检查。

repo-review和插件的开发

该项目旨在让开发者和设计检查变得有趣且简单 - 它需要并使用了Python 3.10,并使用了3.9和3.10中的许多新功能。它可能并不完全符合传统,但它使插件开发变得非常简单。它可以在本地、远程和WebAssembly(使用Pyodide)中工作。请参阅文档

有几个关键设计非常实用,使这一切成为可能。首先,所有路径都被处理为可遍历的。这允许基于open_url的简单可遍历实现提供用于Webapp的Web界面。它也允许zipfile.Path同样工作 - 不需要提取。

检查 可以将 fixtures (例如 pytest)作为参数请求。检查文件可以根据需要添加新的 fixtures。Fixtures 是通过入口点指定的,并且也可以接受任何其他 fixtures 作为参数 - rootpackage fixtures 分别代表你正在检查的仓库和包的根目录,是其他 fixtures 的基础,这些 fixtures 是按拓扑排序并缓存的。pyproject 也被提供。通过返回一个包含检查的字典的入口点来指定检查;这也可以接受 fixtures,允许动态检查列表。

检查文件不依赖于主库,并且可以被扩展(类似于 Flake8)。你可以通过 entry-points 注册新的检查文件 - 因此,通过自定义检查或自定义 fixtures 来扩展它既简单又简单。不需要子类化或对基本库进行任何操作 - 不需要依赖 repo-review。

检查尽可能简单,以便于编写。检查是一个具有名称(1-2个字母 + 数字)和文档字符串(检查消息)的类。它应定义一组 requires,其中包含它所依赖的任何检查(按名称),并具有一个检查类方法。此方法的文档字符串是失败消息,并支持替换。此方法的参数是 fixtures,其中 rootpackage 是内置的,提供可遍历的对象。任何其他 fixtures 都可以通过名称访问。新的 fixture 可以使用任何其他 fixtures,并可以产生任何东西;fixtures 是按拓扑排序的、预计算的并缓存的。

运行程序将按拓扑排序检查,没有运行的检查将得到 None 结果,并且不会运行检查方法。前端(Rich 驱动的 CLI 或 Pyodide 网页应用程序)将仅当结果为 False 时渲染 markdown 格式的检查文档字符串。

检查按 Family 组织。插件可以自定义显示名称、更改排序顺序,并添加可选的(动态)描述。与其他收集函数一样,family 入口点也支持 fixtures。

链接

此项目启发了 Try-PyHF,Scikit-HEP 中一个高能物理包的接口。

此项目启发了 abSENSE,一个到 abSENSE 的网络接口。

此项目是为 Scikit-HEP 开发的,后来迁移到 Scientific-Python。

项目详情


下载文件

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

源代码分发

repo_review-0.11.2.tar.gz (43.9 kB 查看哈希值)

上传时间 源代码

构建分发

repo_review-0.11.2-py3-none-any.whl (25.8 kB 查看哈希值)

上传时间 Python 3

由以下支持

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