from ...attrs import LIKE_NUM

_num_words = [
    "нула",
    "едно",
    "един",
    "една",
    "две",
    "три",
    "четири",
    "пет",
    "шест",
    "седем",
    "осем",
    "девет",
    "десет",
    "единадесет",
    "единайсет",
    "дванадесет",
    "дванайсет",
    "тринадесет",
    "тринайсет",
    "четиринадесет",
    "четиринайсет",
    "петнадесет",
    "петнайсет",
    "шестнадесет",
    "шестнайсет",
    "седемнадесет",
    "седемнайсет",
    "осемнадесет",
    "осемнайсет",
    "деветнадесет",
    "деветнайсет",
    "двадесет",
    "двайсет",
    "тридесет",
    "трийсет",
    "четиридесет",
    "четиресет",
    "петдесет",
    "шестдесет",
    "шейсет",
    "седемдесет",
    "осемдесет",
    "деветдесет",
    "сто",
    "двеста",
    "триста",
    "четиристотин",
    "петстотин",
    "шестстотин",
    "седемстотин",
    "осемстотин",
    "деветстотин",
    "хиляда",
    "милион",
    "милиона",
    "милиард",
    "милиарда",
    "трилион",
    "трилионa",
    "билион",
    "билионa",
    "квадрилион",
    "квадрилионa",
    "квинтилион",
    "квинтилионa",
]


def like_num(text):
    if text.startswith(("+", "-", "±", "~")):
        text = text[1:]
    text = text.replace(",", "").replace(".", "")
    if text.isdigit():
        return True
    if text.count("/") == 1:
        num, denom = text.split("/")
        if num.isdigit() and denom.isdigit():
            return True
    if text.lower() in _num_words:
        return True
    return False


LEX_ATTRS = {LIKE_NUM: like_num}