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.8.tar.gz (51.8 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.8-py3-none-any.whl (33.6 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: panoptipy-0.0.8.tar.gz
  • Upload date:
  • Size: 51.8 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.8.tar.gz
Algorithm Hash digest
SHA256 38ab37803dfd38ed3dd6a40af9075ba9dbf9c026b4798fe5f282ac911d035a3e
MD5 8d2b72ba24cda9f8248116e5e6e52b33
BLAKE2b-256 849dabb5c381defdee9593706dc57b1f46aa2b69a68871012b472fa143c52291

See more details on using hashes here.

Provenance

The following attestation bundles were made for panoptipy-0.0.8.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.8-py3-none-any.whl.

File metadata

  • Download URL: panoptipy-0.0.8-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.8-py3-none-any.whl
Algorithm Hash digest
SHA256 e2b0f7c6222670cea049db7c0867be30a85ead1b8bac1ca7f3fa886d7b43f444
MD5 5a49525ae95fa51ef625f657faef19cd
BLAKE2b-256 cbd159fd11a76f2fa54f9aa9bdd71e08ef0441acd810db7b0b2d3f03b9bde97b

See more details on using hashes here.

Provenance

The following attestation bundles were made for panoptipy-0.0.8-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