Skip to main content

pyproject-lens

A small, free health scanner for Python projects. Point it at a folder and it checks the basics: packaging metadata, imports versus declared dependencies, Python-version claims, project layout, and Git hygiene.

It is built for the first ten seconds of project review — not to replace Ruff, pytest, Bandit, or a human code review.

Install

pip install pyproject-lens

Use it

pyproject-lens .
pyproject-lens ./another-project --json report.json
pyproject-lens . --markdown report.md
pyproject-lens . --ci --minimum-score 75

You can also use it in Python:

from pyproject_lens import analyze

report = analyze(".")
print(report.score)
print(report.to_json())

What the score means

Each of the five sections starts at 100. Detected issues reduce only the relevant section, and the project score is the rounded average. The rules are deliberately simple and visible in src/pyproject_lens/analyzers.py; it is a conversation starter, not a grade.

Scope for version 0.1

  • Packaging: pyproject.toml, project name, Python version, README
  • Dependencies: direct source imports compared with project.dependencies
  • Compatibility: detects match/case used with a Python claim below 3.10
  • Structure: src/, packages, root modules, and tests directory
  • Repository hygiene: .gitignore and uncommitted changes

Everything is free and open source under the MIT license.

Development

python -m pip install -e .
python -m unittest discover -s tests

Contributions are welcome. Please keep checks practical, explain what they found, and avoid claiming certainty when static analysis cannot prove something.

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

pyproject_lens-0.1.0.tar.gz (8.7 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

pyproject_lens-0.1.0-py3-none-any.whl (8.6 kB view details)

Uploaded Python 3

File details

Details for the file pyproject_lens-0.1.0.tar.gz.

File metadata

  • Download URL: pyproject_lens-0.1.0.tar.gz
  • Upload date:
  • Size: 8.7 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.14.2

File hashes

Hashes for pyproject_lens-0.1.0.tar.gz
Algorithm Hash digest
SHA256 506b803000f2f6c1cd2fb19d0d71886812800d35f1d9ef52dc5c38ebb0a282b9
MD5 a057eafdcc99ca92a266827c763664b1
BLAKE2b-256 d3331d9680ce48975234bc250b192dfacac65c7d918b540825457d39392831ae

See more details on using hashes here.

File details

Details for the file pyproject_lens-0.1.0-py3-none-any.whl.

File metadata

  • Download URL: pyproject_lens-0.1.0-py3-none-any.whl
  • Upload date:
  • Size: 8.6 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.14.2

File hashes

Hashes for pyproject_lens-0.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 ae5f22fde63a916ed225cdb811ae2861b78f6a8474c651844e94e1adb94174c9
MD5 a42f9a5b6e024a487ebf66de6f67e93c
BLAKE2b-256 009afd8b99483b04ae6dfbe7f174e76863498b5f9d55f812e79089de5962b41c

See more details on using hashes here.

Release history Release notifications | RSS feed

This release

0.1.0 This release

2 files

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page