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/caseused with a Python claim below 3.10 - Structure:
src/, packages, root modules, and tests directory - Repository hygiene:
.gitignoreand 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
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
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
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
506b803000f2f6c1cd2fb19d0d71886812800d35f1d9ef52dc5c38ebb0a282b9
|
|
| MD5 |
a057eafdcc99ca92a266827c763664b1
|
|
| BLAKE2b-256 |
d3331d9680ce48975234bc250b192dfacac65c7d918b540825457d39392831ae
|
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
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
ae5f22fde63a916ed225cdb811ae2861b78f6a8474c651844e94e1adb94174c9
|
|
| MD5 |
a42f9a5b6e024a487ebf66de6f67e93c
|
|
| BLAKE2b-256 |
009afd8b99483b04ae6dfbe7f174e76863498b5f9d55f812e79089de5962b41c
|