num2fawords is a highly customizable library which provides functions to convert a number (int, float, Decimal, Fraction, or str) into Persian word form.
- Python 3.4+ is required
pip install 'setuptools>=36.2.1'
pip install num2fawords
Obviously, words is used to convert to word form and ordinal_words is for ordinal word from.
words also accepts other common standard types:
The default decimal separator is "و" but it can be changed to "ممیز" (or any other string) as follows:
Some people prefer, for example, "صد و هفتاد" over its other form "یکصد و هفتاد". This library uses the second form by default which is also used on official Iranian banknotes. But it can be changed:
Some examples for other arguments of `words`:
>>> words(7, positive='مثبت ')
'مثبت هفت'
>>> words(-2, negative='منهای ')
'منهای دو'
>>> words('۱/۲')
'یک دوم'
>>> words('1/2', fraction_separator=' تقسیم بر ', ordinal_denominator=False)
'یک تقسیم بر دو'
>>> words(1.1e-9)
'یک و یک دهم در ده به توان منفی نه'
>>> words(1.1e-9, scientific_separator=' ضربدر ده به قوهٔ ')
'یک و یک دهم ضربدر ده به قوهٔ منفی نه'
Of-course the above arguments can be used together.
If you prefer to change the default argument values once and for all, use the change_defaults function:
That's all. Enjoy!