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

📦 Installation

pip install 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 and Mathematical 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.3.tar.gz (19.8 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.3-py3-none-any.whl (23.3 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: odianumerals-1.0.3.tar.gz
  • Upload date:
  • Size: 19.8 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.3.tar.gz
Algorithm Hash digest
SHA256 fb46136215520940cc5a3490e9a8963166d29011a8a8a397dbe8d8e6edbf8ce2
MD5 20d266c30761777c7e8e1aff2a537bd2
BLAKE2b-256 e34f6edab16ead0717a257b9e342c31a2d5de26bb5542b50e0bc5946ba6b71f4

See more details on using hashes here.

File details

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

File metadata

  • Download URL: odianumerals-1.0.3-py3-none-any.whl
  • Upload date:
  • Size: 23.3 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.3-py3-none-any.whl
Algorithm Hash digest
SHA256 820f99a247f9ad12d6c37a5ae67d892d09f7897ff1042211edf9b75aee57b0c1
MD5 c4ed5b8b52036e571bb72861f75cc11e
BLAKE2b-256 bdf147300070c6c0b35864f9c790da189c77fc4640980886777855bccfe57fdd

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