pyroma
Test your project's packaging friendliness
Decision gist · record as of 2026-08-14
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.AI-flagged interpretation of the facts on this page — verify before relying
Before you install
- Requires Python 3.9 or later; build backend must be available or installable in an isolated environment for metadata extraction.
- 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 · maintenance · safety
MIT (permissive) — MIT license (permissive) places no restrictions on use, modification, or distribution for commercial or private projects.
last release 2025-12-09 (248 days) · last repo commit 2026-06-14 · 234 stars
0 known vulnerabilities (OSV.dev, 2026-08-14) · 405,532 downloads/mo, #6,905 on PyPI
Alternatives
Verify before relying
pip install pyroma
pyroma .
pyroma pyroma-1.0.tar.gz
pyroma pyroma- 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.
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 on it.
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
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.
Requires Python 3.9 or later; build backend must be available or installable in an isolated environment for metadata extraction.
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
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 packagesbuilddocutilspackagingpygmentsrequestssetuptoolstrove-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 |
| Classifiers | 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 |
Evidence: pyroma-5.0.1-py3-none-any.whl
Tags
Let your AI agent find packages like this
Example. Real query, live index.
You found this page by searching. An agent finds it by wishing: SkillFed indexes 14,416 PyPI packages by what they can do, searchable in plain language.
wish › “python package quality checker”
- pyromaPyroma rates how well a Python project complies with packaging best…
- flake8Flake8 is a command-line tool that combines PyFlakes, pycodestyle,…
- cpplintCpplint is a command-line static code checker that scans C/C++ files…
Give your agent the search over MCP, or paste the wish link into any chat.
More Quality Assurance packages
Coverage.py measures which lines of Python code are executed during test runs, reporting coverage percentages and identifying untested code paths.
Install it if you want to measure test completeness or enforce coverage thresholds in your project.
Ruff is a Python linter and code formatter written in Rust that combines linting, formatting, and code fixing into a single tool, replacing Flake8, Black, isort, and related utilities.
Pexpect spawns and controls interactive console applications by sending input and matching output patterns, automating tasks that would otherwise require manual interaction.
Black reformats Python source code to a consistent style by parsing entire files and rewriting them according to an opinionated, deterministic set of rules, eliminating manual formatting decisions.
pytest-xdist distributes pytest tests across multiple CPU cores or machines to speed up test execution, with the simplest usage being `pytest -n auto` to spawn workers equal to available CPUs.
Install it if your test suite takes long enough that parallelization would save meaningful time.
Validates AWS CloudFormation templates in YAML or JSON format against resource provider schemas and best practices, checking property values and configuration correctness.
Install it if you work with CloudFormation templates.
See also check-manifest · sampleproject · jupyter-packaging · trove-classifiers · validate-pyproject · pyproject-metadata · setupmeta · pdm-backend · PyScaffold · pip-licenses