Rule-based number formatting using Unicode CLDR data
Project description
Unicode RBNF
A pure Python implementation of rule based number formatting (RBNF) using the Unicode Common Locale Data Repository (CLDR).
This lets you spell out numbers for a large number of locales:
from unicode_rbnf import RbnfEngine
engine = RbnfEngine.for_language("en")
assert engine.format_number(1234) == "one thousand two hundred thirty-four"
Depending on the locale, different rulesets are supported as well:
from unicode_rbnf import RbnfEngine, RulesetName
engine = RbnfEngine.for_language("en")
assert engine.format_number(1999, RulesetName.YEAR) == "nineteen ninety-nine"
assert engine.format_number(11, RulesetName.ORDINAL) == "eleventh"
Supported locales
See: https://github.com/unicode-org/cldr/tree/release-44/common/rbnf
Engine implementation
Not all features of the RBNF engine are implemented. The following features are available:
- Literal text (
hundred
) - Quotient substitution (
<<
or←←
) - Reminder substitution (
>>
or→→
) - Optional substitution (
[...]
) - Rule substituton (
←%ruleset_name←
) - Rule replacement (
=%ruleset_name=
) - Special rules:
- Negative numbers (
-x
) - Improper fractions (
x.x
) - Not a number (
NaN
) - Infinity (
Inf
)
- Negative numbers (
Some features that will need to be added eventually:
- Proper fraction rules (
0.x
) - Preceding reminder substitution (
>>>
or→→→
) - Number format strings (
==
)
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
unicode_rbnf-1.3.0.tar.gz
(83.4 kB
view details)
Built Distribution
unicode_rbnf-1.3.0-py3-none-any.whl
(137.1 kB
view details)
File details
Details for the file unicode_rbnf-1.3.0.tar.gz
.
File metadata
- Download URL: unicode_rbnf-1.3.0.tar.gz
- Upload date:
- Size: 83.4 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/4.0.2 CPython/3.11.2
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | b37e246cec31fb8fda63737e7359063594835000ecf960a0ae098d45f8b2109a |
|
MD5 | fda8641ee8ca880b192ef9a91d942da8 |
|
BLAKE2b-256 | bc5f4113917ea5710d93681ad68f9499b5b4f75d45ae0fbf45e6e4459bb4b843 |
Provenance
File details
Details for the file unicode_rbnf-1.3.0-py3-none-any.whl
.
File metadata
- Download URL: unicode_rbnf-1.3.0-py3-none-any.whl
- Upload date:
- Size: 137.1 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/4.0.2 CPython/3.11.2
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 7378e9f1ec248ae29b811a9c95f85f5ea86a58f2fc4b2ecaab92aa16f806dba3 |
|
MD5 | aaab764520bb6dcae937c0e8e31e7dad |
|
BLAKE2b-256 | 3ac658cc1ae186eaa352da9dc4080c3085cd05efbd9ad450e6a41eb2db1ff655 |