Skip to main content

A comprehensive library for Odia numeral processing and linguistic conversion.

Project description

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

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

odianumerals-1.0.4.tar.gz (20.3 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

odianumerals-1.0.4-py3-none-any.whl (23.6 kB view details)

Uploaded Python 3

File details

Details for the file odianumerals-1.0.4.tar.gz.

File metadata

  • Download URL: odianumerals-1.0.4.tar.gz
  • Upload date:
  • Size: 20.3 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.11.2

File hashes

Hashes for odianumerals-1.0.4.tar.gz
Algorithm Hash digest
SHA256 825939559cd463be7bf66c074b14d1ff0d6663796ce28fbd9c98c8a5b4904523
MD5 036ccfcac24357d920e7d4b6e691bdb7
BLAKE2b-256 ec1694144edf210e4850923274af024dcd531ade63409a3690f786aecfbfdfd4

See more details on using hashes here.

File details

Details for the file odianumerals-1.0.4-py3-none-any.whl.

File metadata

  • Download URL: odianumerals-1.0.4-py3-none-any.whl
  • Upload date:
  • Size: 23.6 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.11.2

File hashes

Hashes for odianumerals-1.0.4-py3-none-any.whl
Algorithm Hash digest
SHA256 bb278845d1505f6595428d1a37b733760c277b9a69c66db037dee169441c9c8a
MD5 a301b9239fab3e162c9e8d2d3990f9e6
BLAKE2b-256 50220b4c4d7912c9404385882378f7ebf104c8140c49483ddaf464b01ac4368e

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page