A Python package for static code quality assessment
Project description
panoptipy
A Package for the Static Code Quality Assessment of Python codebases. It scans local codebases or remote GitHub repositories and generates a report summarising various code quality metrics.
Quickstart
The main way to use panoptipy is through its command-line interface. Here's how to scan a Python codebase that is in the "project" directory:
# Basic scan with default settings
$ panoptipy scan /path/to/project
To run on multiple directories, you can specify them as a space-separated list:
# Scan multiple directories
$ panoptipy scan /path/to/project1 /path/to/project2
You can also use wildcards to specify directories:
# Scan all directories in the current directory
$ panoptipy scan ./*
Using the scan command in this way will:
- Load all configured checks (there's a list below)
- Analyse your codebase
- Generate a report with the results
- Output the report to the console (by default)
The scan report shows:
- Overall codebase rating (Gold, Silver, Bronze, or Problematic)
- A summary of whether each individual check passed or not
- Detailed information about any failures
What is panoptipy for?
There is a lot of overlap between panoptipy and pre-commit (with the relevant hooks). So what are the differences?
- pre-commit is meant to be used by developers to check their own code before they commit it or in Continuous Integration (CI) / Continous Deployment (CD) pipelines.
- panoptipy has features that help the leaders and managers of other developers. To that end it can summarise the results of many code repos at once.
- panoptipy can be be used to generate and export reports in a variety of formats (JSON, parquet) for further analysis.
These packages are similar in that they can both be used in CI/CD pipelines but pre-commit should be your first port of call for that and is not only more geared to that use, but also far more mature.
Installation
You can use panoptipy as a stand-alone tool via Astral's uv package:
uvx panoptipy scan .
Alternatively, you can install it as a Python package with pip install or uv add.
To install the development version from git, use:
pip install git+https://github.com/aeturrell/panoptipy.git
Documentation
You can find the full documentation for panoptipy at https://aeturrell.github.io/panoptipy/.
Project details
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 panoptipy-0.0.9.tar.gz.
File metadata
- Download URL: panoptipy-0.0.9.tar.gz
- Upload date:
- Size: 54.6 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
946cf39a4c937ed70d2798d51831df7271987e0840bae825eccb121ce4770efa
|
|
| MD5 |
65a1ed7892ca036ff9d8f875b1ddca2e
|
|
| BLAKE2b-256 |
2adbfefcc0b4b5a41abcccc96d1a1884a42a2a914f8aa081fb8f799c1710a5e7
|
Provenance
The following attestation bundles were made for panoptipy-0.0.9.tar.gz:
Publisher:
release.yml on aeturrell/panoptipy
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
panoptipy-0.0.9.tar.gz -
Subject digest:
946cf39a4c937ed70d2798d51831df7271987e0840bae825eccb121ce4770efa - Sigstore transparency entry: 790545217
- Sigstore integration time:
-
Permalink:
aeturrell/panoptipy@39e310d791bd1f0255915d9c18e9318c3acebcfa -
Branch / Tag:
refs/heads/main - Owner: https://github.com/aeturrell
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yml@39e310d791bd1f0255915d9c18e9318c3acebcfa -
Trigger Event:
push
-
Statement type:
File details
Details for the file panoptipy-0.0.9-py3-none-any.whl.
File metadata
- Download URL: panoptipy-0.0.9-py3-none-any.whl
- Upload date:
- Size: 34.4 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
0e723a2fa962863fef55437c9a7838f315e32ba8e62f5dc26318a6466f6f8602
|
|
| MD5 |
15a72ea23b4cc8599154762ba57cd9b2
|
|
| BLAKE2b-256 |
3dfe1e97275bb7aa47dc18ce575616195bb4281a9c69c420750c6a4a4382954e
|
Provenance
The following attestation bundles were made for panoptipy-0.0.9-py3-none-any.whl:
Publisher:
release.yml on aeturrell/panoptipy
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
panoptipy-0.0.9-py3-none-any.whl -
Subject digest:
0e723a2fa962863fef55437c9a7838f315e32ba8e62f5dc26318a6466f6f8602 - Sigstore transparency entry: 790545219
- Sigstore integration time:
-
Permalink:
aeturrell/panoptipy@39e310d791bd1f0255915d9c18e9318c3acebcfa -
Branch / Tag:
refs/heads/main - Owner: https://github.com/aeturrell
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yml@39e310d791bd1f0255915d9c18e9318c3acebcfa -
Trigger Event:
push
-
Statement type: