Skip to main content

pup-check: Professional Python Project: Repo Self Consistency Checker

PyPI Docs Site Repo Python 3.15 License

CI Docs-Deploy Pre-Release Release Links Dependabot

pup logo

Opinionated professional Python repository self-consistency checker

Purpose

Professional Python repositories contain many declarations that should agree with one another.

Examples include:

  • project and package names
  • src/ package structure
  • pyproject.toml metadata
  • command-line entry points
  • Python module paths
  • dependency declarations
  • Python version declarations
  • repository-relative file paths
  • workflow and tooling configuration

Small inconsistencies can remain unnoticed until a command, build, test, documentation workflow, or release fails.

pup-check performs deterministic checks for internal repository consistency and reports problems that should be reviewed.

Check a Repository

# check the current repository
uvx pup-check

# check using the latest published version
uvx pup-check@latest

A successful check returns exit code 0.

A failed consistency check returns a nonzero exit code and reports the detected problem.

Checks

This release checks:

  • pyproject.toml exists
  • pyproject.toml can be read and identifies the project
  • a Python package can be detected when a src/ layout is present
  • modules referenced by [project.scripts] entry points exist

Developer Command Reference

Show command reference

In a machine terminal

Open a machine terminal where you want the project:

git clone https://github.com/pup-pack/pup-check

cd pup-check
code .

In a VS Code terminal

uv self update
uv python pin 3.15
uv lock --upgrade
uv sync --upgrade
# if concurrent dev:
uv pip install -e ../pup-core

uv run pre-commit install
uv run pre-commit autoupdate

git add -A
uv run pre-commit run --all-files
# repeat if changes were made
uv run pre-commit run --all-files

# run locally to test
uv run pup-check
uv run pup-check --diff
uv run pup-check --write
uv run pup-check --write .gitattributes .github/.yamllint.yml .github/workflows/links.yml

# types, tests, docs
uv run ty check
uv run python -m pytest
uv run python -m zensical build

# save progress
git add -A
git commit -m "update"
git push -u origin main

Documentation

Annotations

.annotations/annotations.md

Citation

CITATION.cff

License

MIT

Release files for pup-check 0.1.3

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for pup-check 0.1.3
File Size Uploaded
pup_check-0.1.3.tar.gz 11.4 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for pup-check 0.1.3
File Interpreter ABI Platform
pup_check-0.1.3-py3-none-any.whl Python 3 none any Details

Total release size: 21.6 kB

Release files / pup_check-0.1.3.tar.gz

Download URL pup_check-0.1.3.tar.gz
Size 11.4 kB
Tags Source
SHA-256 checksum
How to use checksums
1c6bf2d450768a6745b2f5de7b6c2521cc142af28b6894c86f9732b5ef2e57ff
BLAKE2b-256 checksum
How to use checksums
f65ebeadbbacf0c66c79a46859847d8693325489662470885811c718e744584f
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Aug 14, 2026.

Transparency log

Release files / pup_check-0.1.3-py3-none-any.whl

Download URL pup_check-0.1.3-py3-none-any.whl
Size 10.1 kB
Tags Python 3
SHA-256 checksum
How to use checksums
437ab6931591ceb8b5c69f6f656f48807461e650ed0781f43884c606dea5548b
BLAKE2b-256 checksum
How to use checksums
a00e108af377c2d128efc9d02fac2a9e0715a6454ded673c909aa707255b9314
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Aug 14, 2026.

Transparency log

Release history Release notifications | RSS feed

This release

0.1.3 This release

2 release files

0.1.2

2 release files

0.1.0

2 release files

0.0.5

2 release files

0.0.4

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page