roman
Integer to Roman numerals converter
What it is and what it does
Roman is a lightweight converter between Arabic integers and Roman numerals. It provides both a Python API (toRoman and fromRoman functions) and a standalone CLI command for bidirectional conversion. The library handles standard Roman numeral notation and supports lowercase variants. It has no runtime dependencies and installs as a pure Python wheel.
The package is production-stable, actively maintained, and supports modern Python versions (3.10 through 3.14). It's useful for applications that need to display or parse Roman numerals—common in historical data, formal documents, or educational contexts. The CLI makes it accessible from shell scripts or manual conversion tasks.
Use it for:
- Convert integers to Roman numerals for display in formal documents or historical applications.
- Parse Roman numeral input from users and convert back to integers for computation.
- Generate Roman numeral sequences for outline numbering, chapter markers, or copyright dates.
- Batch-convert large sets of numbers via the command-line interface in scripts or pipelines.
- Embed numeral conversion in educational software or tools that teach Roman numeral systems.
Worth the install?
AI-flagged interpretation of the facts on this page — verify before relying
Converts between Arabic integers and Roman numerals in both directions, with a command-line interface and Python API.
Yes. Roman is a stable, zero-dependency utility with active maintenance and no known vulnerabilities. Install it if you need bidirectional Roman numeral conversion. The only caveat is the unclear license treatment—verify ZPL-2.1 compatibility with your project's licensing constraints before use.
Install
roman on PyPI
pip
pip install romanuv
uv add romanpoetry
poetry add romanInstalling roman
Before you install
Low friction installation with no runtime dependencies. Actively maintained with recent releases; last commit 2026-03-02 and version 5.2 released 2025-11-11. Supports current Python versions (3.10+) and drops older versions regularly.
License in practice
Licensed under Zope Public License (ZPL-2.1), classified as OSI-approved. License treatment is marked unclear in the metadata, so you may want to review the actual license terms before use in proprietary or restricted contexts.
Quickstart
import roman
# Convert integer to Roman numeral
print(roman.toRoman(10)) # X
# Convert Roman numeral to integer
print(roman.fromRoman('X')) # 10
# Command line: roman 972 → CMLXXII
Requires Python 3.10 or later.
Verify before relying
- Whether the unclear license treatment affects your intended use case—review ZPL-2.1 terms directly.
- Whether lowercase Roman numeral support (added in 5.0) meets your formatting requirements.
Package facts
| License | ZPL-2.1 (unclear) |
| Python support | supports the current Python release (>=3.10) |
| Install friction | low — pure-Python wheel |
| Runtime dependencies | none |
| Maintenance | actively maintained — 276 days since the last release |
| Last repo commit | |
| First released | |
| Downloads | 1,881,953/month — #3,467 on PyPI (30-day window, as of 2026-08-14) |
| Known vulnerabilities | none known (OSV.dev, checked 2026-08-14) |
Evidence: roman-5.2-py3-none-any.whl
Keywords: roman
Tags
More Utilities packages
Converts domain names between Unicode and…
permissive · top 100 on PyPI
charset-normalizerDetects and normalizes text encoding from…
permissive · top 100 on PyPI
setuptoolsSetuptools is a Python build backend and…
permissive · top 100 on PyPI
pluggyPluggy provides a plugin system that lets you…
permissive · top 100 on PyPI
PygmentsPygments is a syntax highlighter that colorizes…
permissive · top 100 on PyPI
sixSix provides utility functions to write Python…
permissive · top 100 on PyPI
cn2anConverts between Chinese numerals and Arabic…
permissive · top 15,000 on PyPI
roman-numeralsConverts between integers and Roman numerals,…
permissive · top 5,000 on PyPI
roman-numerals-pyConverts between integers and Roman numerals,…
permissive · top 5,000 on PyPI
fastnumbersConverts strings and other inputs to numbers…
permissive · top 15,000 on PyPI
base36Converts integers to and from base36…
permissive · top 15,000 on PyPI
banglaConverts Gregorian dates to the Bengali…
permissive · top 15,000 on PyPI
kanjizeConverts between Japanese kanji number…
permissive · top 15,000 on PyPI
ummalquraConverts between Gregorian and Hijri calendar…
unclear · top 15,000 on PyPI
arabic-reshaperReshapes Arabic text characters into their…
permissive · top 5,000 on PyPI
uromanConverts text in any script to Latin alphabet…
permissive · top 15,000 on PyPI