Skip to main content

A Python package for static code quality assessment

Project description

panoptipy

⚠️ Under development; use not currently recommended

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.4.tar.gz (33.3 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.4-py3-none-any.whl (35.0 kB view details)

Uploaded Python 3

File details

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

File metadata

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

File hashes

Hashes for panoptipy-0.0.4.tar.gz
Algorithm Hash digest
SHA256 d2e748312433942946e18d6c2548cb163e00a414daf8af6389f44f465113cfba
MD5 c25e22056c88e6fd228c9826ce33e4a4
BLAKE2b-256 a094e95c8e0435acc07a58bd4a28d9c7cd30d1ae8f09c0fa9e8a9e1a5d2a2a24

See more details on using hashes here.

Provenance

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

File metadata

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

File hashes

Hashes for panoptipy-0.0.4-py3-none-any.whl
Algorithm Hash digest
SHA256 e84c3a697db65a4241275a6481ee87757e90bd90959b3dfe762b9cb4e9efcf3e
MD5 4223aad5b6704866e0eadd1a4d808815
BLAKE2b-256 577e3b2d6e36275b2d46a33294f0f9e15816008a33afef3dd038ae7c15cf1877

See more details on using hashes here.

Provenance

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