Skip to main content

odianumerals

Python Version PyPI version License: MIT GitHub Repo Project Status

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.)
  • Ordinal Numbers

    • Ordinal numerals: 1 → ୧ମ, 2 → ୨ୟ
    • Ordinal words: 1st → ପ୍ରଥମ, 2nd → ଦ୍ୱିତୀୟ
  • 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)

Source distribution for odianumerals 1.0.4
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)

Table of built distributions (wheels) for odianumerals 1.0.4
File Interpreter ABI Platform Actions
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.

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page