odianumerals
odianumerals is a linguistically accurate and extensible Python library for working with Odia numerals and number expressions.
It supports modern and classical Odia numbering systems, currency representation, ordinals, and natural-language mathematical expressions.
Built with a strong focus on Indian numbering conventions and Odia linguistic correctness, this library is suitable for NLP, education, localization, and digital humanities projects.
🚀 Features
-
Digit Conversion
- English ↔ Odia digit transformation
- Decimal and formatted numeric support
-
Number to Words (Odia)
- Integer and decimal conversion
- Indian scale: Thousand, Lakh, Crore
- Grammatically accurate Odia word formation
-
Number to Words (English – Indian System)
- English number words using Lakh/Crore grouping
-
Classical Barnabodha System
- Traditional Odia large-number units
(Ayuta, Niyuta, Koti, Arbuda, etc.)
- Traditional Odia large-number units
-
Ordinal Numbers
- Ordinal numerals:
1 → ୧ମ,2 → ୨ୟ - Ordinal words:
1st → ପ୍ରଥମ,2nd → ଦ୍ୱିତୀୟ
- Ordinal numerals:
-
Currency Representation
- Tanka–Paisa conversion
- Accurate fractional handling
-
Mathematical Expressions
- Human-readable Odia sentences for arithmetic operations
-
NLP Utilities
- Detect, replace, and normalize numerals inside text blocks
Install
- Requires Python 3.10 or higher.
- The library is tested on Python 3.10, 3.11, 3.12, 3.13, and 3.14.
📦 Installation
pip install odianumerals
From source
git clone https://github.com/srinibashsamal/odianumerals.git
cd odianumerals
🛠 Usage Examples
Digit Conversion and Cardinal Words
import odianumerals as odi
# Script Conversion
print(odi.to_odia_digits(1234.50))
# Output: ୧୨୩୪.୫୦
# Odia Word Representation
print(odi.to_odia_words(150000))
# Output: ଏକ ଲକ୍ଷ ପଚାଶ ହଜାର
# English (Indian Scale) Words
print(odi.to_english_words(125000))
# Output: one lakh twenty-five thousand
Ordinals and Currency
# Numeric Ordinals (Supports 'or' or 'od')
print(odi.to_ordinal_numeral(1, lang="or"))
# Output: ୧ମ
# Word-based Ordinals
print(odi.to_ordinal_words(2, lang="or"))
# Output: ଦ୍ୱିତୀୟ
# Monetary Formatting
print(odi.to_odia_currency(105.75))
# Output: ଏକ ଶହ ପାଞ୍ଚ ଟଙ୍କା ସତୁରୀ ପଇସା
Classical Expressions and Logic
# Classical Barnabodha System
print(odi.to_odia_barnabodha_words(10000))
# Output: ଏକ ଅୟୁତ (One Ayuta)
Mathematical Expressions
# Math in Words
print(odi.calculate_and_express(10, "+", 5))
# Output: ଦଶ ମିଶାଣ ପାଞ୍ଚ ସମାନ ପନ୍ଦର
🎯 Use Cases
- Odia NLP: Text normalization and pre-processing for AI models.
- FinTech: Generating human-readable invoices and receipts in Odia.
- Education: Building math and linguistic e-learning tools for Odisha.
- Localization: Adapting global software for the Odia-speaking demographic.
✍️ Author
Srinibash Samal
A dedicated tool for Odia Language Technology.
🤝 Contributing
Contributions are welcome! If you find a bug or have a feature request, please open an issue on the GitHub repository.
🗺️ Roadmap
- Enhanced decimal pronunciation rules
- Pluralization support for linguistic accuracy
- Text-to-speech friendly output modes
- Expanded Barnabodha unit coverage
- Integration helpers for popular NLP pipelines
📜 License
This project is released under the MIT License.
Made with ❤️ for the Odia language
Metadata
Release files for odianumerals 1.0.4
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | Provenance | Actions |
|---|---|---|---|---|
| odianumerals-1.0.4.tar.gz | 20.3 kB | Without provenance | Details for odianumerals-1.0.4.tar.gz |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Actions Reset |
|---|---|---|---|---|
| odianumerals-1.0.4-py3-none-any.whl | Python 3 | none | any | Details for odianumerals-1.0.4-py3-none-any.whl |
Total release size: 43.9 kB
Release files / odianumerals-1.0.4.tar.gz
| Download URL | odianumerals-1.0.4.tar.gz |
|---|---|
| Size | 20.3 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
825939559cd463be7bf66c074b14d1ff0d6663796ce28fbd9c98c8a5b4904523
|
|
BLAKE2b-256 checksum How to use checksums |
ec1694144edf210e4850923274af024dcd531ade63409a3690f786aecfbfdfd4
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.11.2
|
Release files / odianumerals-1.0.4-py3-none-any.whl
| Download URL | odianumerals-1.0.4-py3-none-any.whl |
|---|---|
| Size | 23.6 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
bb278845d1505f6595428d1a37b733760c277b9a69c66db037dee169441c9c8a
|
|
BLAKE2b-256 checksum How to use checksums |
50220b4c4d7912c9404385882378f7ebf104c8140c49483ddaf464b01ac4368e
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.11.2
|
Security for odianumerals 1.0.4
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
No provenance found
None of the files in this release were uploaded with provenance metadata.
A note on package security
PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.
To learn more about protecting yourself from malicious actors, visit our package security documentation.