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.5.tar.gz (33.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.5-py3-none-any.whl (35.7 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: panoptipy-0.0.5.tar.gz
  • Upload date:
  • Size: 33.8 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.5.tar.gz
Algorithm Hash digest
SHA256 bda3b7267ef50de91486e53eda298bd927a0db1bab698b53ebee6374beb3ead6
MD5 07081a4bef89520793cbe59ac4d1bcee
BLAKE2b-256 4e89aeb72ba13e5f72937776448cd31d1c98b5634f8a5049916ea8adf2774d4b

See more details on using hashes here.

Provenance

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

File metadata

  • Download URL: panoptipy-0.0.5-py3-none-any.whl
  • Upload date:
  • Size: 35.7 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.5-py3-none-any.whl
Algorithm Hash digest
SHA256 98feece985d7d8672e9dd48157b724fba3395db411d9c229953db6a54fd4f961
MD5 053e7f5cecd712260a55b0ec37976c6b
BLAKE2b-256 7c6e7b43b70b5148dc6bd3ccd39d1f4b976150c49c70c9987d27ac01b77b9111

See more details on using hashes here.

Provenance

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