# (Russian) numerals to numbers
A small text-to-number package to transform a line like this
триста тридцать пять с половиной тысяч отборных солдат США и тринадцать целых двадцать одна сотая процента всей экономики мира против полутора русских землекопов-старообрядцев
to a line like this
335500 отборных солдат США и 13.21 процента всей экономики мира против 1.5 русских землекопов-старообрядцев
Based on **yargy** and **natasha**.
> Locked on `natasha 0.10` because of the bloatness of the later versions.
> May be updated easily to the latest `natasha` with a small change of providing an `Extractor` constructor with a `pymorphy` instance.
>
> super(Rus2Num, self).__init__(NUMBER, pymorphy2.MorphAnalyzer())
## Installation
`$ pip install rus2num`
## Usage
```python
from run2num import Rus2Num
r2n = Rus2Num()
text = "Выплаты за второго-третьего ребенка выросли на пятьсот двадцать пять тысячных процента и составили 90 тысяч рублей"
print(r2n(text))
# Выплаты за 2-3 ребенка выросли на 0.525 процента и составили 90000 рублей
```
## Comparison
There are but a few packages from namely
* NVidia's [NeMo](https://github.com/NVIDIA/NeMo-text-processing),
* [Oknolaz](https://github.com/Oknolaz/Russian_w2n),
* [SergeyShk](https://github.com/SergeyShk/Word-to-Number-Russian) and its forks from
* [averkij](https://github.com/averkij/Word-to-Number-Russian) and
* [flockentanz](https://github.com/flockentanz/word_to_number_ru).
**NeMo** works well but tends to miss many cases I won't have missed (see the comparison table below).
**Oknolaz** needs to be fed with extracted numbers only and does many mistakes in that case even so bad choice for us.
**SergeyShk** does either
* `replace_groups` — `тысяча сто` to `1100` but `сто двести триста` to `400` or
* `replace` — `сто двести триста` to `100 200 300` but `тысяча сто` to `1000 100`.
It is obvious that addition should be done on decreasing values only so there are some forks to fix it (the overall code is a mess so that I didn't want to do it myself anyway).
**averkij** and **flockentanz** work fine both but have some bugs so I took the second one and fixed them. Also I cover cases like `с половиной` and `одна целая две десятых`.
| Original | 🟡 NeMo TP | 🔴 Oknolaz `replace` | 🔴 SergeyShk `replace_groups` | 🔴 SergeyShk `replace` | 🔴 averkij `replace` | 🔴 flockentanz `replace_groups_sa` | 🟢 **rus2num** |
|--|--|--|--|--|--|--|--|
| `сто двести триста да хоть тысячу раз` | 🟢`100 200 300 да хоть 1000 раз` | 🔴`600000` | 🔴`400 да хоть 1000 раз` | 🟢`100 200 300 да хоть 1000 раз` | 🔴`10200 300 да хоть 1000 раз` | 🟢`100 200 300 да хоть 1000 раз` | 🟢`100 200 300 да хоть 1000 раз` |
| `тысяча сто` | 🟢`1100` | 🟢`1100` | 🟢`1100` | 🔴`1000 100` | 🟢`1100` | 🟢`1100` | 🟢`1100` |
| `я видел сто-двести штук` | 🟡`я видел сто-двести штук` | 🔴`300` | 🟢`я видел 100-200 штук` | 🟢`я видел 100-200 штук` | 🟢`я видел 100-200 штук` | 🟢`я видел 100-200 штук` | 🟢`я видел 100-200 штук` |
| `восемь девятьсот двадцать два пять пять пять тридцать пять тридцать пять, лучше позвонить, чем занимать` | 🟡`восемь 922 пять пять пять 35 35 , лучше позвонить, чем занимать` | 🔴`8` | 🔴`115, лучше позвонить, чем занимать` | 🔴`8 900 20 2 5 5 5 30 5 30 5, лучше позвонить, чем занимать` | 🟢`8 922 5 5 5 35 35, лучше позвонить, чем занимать` | 🟢`8 922 5 5 5 35 35, лучше позвонить, чем занимать` | 🟢`8 922 5 5 5 35 35, лучше позвонить, чем занимать` |
| `три с половиной человека` | 🟡`три с половиной человека` | 🔴`3` | 🟡`3 с половиной человека` | 🟡`3 с половиной человека` | 🟢`3.5 человека` | 🟡`3 с половиной человека` | 🟢`3.5 человека` |
| `миллион сто тысяч сто зайцев` | 🟢`1100100 зайцев` | ❌`list index out of range` | 🔴`1000100100 зайцев` | 🔴`1000000 100000 100 зайцев` | `1100100 зайцев` | 🔴`1000100100 зайцев` | 🟢`1100100 зайцев` |
| `одни двойки и ни одной пятёрки` | 🟡`одни двойки и ни одной пятёрки` | 🟡`No valid number words found! ...` | 🟡`1 двойки и ни 1 пятёрки` | 🟡`1 двойки и ни 1 пятёрки` | 🟡`1 двойки и ни 1 пятёрки` | 🟡`1 двойки и ни 1 пятёрки` | 🟡`1 двойки и ни 1 пятёрки` |
| `без одной минуты два` |🟢 `01:59` | 🔴`2` | 🟢`без 1 минуты 2` | 🟢`без 1 минуты 2` | 🟢`без 1 минуты 2` | 🟢`без 1 минуты 2` | 🟢`без 1 минуты 2` |
| `вторая дача пять соток` | 🟡`вторая дача пять соток` | 🔴`5` | 🟢`2 дача 5 соток` | 🟢`2 дача 5 соток` | 🟢`2 дача 5 соток` | 🟢`2 дача 5 соток` | 🟢`2 дача 5 соток` |
| `двести пятьдесят с половиной тысяч отборных солдат Ирака` | 🟡`250 с половиной 1000 отборных солдат Ирака` | 🔴`250000` | 🟡`250 с половиной 1000 отборных солдат Ирака` | 🔴`200 50 с половиной 1000 отборных солдат Ирака` | 🔴`2050000.5 отборных солдат Ирака` | 🟡`250 с половиной 1000 отборных солдат Ирака` | 🟢`250500 отборных солдат Ирака` |
| `ноль целых ноль десятых минус две целых шесть сотых` | 🟢`0,0 -2,06` | 🟡`Redundant number word! ...` | 🔴`0 целых 0.0 минус 2 целых 0.06` | 🔴`0 целых 0.0 минус 2 целых 0.06` | 🔴`0 целых 0.0 минус 2 целых 0.06` | 🔴`0 целых 0.0 минус 2 целых 0.06` | 🟢`0 минус 2.06` |
Raw data
{
"_id": null,
"home_page": "https://github.com/saarus72/rus2num",
"name": "rus2num",
"maintainer": null,
"docs_url": null,
"requires_python": "<4.0,>=3.8",
"maintainer_email": null,
"keywords": null,
"author": "Alexander Stupnikov",
"author_email": "saarus72@gmail.com",
"download_url": "https://files.pythonhosted.org/packages/53/1d/a4599028e18a3e9ce72ebd6d15a071292f66fdd37916d2ae280fdf92f70d/rus2num-0.1.0.tar.gz",
"platform": null,
"description": "# (Russian) numerals to numbers\n\nA small text-to-number package to transform a line like this\n\n \u0442\u0440\u0438\u0441\u0442\u0430 \u0442\u0440\u0438\u0434\u0446\u0430\u0442\u044c \u043f\u044f\u0442\u044c \u0441 \u043f\u043e\u043b\u043e\u0432\u0438\u043d\u043e\u0439 \u0442\u044b\u0441\u044f\u0447 \u043e\u0442\u0431\u043e\u0440\u043d\u044b\u0445 \u0441\u043e\u043b\u0434\u0430\u0442 \u0421\u0428\u0410 \u0438 \u0442\u0440\u0438\u043d\u0430\u0434\u0446\u0430\u0442\u044c \u0446\u0435\u043b\u044b\u0445 \u0434\u0432\u0430\u0434\u0446\u0430\u0442\u044c \u043e\u0434\u043d\u0430 \u0441\u043e\u0442\u0430\u044f \u043f\u0440\u043e\u0446\u0435\u043d\u0442\u0430 \u0432\u0441\u0435\u0439 \u044d\u043a\u043e\u043d\u043e\u043c\u0438\u043a\u0438 \u043c\u0438\u0440\u0430 \u043f\u0440\u043e\u0442\u0438\u0432 \u043f\u043e\u043b\u0443\u0442\u043e\u0440\u0430 \u0440\u0443\u0441\u0441\u043a\u0438\u0445 \u0437\u0435\u043c\u043b\u0435\u043a\u043e\u043f\u043e\u0432-\u0441\u0442\u0430\u0440\u043e\u043e\u0431\u0440\u044f\u0434\u0446\u0435\u0432\n\nto a line like this\n\n 335500 \u043e\u0442\u0431\u043e\u0440\u043d\u044b\u0445 \u0441\u043e\u043b\u0434\u0430\u0442 \u0421\u0428\u0410 \u0438 13.21 \u043f\u0440\u043e\u0446\u0435\u043d\u0442\u0430 \u0432\u0441\u0435\u0439 \u044d\u043a\u043e\u043d\u043e\u043c\u0438\u043a\u0438 \u043c\u0438\u0440\u0430 \u043f\u0440\u043e\u0442\u0438\u0432 1.5 \u0440\u0443\u0441\u0441\u043a\u0438\u0445 \u0437\u0435\u043c\u043b\u0435\u043a\u043e\u043f\u043e\u0432-\u0441\u0442\u0430\u0440\u043e\u043e\u0431\u0440\u044f\u0434\u0446\u0435\u0432\n\nBased on **yargy** and **natasha**.\n\n> Locked on `natasha 0.10` because of the bloatness of the later versions.\n> May be updated easily to the latest `natasha` with a small change of providing an `Extractor` constructor with a `pymorphy` instance.\n>\n> super(Rus2Num, self).__init__(NUMBER, pymorphy2.MorphAnalyzer())\n\n## Installation\n\n`$ pip install rus2num`\n\n## Usage\n\n```python\nfrom run2num import Rus2Num\n\nr2n = Rus2Num()\ntext = \"\u0412\u044b\u043f\u043b\u0430\u0442\u044b \u0437\u0430 \u0432\u0442\u043e\u0440\u043e\u0433\u043e-\u0442\u0440\u0435\u0442\u044c\u0435\u0433\u043e \u0440\u0435\u0431\u0435\u043d\u043a\u0430 \u0432\u044b\u0440\u043e\u0441\u043b\u0438 \u043d\u0430 \u043f\u044f\u0442\u044c\u0441\u043e\u0442 \u0434\u0432\u0430\u0434\u0446\u0430\u0442\u044c \u043f\u044f\u0442\u044c \u0442\u044b\u0441\u044f\u0447\u043d\u044b\u0445 \u043f\u0440\u043e\u0446\u0435\u043d\u0442\u0430 \u0438 \u0441\u043e\u0441\u0442\u0430\u0432\u0438\u043b\u0438 90 \u0442\u044b\u0441\u044f\u0447 \u0440\u0443\u0431\u043b\u0435\u0439\"\nprint(r2n(text))\n# \u0412\u044b\u043f\u043b\u0430\u0442\u044b \u0437\u0430 2-3 \u0440\u0435\u0431\u0435\u043d\u043a\u0430 \u0432\u044b\u0440\u043e\u0441\u043b\u0438 \u043d\u0430 0.525 \u043f\u0440\u043e\u0446\u0435\u043d\u0442\u0430 \u0438 \u0441\u043e\u0441\u0442\u0430\u0432\u0438\u043b\u0438 90000 \u0440\u0443\u0431\u043b\u0435\u0439\n```\n\n## Comparison\n\nThere are but a few packages from namely \n* NVidia's [NeMo](https://github.com/NVIDIA/NeMo-text-processing),\n* [Oknolaz](https://github.com/Oknolaz/Russian_w2n),\n* [SergeyShk](https://github.com/SergeyShk/Word-to-Number-Russian) and its forks from\n * [averkij](https://github.com/averkij/Word-to-Number-Russian) and\n * [flockentanz](https://github.com/flockentanz/word_to_number_ru).\n\n**NeMo** works well but tends to miss many cases I won't have missed (see the comparison table below).\n\n**Oknolaz** needs to be fed with extracted numbers only and does many mistakes in that case even so bad choice for us.\n\n**SergeyShk** does either\n* `replace_groups` \u2014 `\u0442\u044b\u0441\u044f\u0447\u0430 \u0441\u0442\u043e` to `1100` but `\u0441\u0442\u043e \u0434\u0432\u0435\u0441\u0442\u0438 \u0442\u0440\u0438\u0441\u0442\u0430` to `400` or\n* `replace` \u2014 `\u0441\u0442\u043e \u0434\u0432\u0435\u0441\u0442\u0438 \u0442\u0440\u0438\u0441\u0442\u0430` to `100 200 300` but `\u0442\u044b\u0441\u044f\u0447\u0430 \u0441\u0442\u043e` to `1000 100`.\n\nIt is obvious that addition should be done on decreasing values only so there are some forks to fix it (the overall code is a mess so that I didn't want to do it myself anyway).\n\n**averkij** and **flockentanz** work fine both but have some bugs so I took the second one and fixed them. Also I cover cases like `\u0441 \u043f\u043e\u043b\u043e\u0432\u0438\u043d\u043e\u0439` and `\u043e\u0434\u043d\u0430 \u0446\u0435\u043b\u0430\u044f \u0434\u0432\u0435 \u0434\u0435\u0441\u044f\u0442\u044b\u0445`.\n\n| Original | \ud83d\udfe1 NeMo TP | \ud83d\udd34 Oknolaz `replace` | \ud83d\udd34 SergeyShk `replace_groups` | \ud83d\udd34 SergeyShk `replace` | \ud83d\udd34 averkij `replace` | \ud83d\udd34 flockentanz `replace_groups_sa` | \ud83d\udfe2 **rus2num** |\n|--|--|--|--|--|--|--|--|\n| `\u0441\u0442\u043e \u0434\u0432\u0435\u0441\u0442\u0438 \u0442\u0440\u0438\u0441\u0442\u0430 \u0434\u0430 \u0445\u043e\u0442\u044c \u0442\u044b\u0441\u044f\u0447\u0443 \u0440\u0430\u0437` | \ud83d\udfe2`100 200 300 \u0434\u0430 \u0445\u043e\u0442\u044c 1000 \u0440\u0430\u0437` | \ud83d\udd34`600000` | \ud83d\udd34`400 \u0434\u0430 \u0445\u043e\u0442\u044c 1000 \u0440\u0430\u0437` | \ud83d\udfe2`100 200 300 \u0434\u0430 \u0445\u043e\u0442\u044c 1000 \u0440\u0430\u0437` | \ud83d\udd34`10200 300 \u0434\u0430 \u0445\u043e\u0442\u044c 1000 \u0440\u0430\u0437` | \ud83d\udfe2`100 200 300 \u0434\u0430 \u0445\u043e\u0442\u044c 1000 \u0440\u0430\u0437` | \ud83d\udfe2`100 200 300 \u0434\u0430 \u0445\u043e\u0442\u044c 1000 \u0440\u0430\u0437` |\n| `\u0442\u044b\u0441\u044f\u0447\u0430 \u0441\u0442\u043e` | \ud83d\udfe2`1100` | \ud83d\udfe2`1100` | \ud83d\udfe2`1100` | \ud83d\udd34`1000 100` | \ud83d\udfe2`1100` | \ud83d\udfe2`1100` | \ud83d\udfe2`1100` |\n| `\u044f \u0432\u0438\u0434\u0435\u043b \u0441\u0442\u043e-\u0434\u0432\u0435\u0441\u0442\u0438 \u0448\u0442\u0443\u043a` | \ud83d\udfe1`\u044f \u0432\u0438\u0434\u0435\u043b \u0441\u0442\u043e-\u0434\u0432\u0435\u0441\u0442\u0438 \u0448\u0442\u0443\u043a` | \ud83d\udd34`300` | \ud83d\udfe2`\u044f \u0432\u0438\u0434\u0435\u043b 100-200 \u0448\u0442\u0443\u043a` | \ud83d\udfe2`\u044f \u0432\u0438\u0434\u0435\u043b 100-200 \u0448\u0442\u0443\u043a` | \ud83d\udfe2`\u044f \u0432\u0438\u0434\u0435\u043b 100-200 \u0448\u0442\u0443\u043a` | \ud83d\udfe2`\u044f \u0432\u0438\u0434\u0435\u043b 100-200 \u0448\u0442\u0443\u043a` | \ud83d\udfe2`\u044f \u0432\u0438\u0434\u0435\u043b 100-200 \u0448\u0442\u0443\u043a` |\n| `\u0432\u043e\u0441\u0435\u043c\u044c \u0434\u0435\u0432\u044f\u0442\u044c\u0441\u043e\u0442 \u0434\u0432\u0430\u0434\u0446\u0430\u0442\u044c \u0434\u0432\u0430 \u043f\u044f\u0442\u044c \u043f\u044f\u0442\u044c \u043f\u044f\u0442\u044c \u0442\u0440\u0438\u0434\u0446\u0430\u0442\u044c \u043f\u044f\u0442\u044c \u0442\u0440\u0438\u0434\u0446\u0430\u0442\u044c \u043f\u044f\u0442\u044c, \u043b\u0443\u0447\u0448\u0435 \u043f\u043e\u0437\u0432\u043e\u043d\u0438\u0442\u044c, \u0447\u0435\u043c \u0437\u0430\u043d\u0438\u043c\u0430\u0442\u044c` | \ud83d\udfe1`\u0432\u043e\u0441\u0435\u043c\u044c 922 \u043f\u044f\u0442\u044c \u043f\u044f\u0442\u044c \u043f\u044f\u0442\u044c 35 35 , \u043b\u0443\u0447\u0448\u0435 \u043f\u043e\u0437\u0432\u043e\u043d\u0438\u0442\u044c, \u0447\u0435\u043c \u0437\u0430\u043d\u0438\u043c\u0430\u0442\u044c` | \ud83d\udd34`8` | \ud83d\udd34`115, \u043b\u0443\u0447\u0448\u0435 \u043f\u043e\u0437\u0432\u043e\u043d\u0438\u0442\u044c, \u0447\u0435\u043c \u0437\u0430\u043d\u0438\u043c\u0430\u0442\u044c` | \ud83d\udd34`8 900 20 2 5 5 5 30 5 30 5, \u043b\u0443\u0447\u0448\u0435 \u043f\u043e\u0437\u0432\u043e\u043d\u0438\u0442\u044c, \u0447\u0435\u043c \u0437\u0430\u043d\u0438\u043c\u0430\u0442\u044c` | \ud83d\udfe2`8 922 5 5 5 35 35, \u043b\u0443\u0447\u0448\u0435 \u043f\u043e\u0437\u0432\u043e\u043d\u0438\u0442\u044c, \u0447\u0435\u043c \u0437\u0430\u043d\u0438\u043c\u0430\u0442\u044c` | \ud83d\udfe2`8 922 5 5 5 35 35, \u043b\u0443\u0447\u0448\u0435 \u043f\u043e\u0437\u0432\u043e\u043d\u0438\u0442\u044c, \u0447\u0435\u043c \u0437\u0430\u043d\u0438\u043c\u0430\u0442\u044c` | \ud83d\udfe2`8 922 5 5 5 35 35, \u043b\u0443\u0447\u0448\u0435 \u043f\u043e\u0437\u0432\u043e\u043d\u0438\u0442\u044c, \u0447\u0435\u043c \u0437\u0430\u043d\u0438\u043c\u0430\u0442\u044c` |\n| `\u0442\u0440\u0438 \u0441 \u043f\u043e\u043b\u043e\u0432\u0438\u043d\u043e\u0439 \u0447\u0435\u043b\u043e\u0432\u0435\u043a\u0430` | \ud83d\udfe1`\u0442\u0440\u0438 \u0441 \u043f\u043e\u043b\u043e\u0432\u0438\u043d\u043e\u0439 \u0447\u0435\u043b\u043e\u0432\u0435\u043a\u0430` | \ud83d\udd34`3` | \ud83d\udfe1`3 \u0441 \u043f\u043e\u043b\u043e\u0432\u0438\u043d\u043e\u0439 \u0447\u0435\u043b\u043e\u0432\u0435\u043a\u0430` | \ud83d\udfe1`3 \u0441 \u043f\u043e\u043b\u043e\u0432\u0438\u043d\u043e\u0439 \u0447\u0435\u043b\u043e\u0432\u0435\u043a\u0430` | \ud83d\udfe2`3.5 \u0447\u0435\u043b\u043e\u0432\u0435\u043a\u0430` | \ud83d\udfe1`3 \u0441 \u043f\u043e\u043b\u043e\u0432\u0438\u043d\u043e\u0439 \u0447\u0435\u043b\u043e\u0432\u0435\u043a\u0430` | \ud83d\udfe2`3.5 \u0447\u0435\u043b\u043e\u0432\u0435\u043a\u0430` |\n| `\u043c\u0438\u043b\u043b\u0438\u043e\u043d \u0441\u0442\u043e \u0442\u044b\u0441\u044f\u0447 \u0441\u0442\u043e \u0437\u0430\u0439\u0446\u0435\u0432` | \ud83d\udfe2`1100100 \u0437\u0430\u0439\u0446\u0435\u0432` | \u274c`list index out of range` | \ud83d\udd34`1000100100 \u0437\u0430\u0439\u0446\u0435\u0432` | \ud83d\udd34`1000000 100000 100 \u0437\u0430\u0439\u0446\u0435\u0432` | `1100100 \u0437\u0430\u0439\u0446\u0435\u0432` | \ud83d\udd34`1000100100 \u0437\u0430\u0439\u0446\u0435\u0432` | \ud83d\udfe2`1100100 \u0437\u0430\u0439\u0446\u0435\u0432` |\n| `\u043e\u0434\u043d\u0438 \u0434\u0432\u043e\u0439\u043a\u0438 \u0438 \u043d\u0438 \u043e\u0434\u043d\u043e\u0439 \u043f\u044f\u0442\u0451\u0440\u043a\u0438` | \ud83d\udfe1`\u043e\u0434\u043d\u0438 \u0434\u0432\u043e\u0439\u043a\u0438 \u0438 \u043d\u0438 \u043e\u0434\u043d\u043e\u0439 \u043f\u044f\u0442\u0451\u0440\u043a\u0438` | \ud83d\udfe1`No valid number words found! ...` | \ud83d\udfe1`1 \u0434\u0432\u043e\u0439\u043a\u0438 \u0438 \u043d\u0438 1 \u043f\u044f\u0442\u0451\u0440\u043a\u0438` | \ud83d\udfe1`1 \u0434\u0432\u043e\u0439\u043a\u0438 \u0438 \u043d\u0438 1 \u043f\u044f\u0442\u0451\u0440\u043a\u0438` | \ud83d\udfe1`1 \u0434\u0432\u043e\u0439\u043a\u0438 \u0438 \u043d\u0438 1 \u043f\u044f\u0442\u0451\u0440\u043a\u0438` | \ud83d\udfe1`1 \u0434\u0432\u043e\u0439\u043a\u0438 \u0438 \u043d\u0438 1 \u043f\u044f\u0442\u0451\u0440\u043a\u0438` | \ud83d\udfe1`1 \u0434\u0432\u043e\u0439\u043a\u0438 \u0438 \u043d\u0438 1 \u043f\u044f\u0442\u0451\u0440\u043a\u0438` |\n| `\u0431\u0435\u0437 \u043e\u0434\u043d\u043e\u0439 \u043c\u0438\u043d\u0443\u0442\u044b \u0434\u0432\u0430` |\ud83d\udfe2 `01:59` | \ud83d\udd34`2` | \ud83d\udfe2`\u0431\u0435\u0437 1 \u043c\u0438\u043d\u0443\u0442\u044b 2` | \ud83d\udfe2`\u0431\u0435\u0437 1 \u043c\u0438\u043d\u0443\u0442\u044b 2` | \ud83d\udfe2`\u0431\u0435\u0437 1 \u043c\u0438\u043d\u0443\u0442\u044b 2` | \ud83d\udfe2`\u0431\u0435\u0437 1 \u043c\u0438\u043d\u0443\u0442\u044b 2` | \ud83d\udfe2`\u0431\u0435\u0437 1 \u043c\u0438\u043d\u0443\u0442\u044b 2` |\n| `\u0432\u0442\u043e\u0440\u0430\u044f \u0434\u0430\u0447\u0430 \u043f\u044f\u0442\u044c \u0441\u043e\u0442\u043e\u043a` | \ud83d\udfe1`\u0432\u0442\u043e\u0440\u0430\u044f \u0434\u0430\u0447\u0430 \u043f\u044f\u0442\u044c \u0441\u043e\u0442\u043e\u043a` | \ud83d\udd34`5` | \ud83d\udfe2`2 \u0434\u0430\u0447\u0430 5 \u0441\u043e\u0442\u043e\u043a` | \ud83d\udfe2`2 \u0434\u0430\u0447\u0430 5 \u0441\u043e\u0442\u043e\u043a` | \ud83d\udfe2`2 \u0434\u0430\u0447\u0430 5 \u0441\u043e\u0442\u043e\u043a` | \ud83d\udfe2`2 \u0434\u0430\u0447\u0430 5 \u0441\u043e\u0442\u043e\u043a` | \ud83d\udfe2`2 \u0434\u0430\u0447\u0430 5 \u0441\u043e\u0442\u043e\u043a` |\n| `\u0434\u0432\u0435\u0441\u0442\u0438 \u043f\u044f\u0442\u044c\u0434\u0435\u0441\u044f\u0442 \u0441 \u043f\u043e\u043b\u043e\u0432\u0438\u043d\u043e\u0439 \u0442\u044b\u0441\u044f\u0447 \u043e\u0442\u0431\u043e\u0440\u043d\u044b\u0445 \u0441\u043e\u043b\u0434\u0430\u0442 \u0418\u0440\u0430\u043a\u0430` | \ud83d\udfe1`250 \u0441 \u043f\u043e\u043b\u043e\u0432\u0438\u043d\u043e\u0439 1000 \u043e\u0442\u0431\u043e\u0440\u043d\u044b\u0445 \u0441\u043e\u043b\u0434\u0430\u0442 \u0418\u0440\u0430\u043a\u0430` | \ud83d\udd34`250000` | \ud83d\udfe1`250 \u0441 \u043f\u043e\u043b\u043e\u0432\u0438\u043d\u043e\u0439 1000 \u043e\u0442\u0431\u043e\u0440\u043d\u044b\u0445 \u0441\u043e\u043b\u0434\u0430\u0442 \u0418\u0440\u0430\u043a\u0430` | \ud83d\udd34`200 50 \u0441 \u043f\u043e\u043b\u043e\u0432\u0438\u043d\u043e\u0439 1000 \u043e\u0442\u0431\u043e\u0440\u043d\u044b\u0445 \u0441\u043e\u043b\u0434\u0430\u0442 \u0418\u0440\u0430\u043a\u0430` | \ud83d\udd34`2050000.5 \u043e\u0442\u0431\u043e\u0440\u043d\u044b\u0445 \u0441\u043e\u043b\u0434\u0430\u0442 \u0418\u0440\u0430\u043a\u0430` | \ud83d\udfe1`250 \u0441 \u043f\u043e\u043b\u043e\u0432\u0438\u043d\u043e\u0439 1000 \u043e\u0442\u0431\u043e\u0440\u043d\u044b\u0445 \u0441\u043e\u043b\u0434\u0430\u0442 \u0418\u0440\u0430\u043a\u0430` | \ud83d\udfe2`250500 \u043e\u0442\u0431\u043e\u0440\u043d\u044b\u0445 \u0441\u043e\u043b\u0434\u0430\u0442 \u0418\u0440\u0430\u043a\u0430` |\n| `\u043d\u043e\u043b\u044c \u0446\u0435\u043b\u044b\u0445 \u043d\u043e\u043b\u044c \u0434\u0435\u0441\u044f\u0442\u044b\u0445 \u043c\u0438\u043d\u0443\u0441 \u0434\u0432\u0435 \u0446\u0435\u043b\u044b\u0445 \u0448\u0435\u0441\u0442\u044c \u0441\u043e\u0442\u044b\u0445` | \ud83d\udfe2`0,0 -2,06` | \ud83d\udfe1`Redundant number word! ...` | \ud83d\udd34`0 \u0446\u0435\u043b\u044b\u0445 0.0 \u043c\u0438\u043d\u0443\u0441 2 \u0446\u0435\u043b\u044b\u0445 0.06` | \ud83d\udd34`0 \u0446\u0435\u043b\u044b\u0445 0.0 \u043c\u0438\u043d\u0443\u0441 2 \u0446\u0435\u043b\u044b\u0445 0.06` | \ud83d\udd34`0 \u0446\u0435\u043b\u044b\u0445 0.0 \u043c\u0438\u043d\u0443\u0441 2 \u0446\u0435\u043b\u044b\u0445 0.06` | \ud83d\udd34`0 \u0446\u0435\u043b\u044b\u0445 0.0 \u043c\u0438\u043d\u0443\u0441 2 \u0446\u0435\u043b\u044b\u0445 0.06` | \ud83d\udfe2`0 \u043c\u0438\u043d\u0443\u0441 2.06` |\n",
"bugtrack_url": null,
"license": "MIT",
"summary": "(Russian) numerals to numbers transform",
"version": "0.1.0",
"project_urls": {
"Homepage": "https://github.com/saarus72/rus2num",
"Repository": "https://github.com/saarus72/rus2num"
},
"split_keywords": [],
"urls": [
{
"comment_text": "",
"digests": {
"blake2b_256": "17b8a81f092a528bcb8220b17137b49c0888e6ba3c774ecd7d2892a17920d627",
"md5": "c886d08daac36f75e77ac58bf3c858b5",
"sha256": "0e94e9fa723df7e69afa2f9e75cf3352f73df0dcfe383867eff282fa8590ecc4"
},
"downloads": -1,
"filename": "rus2num-0.1.0-py3-none-any.whl",
"has_sig": false,
"md5_digest": "c886d08daac36f75e77ac58bf3c858b5",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": "<4.0,>=3.8",
"size": 6373,
"upload_time": "2024-09-09T09:29:15",
"upload_time_iso_8601": "2024-09-09T09:29:15.244626Z",
"url": "https://files.pythonhosted.org/packages/17/b8/a81f092a528bcb8220b17137b49c0888e6ba3c774ecd7d2892a17920d627/rus2num-0.1.0-py3-none-any.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "531da4599028e18a3e9ce72ebd6d15a071292f66fdd37916d2ae280fdf92f70d",
"md5": "ed3a1e57833df3da2cb0bc65421e6dd9",
"sha256": "08b9925ba1c1b6d342594e2d7c453ae40553cceb556c4507a86136e75bcb53ac"
},
"downloads": -1,
"filename": "rus2num-0.1.0.tar.gz",
"has_sig": false,
"md5_digest": "ed3a1e57833df3da2cb0bc65421e6dd9",
"packagetype": "sdist",
"python_version": "source",
"requires_python": "<4.0,>=3.8",
"size": 5711,
"upload_time": "2024-09-09T09:29:16",
"upload_time_iso_8601": "2024-09-09T09:29:16.949967Z",
"url": "https://files.pythonhosted.org/packages/53/1d/a4599028e18a3e9ce72ebd6d15a071292f66fdd37916d2ae280fdf92f70d/rus2num-0.1.0.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2024-09-09 09:29:16",
"github": true,
"gitlab": false,
"bitbucket": false,
"codeberg": false,
"github_user": "saarus72",
"github_project": "rus2num",
"travis_ci": false,
"coveralls": false,
"github_actions": false,
"lcname": "rus2num"
}