Skip to main content

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.

SVG logo of panoptipy

PyPI Status Python Version License Read the documentation at https://aeturrell.github.io/panoptipy/ Tests Codecov pre-commit Ruff Downloads Source

Linux macOS Windows

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, eg:
    • all those written by a (GitHub) team
    • all those by a specific (GitHub) user
  • 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

panoptipy-0.0.7.tar.gz (32.4 kB view details)

Uploaded Source

Built Distribution

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

panoptipy-0.0.7-py3-none-any.whl (33.6 kB view details)

Uploaded Python 3

File details

Details for the file panoptipy-0.0.7.tar.gz.

File metadata

  • Download URL: panoptipy-0.0.7.tar.gz
  • Upload date:
  • Size: 32.4 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for panoptipy-0.0.7.tar.gz
Algorithm Hash digest
SHA256 6bde63fe1483f1dd7d0fbb5954a55c7aeda128318eb2926fc33c127c0f1b4092
MD5 ed3e17a2e4e228097996b012f1c4cb2e
BLAKE2b-256 16def79fda5d34f6cde5eb007de988bc1043d8dedc21f4aeab15daeaf746c2af

See more details on using hashes here.

Provenance

The following attestation bundles were made for panoptipy-0.0.7.tar.gz:

Publisher: release.yml on aeturrell/panoptipy

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file panoptipy-0.0.7-py3-none-any.whl.

File metadata

  • Download URL: panoptipy-0.0.7-py3-none-any.whl
  • Upload date:
  • Size: 33.6 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for panoptipy-0.0.7-py3-none-any.whl
Algorithm Hash digest
SHA256 79f31921d54436ba2def864229f57c24518b083da92cbee5618d0a599490ceea
MD5 2e2236fc1dfa890c48b640f9c879e938
BLAKE2b-256 5d3516a4d1a9b6f784fef6552dc1c22f2cdafcf4c91a4c67e39cf40d59a2fa20

See more details on using hashes here.

Provenance

The following attestation bundles were made for panoptipy-0.0.7-py3-none-any.whl:

Publisher: release.yml on aeturrell/panoptipy

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

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