2019-02-07 23:05:11 +03:00
|
|
|
# coding: utf8
|
|
|
|
from __future__ import unicode_literals
|
|
|
|
|
|
|
|
from ...attrs import LIKE_NUM
|
|
|
|
|
2019-02-08 16:14:49 +03:00
|
|
|
_num_words = [
|
|
|
|
"більйон",
|
|
|
|
"вісім",
|
|
|
|
"вісімдесят",
|
|
|
|
"вісімнадцять",
|
|
|
|
"вісімсот",
|
|
|
|
"восьмий",
|
|
|
|
"два",
|
|
|
|
"двадцять",
|
|
|
|
"дванадцять",
|
|
|
|
"двісті",
|
|
|
|
"дев'яносто",
|
|
|
|
"дев'ятнадцять",
|
|
|
|
"дев'ятсот",
|
|
|
|
"дев'ять",
|
|
|
|
"десять",
|
|
|
|
"децильйон",
|
|
|
|
"квадрильйон",
|
|
|
|
"квінтильйон",
|
|
|
|
"мільйон",
|
|
|
|
"мільярд",
|
|
|
|
"нонильйон",
|
|
|
|
"один",
|
|
|
|
"одинадцять",
|
|
|
|
"октильйон",
|
|
|
|
"п'ятий",
|
|
|
|
"п'ятисотий",
|
|
|
|
"п'ятнадцять",
|
|
|
|
"п'ятсот",
|
|
|
|
"п'ять",
|
|
|
|
"секстильйон",
|
|
|
|
"септильйон",
|
|
|
|
"сім",
|
|
|
|
"сімдесят",
|
|
|
|
"сімнадцять",
|
|
|
|
"сімсот",
|
|
|
|
"сорок",
|
|
|
|
"сто",
|
|
|
|
"тисяча",
|
|
|
|
"три",
|
|
|
|
"тридцять",
|
|
|
|
"трильйон",
|
|
|
|
"тринадцять",
|
|
|
|
"триста",
|
|
|
|
"чотири",
|
|
|
|
"чотириста",
|
|
|
|
"чотирнадцять",
|
|
|
|
"шістдесят",
|
|
|
|
"шістнадцять",
|
|
|
|
"шістсот",
|
|
|
|
"шість",
|
|
|
|
]
|
2019-02-07 23:05:11 +03:00
|
|
|
|
|
|
|
|
|
|
|
def like_num(text):
|
2019-02-08 16:14:49 +03:00
|
|
|
text = text.replace(",", "").replace(".", "")
|
2019-02-07 23:05:11 +03:00
|
|
|
if text.isdigit():
|
|
|
|
return True
|
2019-02-08 16:14:49 +03:00
|
|
|
if text.count("/") == 1:
|
|
|
|
num, denom = text.split("/")
|
2019-02-07 23:05:11 +03:00
|
|
|
if num.isdigit() and denom.isdigit():
|
|
|
|
return True
|
|
|
|
if text in _num_words:
|
|
|
|
return True
|
|
|
|
return False
|
|
|
|
|
|
|
|
|
2019-02-08 16:14:49 +03:00
|
|
|
LEX_ATTRS = {LIKE_NUM: like_num}
|