https://github.com/aeturrell/panoptipy

A Python Package for Static Code Quality Assessment

https://github.com/aeturrell/panoptipy

Science Score: 26.0%

This score indicates how likely this project is to be science-related based on various indicators:

  • CITATION.cff file
  • codemeta.json file
    Found codemeta.json file
  • .zenodo.json file
    Found .zenodo.json file
  • DOI references
  • Academic publication links
  • Academic email domains
  • Institutional organization owner
  • JOSS paper metadata
  • Scientific vocabulary similarity
    Low similarity (15.2%) to scientific vocabulary
Last synced: 10 months ago · JSON representation

Repository

A Python Package for Static Code Quality Assessment

Basic Info
Statistics
  • Stars: 1
  • Watchers: 1
  • Forks: 0
  • Open Issues: 1
  • Releases: 0
Created about 1 year ago · Last pushed about 1 year ago
Metadata Files
Readme Contributing License

README.md

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:

```bash

Basic scan with default settings

$ panoptipy scan /path/to/project ```

To run on multiple directories, you can specify them as a space-separated list:

```bash

Scan multiple directories

$ panoptipy scan /path/to/project1 /path/to/project2 ```

You can also use wildcards to specify directories:

```bash

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:

bash 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:

bash pip install git+https://github.com/aeturrell/panoptipy.git

Documentation

You can find the full documentation for panoptipy at https://aeturrell.github.io/panoptipy/.

Owner

  • Login: aeturrell
  • Kind: user

GitHub Events

Total
  • Create event: 12
  • Issues event: 9
  • Release event: 3
  • Watch event: 1
  • Delete event: 3
  • Issue comment event: 5
  • Public event: 1
  • Push event: 33
  • Pull request event: 20
Last Year
  • Create event: 12
  • Issues event: 9
  • Release event: 3
  • Watch event: 1
  • Delete event: 3
  • Issue comment event: 5
  • Public event: 1
  • Push event: 33
  • Pull request event: 20

Packages

  • Total packages: 1
  • Total downloads:
    • pypi 17 last-month
  • Total dependent packages: 0
  • Total dependent repositories: 0
  • Total versions: 3
  • Total maintainers: 1
pypi.org: panoptipy

A Python package for static code quality assessment

  • Versions: 3
  • Dependent Packages: 0
  • Dependent Repositories: 0
  • Downloads: 17 Last month
Rankings
Dependent packages count: 9.3%
Average: 30.7%
Dependent repos count: 52.2%
Maintainers (1)
Last synced: 11 months ago

Dependencies

.github/workflows/labeler.yml actions
  • actions/checkout v4 composite
  • crazy-max/ghaction-github-labeler v5 composite
.github/workflows/release.yml actions
  • actions/checkout v4 composite
  • actions/setup-python v5.4.0 composite
  • astral-sh/setup-uv v5 composite
  • pypa/gh-action-pypi-publish release/v1 composite
  • quarto-dev/quarto-actions/setup v2 composite
  • release-drafter/release-drafter v6.1.0 composite
  • salsify/action-detect-and-tag-new-version v2.0.3 composite
.github/workflows/tests.yml actions
  • actions/cache v4.2.0 composite
  • actions/checkout v4 composite
  • actions/download-artifact v4 composite
  • actions/setup-python v5.4.0 composite
  • actions/upload-artifact v4 composite
  • astral-sh/setup-uv v5 composite
  • codecov/codecov-action v5.3.1 composite
pyproject.toml pypi
  • click >=8.1.8
  • gitpython >=3.1.44
  • loguru >=0.7.3
  • nbstripout >=0.8.1
  • pluggy >=1.5.0
  • pre-commit >=4.2.0
  • pyarrow >=19.0.1
  • pydoclint >=0.6.6
  • quartodoc >=0.9.1
  • rich >=14.0.0
  • ruff >=0.11.5
  • toml >=0.10.2
  • validate-pyproject [all]>=0.24.1
uv.lock pypi
  • 168 dependencies