overpunch
Overpunch Parser/Formatter
What it is and what it does
Overpunch is a lightweight parser and formatter for overpunch-encoded numbers, a legacy numeric representation used primarily in mainframe and COBOL systems to store signed decimal values in fixed-width fields. The encoding embeds the sign in the final character of the number, allowing negative values to be represented without a separate sign byte.
The package provides two main functions: extract() to parse an overpunch-encoded string into a Decimal, and format() to convert a numeric value into overpunch representation. It has no external runtime dependencies and is intended for systems that need to read or generate data in this legacy format, particularly in healthcare and financial data processing where mainframe integration is still common.
Use it for:
- Parse overpunch-encoded fields from mainframe data exports or COBOL-generated files
- Convert legacy financial or healthcare records into standard decimal format for modern systems
- Generate overpunch-formatted output for systems that require this encoding as input
- Integrate with data migration pipelines that bridge legacy and modern platforms
- Handle fixed-width record formats common in batch data processing from older systems
Worth the install?
AI-flagged interpretation of the facts on this page — verify before relying
Parses and formats overpunch-encoded numbers, a legacy numeric encoding used to represent signed decimal values in fixed-width fields.
Yes, but with caution. Install if you actively work with legacy mainframe data or COBOL systems that use overpunch encoding. The package is stable and has no known vulnerabilities, but it has been dormant since 2017 and may not be maintained for modern Python versions. Not recommended for new projects or systems without a specific requirement for this encoding.
Install
overpunch on PyPI
pip
pip install overpunchuv
uv add overpunchpoetry
poetry add overpunchInstalling overpunch
Before you install
High install friction due to source-only distribution. Dormant maintenance since 2017 with no recent activity, though the repository remains unarchived. No runtime dependencies.
License in practice
MIT license permits free use, modification, and distribution with minimal restrictions, making it suitable for commercial and private projects.
Quickstart
pip install overpunch
import overpunch
formatted = overpunch.format(123.45) # Returns '1234E'
extracted = overpunch.extract('1234E') # Returns Decimal('123.45')
No runtime dependencies, but package has not been updated since 2017 and may have compatibility issues with recent Python versions.
Verify before relying
- Whether the package works reliably with modern Python 3 versions beyond those listed in classifiers
- Current status of the GitHub repository and whether it accepts contributions or bug reports
- Whether overpunch encoding is still in active use or primarily historical/legacy systems
Package facts
| License | not declared (permissive) |
| Python support | not specified |
| Install friction | high — source build required |
| Runtime dependencies | none |
| Maintenance | dormant — 3,399 days since the last release |
| Last repo commit | |
| First released | |
| Downloads | 271,984/month — #8,215 on PyPI (30-day window, as of 2026-08-14) |
| Known vulnerabilities | none known (OSV.dev, checked 2026-08-14) |
Evidence: overpunch-1.1.tar.gz
Tags
More Text Processing packages
A drop-in replacement for Python's standard…
permissive · top 100 on PyPI
pyparsingpyparsing provides a library for building text…
permissive · top 1,000 on PyPI
docutilsDocutils converts plaintext documentation in…
unclear · top 1,000 on PyPI
RapidFuzzRapidFuzz provides fast fuzzy string matching…
permissive · top 1,000 on PyPI
tinycss2tinycss2 parses CSS strings into token and…
permissive · top 1,000 on PyPI
llama-parseLlamaParse parses complex documents (PDFs,…
permissive · top 1,000 on PyPI
copybookCopybook parses VSAM copybook definitions and…
permissive · top 15,000 on PyPI
fixedintProvides fixed-width integer classes that…
permissive · top 5,000 on PyPI
ebcdicRegisters additional EBCDIC character encoding…
permissive · top 5,000 on PyPI
leb128Encodes and decodes integers using LEB128…
permissive · top 5,000 on PyPI
roman-numeralsConverts between integers and Roman numerals,…
permissive · top 5,000 on PyPI
price-parserExtracts price amounts and currency symbols…
permissive · top 5,000 on PyPI
FixedWidthConverts between Python dictionaries and…
permissive · top 5,000 on PyPI
prefixedPrefixed provides a Float subclass that formats…
copyleft · top 5,000 on PyPI
webencodingsImplements the WHATWG Encoding standard to map…
permissive · top 1,000 on PyPI
parseParse strings using format-string-like patterns…
permissive · top 5,000 on PyPI