Review repos for compliance to the Scientific-Python development guidelines
Project description
sp-repo-review
provides checks based on the Scientific-Python
Development Guide at scientific-python/cookie for repo-review.
This tool can check the style of a repository. Use like this:
pipx run 'sp-repo-review[cli]' <path to repository>
This will produce a list of results - green checkmarks mean this rule is followed, red x’s mean the rule is not. A yellow warning sign means that the check was skipped because a previous required check failed. Some checks will fail, that’s okay - the goal is bring all possible issues to your attention, not to force compliance with arbitrary checks. Eventually there might be a way to mark checks as ignored.
For example, GH101
expects all your action files to have a nice name:
field.
If you are happy with the file-based names you see in CI, you should feel free
to simply ignore this check (just visually ignore it for the moment, a way to
specify ignored checks will likely be added eventually).
All checks are mentioned at least in some way in the Scientific-Python
Development Guide. You should read that first - if you are not attempting to
follow them, some of the checks might not work. For example, the guidelines
specify pytest configuration be placed in pyproject.toml
. If you place it
somewhere else, then all the pytest checks will be skipped.
This was originally developed for Scikit-HEP before moving to Scientific Python.
Other ways to use
You can also use GitHub Actions:
- uses: scientific-python/cookie@<version>
Or pre-commit:
- repo: https://github.com/scientific-python/cookie
rev: <version>
hooks:
- id: sp-repo-review
If you use additional_dependencies
to add more plugins, like
validate-pyproject
, you should also include "repo-review[cli]"
to ensure the
CLI requirements are included.
List of checks
General
PY001
: Has a pyproject.tomlPY002
: Has a README.(md|rst) filePY003
: Has a LICENSE* filePY004
: Has docs folderPY005
: Has tests folderPY006
: Has pre-commit configPY007
: Supports an easy task runner (nox or tox)
PyProject
PP002
: Has a proper build-system tablePP003
: Does not list wheel as a build-depPP301
: Has pytest in pyprojectPP302
: Sets a minimum pytest to at least 6PP303
: Sets the test pathsPP304
: Sets the log level in pytestPP305
: Specifies xfail_strictPP306
: Specifies strict configPP307
: Specifies strict markersPP308
: Specifies useful pytest summaryPP309
: Filter warnings specified
Documentation
RTD100
: Uses ReadTheDocs (pyproject config)RTD101
: You have to set the RTD version number to 2RTD102
: You have to set the RTD build imageRTD103
: You have to set the RTD python version
GitHub Actions
GH100
: Has GitHub Actions configGH101
: Has nice namesGH102
: Auto-cancel on repeated PRsGH103
: At least one workflow with manual dispatch triggerGH104
: Use unique names for upload-artifactGH200
: Maintained by DependabotGH210
: Maintains the GitHub action versions with DependabotGH211
: Do not pin core actions as major versionsGH212
: Require GHA update grouping
MyPy
MY100
: Uses MyPy (pyproject config)MY101
: MyPy strict modeMY102
: MyPy show_error_codes deprecatedMY103
: MyPy warn unreachableMY104
: MyPy enables ignore-without-codeMY105
: MyPy enables redundant-exprMY106
: MyPy enables truthy-bool
Pre-commit
PC100
: Has pre-commit-hooksPC110
: Uses black or ruff-formatPC111
: Uses blacken-docsPC140
: Uses a type checkerPC160
: Uses a spell checkerPC170
: Uses PyGrep hooks (only needed if rST present)PC180
: Uses a markdown formatterPC190
: Uses RuffPC191
: Ruff show fixes if fixes enabledPC901
: Custom pre-commit CI message
Ruff
RF001
: Has Ruff configRF002
: Target version must be setRF003
: src directory doesn't need to be specified anymore (0.6+)RF101
: Bugbear must be selectedRF102
: isort must be selectedRF103
: pyupgrade must be selectedRF201
: Avoid using deprecated config settingsRF202
: Use (new) lint config section
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
File details
Details for the file sp_repo_review-2024.8.19.tar.gz
.
File metadata
- Download URL: sp_repo_review-2024.8.19.tar.gz
- Upload date:
- Size: 153.1 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/5.1.0 CPython/3.12.5
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | f457cd74571f1d7d0ced78ff739db49b9f524712c73f219d9b0f4f6a130494c9 |
|
MD5 | 72ea386f275c180c8c7c1dfc5851ab04 |
|
BLAKE2b-256 | 6a3223e447b877e499b68f302febb53ffdc4b0d2a06f4be6f39806f5b65bd7b3 |
File details
Details for the file sp_repo_review-2024.8.19-py3-none-any.whl
.
File metadata
- Download URL: sp_repo_review-2024.8.19-py3-none-any.whl
- Upload date:
- Size: 20.5 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/5.1.0 CPython/3.12.5
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | a8373d94b5dc5e7b5eeeb330b02c44b3f1965bd8dd5090169bc42e1eaf6617e8 |
|
MD5 | f464e7168a1992188d76a68b2566bb94 |
|
BLAKE2b-256 | 7901a4f2d767910d091a202fa0e448b31e72fe070689bbbaf859d112157fdd5e |