Skip to content

HarshitDalal/NumWord

Repository files navigation

NumWord

Manual Test Daily Test pypi PyPI Downloads License MIT codecov versions

NumWord is a Python package that converts numbers written in words to their numeric representation and vice versa.


Features

  • Convert words to numbers (supports decimals and large values).
  • Convert numbers to words.
  • Language support:
    • English (en)
    • Hindi (hi)
    • French (fr)
  • Convert numbers to humanized formats:
    • 15000001.5M
    • 1.5M15L / 15 लाख
  • Convert currencies from one to another (using live exchange rates).

Installation

pip install -r requirements.txt

Usage

🔢 Convert word to number

from NumWord import WordToNumber

word_to_num_converter = WordToNumber()

# English
print(word_to_num_converter.convert("one hundred twenty three point four five six"))
# Output: 123.456

# Hindi
print(word_to_num_converter.convert("एक सौ तेईस दशमलव चार पांच छह", lang='hi'))
# Output: 123.456

# French
print(word_to_num_converter.convert("cent vingt-trois virgule quatre cinq six", lang="fr"))
# Output: 123.456

🗣️ Convert number to word

from NumWord import NumberToWord

num_to_word_converter = NumberToWord()

# English
print(num_to_word_converter.convert(123.456))
# Output: one hundred twenty-three point four five six

# Hindi
print(num_to_word_converter.convert(123.456, lang='hi'))
# Output: एक सौ तेईस दशमलव चार पांच छह

# French
print(num_to_word_converter.convert(123.456, lang='fr'))
# Output: cent vingt-trois virgule quatre cinq six

📏 Convert to/from humanized number formats

from NumWord import HumanizeNumber

humanize_number = HumanizeNumber()

# Convert to humanized format in English
print(humanize_number.convert(1500000, lang='en'))
# Output: 1.5M

# Convert to Hindi format
print(humanize_number.convert("1.5M", lang="en", to_lang="hi"))
# Output: 15 लाख

# Convert to shorthand Indian format
print(humanize_number.convert("1.5M", lang="en", to_lang="en-hi"))
# Output: 15L

💱 Currency conversion

from NumWord import Currency

currency = Currency()

# Convert USD to EUR
print(currency.convert(100, "USD", "EUR", with_symbol=False))
# Output: 88.37 EUR 

# Convert EUR to INR with currency symbol
print(currency.convert(50, "EUR", "INR", with_symbol=True))
# Output: ₹ 4781.83

# Note: Currency exchange rates update once per day

🧪 Running Tests

python -m unittest discover tests

📄 License

This project is licensed under the MIT License – see the LICENSE file for details.

Packages

No packages published

Languages