skillfed

pyroma

Test your project's packaging friendliness

pyroma v5.0.1 405.5K downloads/30d#6,905 on PyPI234
Permissive license MIT Active released

What it is and what it does

Pyroma is a command-line tool and Python library that audits Python packaging metadata and project structure against ecosystem best practices. It checks for required fields (name, version, description), validates version strings against PEP 386, verifies that long descriptions are substantive and render correctly via Docutils, ensures classifiers and metadata like author, license, and supported Python versions are present, and for PyPI packages specifically, checks ownership distribution and source distribution availability. The tool produces a numeric rating (out of 10) and a list of specific issues to address.

You run it on a local project directory before release, on a distribution archive before upload, or by package name directly against PyPI. It's designed both as a standalone script and as an importable library for integration into release workflows, including pre-commit hooks. The tool has evolved to use PEP 517 build backends and modern metadata standards, dropping support for setup.py monkey-patching in version 5.0.

Use it for:

  • Check a local project before release to catch missing metadata, bad version strings, or short descriptions.
  • Audit a PyPI package by name to verify ownership distribution and source distribution presence.
  • Integrate into pre-commit hooks to enforce packaging standards on every commit.
  • Validate that long_description renders correctly as HTML via Docutils before uploading.
  • Verify classifier coverage for Python versions and license declarations match project intent.

Worth the install?

AI-flagged interpretation of the facts on this page — verify before relying

Pyroma rates how well a Python project complies with packaging best practices and identifies issues that could be improved, working on local directories, distribution files, or PyPI packages.

Yes. Pyroma is actively maintained, has no known vulnerabilities, installs with low friction, and solves a real problem—catching packaging metadata issues before they reach PyPI or frustrate users. The MIT license is unrestricted. Use it if you want automated feedback on whether your project meets Python packaging conventions.

Install

pyroma on PyPI

pip

pip install pyroma

uv

uv add pyroma

poetry

poetry add pyroma

Installing pyroma

Before you install

Low friction install with seven runtime dependencies (build, docutils, packaging, pygments, requests, setuptools, trove-classifiers). Actively maintained with a recent release in December 2025 and ongoing commits through June 2026.

License in practice

MIT license (permissive) places no restrictions on use, modification, or distribution for commercial or private projects.

Quickstart

pip install pyroma
pyroma .
pyroma pyroma-1.0.tar.gz
pyroma pyroma

Requires Python 3.9 or later; build backend must be available or installable in an isolated environment for metadata extraction.

Verify before relying

  • Whether the wheel build rating (added in 5.0b1) is useful in practice or requires running python -m build separately for diagnostics.
  • Performance impact of running check-manifest as an integrated test when the package is installed alongside pyroma.

Package facts

License MIT (permissive)
Python support supports the current Python release (>=3.9)
Install friction low — pure-Python wheel
Runtime dependencies 7 — build, docutils, packaging, pygments, requests, setuptools, trove-classifiers
Maintenance actively maintained — 248 days since the last release
Last repo commit
First released
Downloads 405,532/month — #6,905 on PyPI (30-day window, as of 2026-08-14)
Known vulnerabilities none known (OSV.dev, checked 2026-08-14)

Evidence: pyroma-5.0.1-py3-none-any.whl

Keywords: pypi, quality, testing

Development Status :: 5 - Production/StableIntended Audience :: DevelopersLicense :: OSI Approved :: MIT LicenseOperating System :: OS IndependentProgramming Language :: PythonProgramming Language :: Python :: 3Programming Language :: Python :: 3 :: OnlyProgramming Language :: Python :: 3.10Programming Language :: Python :: 3.11Programming Language :: Python :: 3.12Programming Language :: Python :: 3.13Programming Language :: Python :: 3.14Programming Language :: Python :: 3.9Programming Language :: Python :: Implementation :: CPythonProgramming Language :: Python :: Implementation :: PyPy

Tags

python package quality checkerpypi packaging compliancepython project rating toolpackaging best practices validatorpython distribution quality auditsetup.py metadata checkerpypi package scorer
packaging-auditpre-commit-readypypi-metadata

More Quality Assurance packages