审查存储库以符合Scikit-HEP开发者指南
项目描述
Scikit-HEP repo-review
此工具可以检查存储库的风格。用法如下
pipx run 'scikit-hep-repo-review[cli]' <path to repository>
这将生成一个结果列表 - 绿色勾号表示遵循此规则,红色叉号表示未遵循规则。黄色警告符号表示检查被跳过,因为之前的必需检查失败。某些检查可能会失败,这是正常的 - 目标是提醒您注意所有可能的问题,而不是强制遵守任意检查。最终可能会有一种方式来标记忽略的检查。
例如,GH101
期望您的所有操作文件都有一个很好的name:
字段。如果您对CI中看到的基于文件的名称感到满意,您应该可以自由地忽略此检查(暂时只从视觉上忽略它,最终可能会添加一种指定忽略检查的方式)。
所有检查至少以某种方式在Scikit-HEP 开发者指南中提及。您应该首先阅读它 - 如果您不尝试遵循它们,一些检查可能无法正常工作。例如,指南指定 pytest 配置应放置在 pyproject.toml
中。如果您将其放置在其他位置,则所有 pytest 检查都将被跳过。
然而,您不必在 Scikit-HEP 中才能发现这很有用 - 至少部分遵循指南的存储库示例包括 pypa/cibuildwheel
、pypa/build
和 pybind/pybind11
。
开发
这个存储库旨在开发有趣 - 它需要并使用 Python 3.10,并使用了 3.9 和 3.10 中的许多新功能。可能不是完全传统,但很有趣。
有几个关键设计非常有用,并使这成为可能。首先,所有路径都被处理为可遍历对象。这允许基于 open_url
的简单可遍历实现提供一个用于 webapp 的 Web 界面。这也允许 zipfile.Path
也能正常工作 - 无需提取。
检查可以请求固定值(如 pytest)作为参数。检查文件可以根据需要添加新的固定值。固定值使用入口点指定,并可以接受任何其他固定值作为参数 - package
固定值代表您正在检查的包的根,是所有其他固定值的基础。检查通过返回检查字典的入口点指定;这也可以接受固定值,允许动态检查列表。
检查文件不依赖于主库,并且可以扩展(类似于 Flake8)。您通过入口点注册新的检查文件 - 因此,通过自定义检查或自定义固定值扩展此功能很容易且简单。无需子类化或对基础库进行任何操作 - 无需依赖项。
检查尽可能简单,以便容易编写。检查是一个具有名称(1-2个字母+数字)和文档字符串(检查消息)的类。它应该定义一个 requires
集合,其中包含它所依赖的任何检查(按名称),并具有一个检查类方法。此方法的文档字符串是失败消息,并支持替换。此方法的方法参数是固定值,其中 package
是内置的一个,提供包目录作为可遍历对象。任何其他固定值都可以通过名称访问。新的固定值提供一个包可遍历对象,可以生成任何内容;固定值是拓扑排序的,预先计算和缓存的。
运行器将拓扑排序检查,未运行的检查将获得 None
结果,并且检查方法将不会运行。前端(由 Rich 驱动的 CLI 或 Pyodide webapp)仅在结果为 False
时渲染 Markdown 格式的检查文档字符串。
链接
此项目启发了Try-PyHF,Scikit-HEP 中一个高能物理包的界面。
此项目启发了abSENSE,abSENSE 的 Web 界面。
项目详情
下载文件
下载适合您平台的应用程序。如果您不确定选择哪个,请了解更多关于安装包的信息。
源分布
构建版本
scikit_hep_repo_review-0.6.1.tar.gz 的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 680b299f7469d138bb4b08daf58e64be3736c10ef67f04854c732399a30e7db4 |
|
MD5 | a097255cebc5a7c38bec251c87d489c4 |
|
BLAKE2b-256 | cc948d918e4594d43e2f19f9a97f5780bb1858ac1b4cffaf93dff3649409449e |
scikit_hep_repo_review-0.6.1-py3-none-any.whl 的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 2dd5745eb0f15f34a94f6955e8ef5b9c9db413544035600e00f8cb44f8ac1242 |
|
MD5 | ad4360256cac1cde9470c7027b8905ab |
|
BLAKE2b-256 | 24f93005626abeb80dc2d4ca51c2391636fdf1aa49a625a1e879daac26af1bba |