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 Ruff pre-commit Tests Codecov Read the documentation at https://aeturrell.github.io/panoptipy/ Downloads

Linux macOS Windows Source

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

panoptipy-0.0.9.tar.gz (54.6 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.9-py3-none-any.whl (34.4 kB view details)

Uploaded Python 3

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

Hashes for panoptipy-0.0.9.tar.gz
Algorithm Hash digest
SHA256 946cf39a4c937ed70d2798d51831df7271987e0840bae825eccb121ce4770efa
MD5 65a1ed7892ca036ff9d8f875b1ddca2e
BLAKE2b-256 2adbfefcc0b4b5a41abcccc96d1a1884a42a2a914f8aa081fb8f799c1710a5e7

See more details on using hashes here.

Provenance

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

Hashes for panoptipy-0.0.9-py3-none-any.whl
Algorithm Hash digest
SHA256 0e723a2fa962863fef55437c9a7838f315e32ba8e62f5dc26318a6466f6f8602
MD5 15a72ea23b4cc8599154762ba57cd9b2
BLAKE2b-256 3dfe1e97275bb7aa47dc18ce575616195bb4281a9c69c420750c6a4a4382954e

See more details on using hashes here.

Provenance

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