Skip to main content

Convert numbers and dates into grammatically correct Nepali words.

Project description

nepali-date-numword

nepali-date-numword converts numbers and dates into grammatically correct Nepali words. It supports Nepali number wording, Gregorian date wording, Bikram Sambat date wording, currency suffixes, negative values, floats, and a small CLI for everyday use.

Features

  • Convert integers using the Nepali numbering system: सय, हजार, लाख, करोड, अरब
  • Handle irregular Nepali values from 0 to 100
  • Support negative numbers and floating-point values
  • Add currency suffixes like रुपैयाँ
  • Convert Gregorian dates into Nepali words
  • Convert Bikram Sambat dates into Nepali words
  • Convert AD dates to BS output with use_bs=True
  • Provide CLI support for numbers and dates

Installation

pip install nepali-date-numword

Python 3.10 or newer is required.

For local development:

pip install -e .[dev]

Quick Usage

from datetime import date

from nepali_date_numword import date_to_words, number_to_words, text_to_words

print(number_to_words(123))
# एक सय तेइस

print(number_to_words(-12.5))
# माइनस बाह्र दशमलव पाँच

print(number_to_words(123, currency=True))
# एक सय तेइस रुपैयाँ

print(date_to_words("2024-01-15", calendar="AD"))
# सन् दुई हजार चौबीस जनवरी पन्ध्र तारिख

print(date_to_words("2080-10-01", calendar="BS"))
# वि.सं. दुई हजार अस्सी माघ एक गते

print(date_to_words(date(2024, 1, 15), calendar="AD", use_bs=True))
# वि.सं. दुई हजार अस्सी माघ एक गते

print(date_to_words("2024-01-15", short=True))
# १५ जनवरी २०२४

print(text_to_words("I paid Rs. 123 on 2024-01-15."))
# I paid एक सय तेइस रुपैयाँ on सन् दुई हजार चौबीस जनवरी पन्ध्र तारिख.

API

number_to_words(number, currency=False)

Convert an integer or floating-point value into Nepali words.

Examples:

number_to_words(0)
number_to_words(100000)
number_to_words(12.5)
number_to_words(123, currency=True)

date_to_words(value, calendar="AD", use_bs=False, short=False)

Convert a Gregorian or Bikram Sambat date into Nepali words.

Accepted input forms:

  • ISO string: "2024-01-15"
  • datetime.date or datetime.datetime
  • Tuple: (2024, 1, 15)

Examples:

date_to_words("2024-01-15", calendar="AD")
date_to_words("2080-10-01", calendar="BS")
date_to_words((2024, 1, 15), calendar="AD", use_bs=True)

text_to_words(text, use_bs=False, include_suffix=True, short_dates=False)

Convert mixed sentences by detecting:

  • ISO dates such as 2024-01-15
  • plain numbers such as 123 or 12.5
  • currency patterns such as Rs. 500, NPR 500, or 500 रुपैयाँ

Example:

text_to_words("Invoice total is Rs. 123 and due on 2024-01-15.")

CLI

nepali-date-numword 123
nepali-date-numword --currency 123
nepali-date-numword --date 2024-01-15
nepali-date-numword --date 2024-01-15 --bs
nepali-date-numword --date 2080-10-01 --calendar BS
nepali-date-numword --date 2024-01-15 --short
nepali-date-numword --text "I paid Rs. 123 on 2024-01-15."

Development

Run tests with:

pytest

Notes

  • use_bs=True converts Gregorian input into Bikram Sambat output.
  • BS formatting works directly for explicit BS input such as 2080-10-01.
  • The package keeps bsdatetime as a runtime dependency so installed distributions can do AD-to-BS conversion accurately.

License

MIT

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

nepali_date_numword-0.1.2.tar.gz (11.5 kB view details)

Uploaded Source

Built Distribution

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

nepali_date_numword-0.1.2-py3-none-any.whl (11.7 kB view details)

Uploaded Python 3

File details

Details for the file nepali_date_numword-0.1.2.tar.gz.

File metadata

  • Download URL: nepali_date_numword-0.1.2.tar.gz
  • Upload date:
  • Size: 11.5 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for nepali_date_numword-0.1.2.tar.gz
Algorithm Hash digest
SHA256 242a6fd0a7a97c90a564ab611103b55492e1bb03768adf886a42e9be782374e6
MD5 23a2c92c88d6eee7c87dcf866a767697
BLAKE2b-256 04432a8053ea9e6e8212f2b57cafda3766e81697d87ebf58207f3f5a754ab3e1

See more details on using hashes here.

Provenance

The following attestation bundles were made for nepali_date_numword-0.1.2.tar.gz:

Publisher: publish.yml on Naearp777/nepali_date_numword

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file nepali_date_numword-0.1.2-py3-none-any.whl.

File metadata

File hashes

Hashes for nepali_date_numword-0.1.2-py3-none-any.whl
Algorithm Hash digest
SHA256 2560df0ec7569a092ae94a4097630ea72262ceea233e82d2cd1e8b84225718d2
MD5 eaccafabc6140fd1c2b9ecb996bffb59
BLAKE2b-256 a3a25e4958c4cdeb5b4c7b54550093cd7963d92267817e6e6aa9edb0ac969c50

See more details on using hashes here.

Provenance

The following attestation bundles were made for nepali_date_numword-0.1.2-py3-none-any.whl:

Publisher: publish.yml on Naearp777/nepali_date_numword

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

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