128 lines
4.1 KiB
Python
128 lines
4.1 KiB
Python
|
from ...attrs import LIKE_NUM
|
||
|
|
||
|
# reference 1: https://en.wikibooks.org/wiki/Sanskrit/Numbers
|
||
|
|
||
|
_num_words = [
|
||
|
"एकः",
|
||
|
"द्वौ",
|
||
|
"त्रयः",
|
||
|
"चत्वारः",
|
||
|
"पञ्च",
|
||
|
"षट्",
|
||
|
"सप्त",
|
||
|
"अष्ट",
|
||
|
"नव",
|
||
|
"दश",
|
||
|
"एकादश",
|
||
|
"द्वादश",
|
||
|
"त्रयोदश",
|
||
|
"चतुर्दश",
|
||
|
"पञ्चदश",
|
||
|
"षोडश",
|
||
|
"सप्तदश",
|
||
|
"अष्टादश",
|
||
|
"एकान्नविंशति",
|
||
|
"विंशति",
|
||
|
"एकाविंशति",
|
||
|
"द्वाविंशति",
|
||
|
"त्रयोविंशति",
|
||
|
"चतुर्विंशति",
|
||
|
"पञ्चविंशति",
|
||
|
"षड्विंशति",
|
||
|
"सप्तविंशति",
|
||
|
"अष्टाविंशति",
|
||
|
"एकान्नत्रिंशत्",
|
||
|
"त्रिंशत्",
|
||
|
"एकत्रिंशत्",
|
||
|
"द्वात्रिंशत्",
|
||
|
"त्रयत्रिंशत्",
|
||
|
"चतुस्त्रिंशत्",
|
||
|
"पञ्चत्रिंशत्",
|
||
|
"षट्त्रिंशत्",
|
||
|
"सप्तत्रिंशत्",
|
||
|
"अष्टात्रिंशत्",
|
||
|
"एकोनचत्वारिंशत्",
|
||
|
"चत्वारिंशत्",
|
||
|
"एकचत्वारिंशत्",
|
||
|
"द्वाचत्वारिंशत्",
|
||
|
"त्रयश्चत्वारिंशत्",
|
||
|
"चतुश्चत्वारिंशत्",
|
||
|
"पञ्चचत्वारिंशत्",
|
||
|
"षट्चत्वारिंशत्",
|
||
|
"सप्तचत्वारिंशत्",
|
||
|
"अष्टाचत्वारिंशत्",
|
||
|
"एकोनपञ्चाशत्",
|
||
|
"पञ्चाशत्",
|
||
|
"एकपञ्चाशत्",
|
||
|
"द्विपञ्चाशत्",
|
||
|
"त्रिपञ्चाशत्",
|
||
|
"चतुःपञ्चाशत्",
|
||
|
"पञ्चपञ्चाशत्",
|
||
|
"षट्पञ्चाशत्",
|
||
|
"सप्तपञ्चाशत्",
|
||
|
"अष्टपञ्चाशत्",
|
||
|
"एकोनषष्ठिः",
|
||
|
"षष्ठिः",
|
||
|
"एकषष्ठिः",
|
||
|
"द्विषष्ठिः",
|
||
|
"त्रिषष्ठिः",
|
||
|
"चतुःषष्ठिः",
|
||
|
"पञ्चषष्ठिः",
|
||
|
"षट्षष्ठिः",
|
||
|
"सप्तषष्ठिः",
|
||
|
"अष्टषष्ठिः",
|
||
|
"एकोनसप्ततिः",
|
||
|
"सप्ततिः",
|
||
|
"एकसप्ततिः",
|
||
|
"द्विसप्ततिः",
|
||
|
"त्रिसप्ततिः",
|
||
|
"चतुःसप्ततिः",
|
||
|
"पञ्चसप्ततिः",
|
||
|
"षट्सप्ततिः",
|
||
|
"सप्तसप्ततिः",
|
||
|
"अष्टसप्ततिः",
|
||
|
"एकोनाशीतिः",
|
||
|
"अशीतिः",
|
||
|
"एकाशीतिः",
|
||
|
"द्वशीतिः",
|
||
|
"त्र्यशीतिः",
|
||
|
"चतुरशीतिः",
|
||
|
"पञ्चाशीतिः",
|
||
|
"षडशीतिः",
|
||
|
"सप्ताशीतिः",
|
||
|
"अष्टाशीतिः",
|
||
|
"एकोननवतिः",
|
||
|
"नवतिः",
|
||
|
"एकनवतिः",
|
||
|
"द्विनवतिः",
|
||
|
"त्रिनवतिः",
|
||
|
"चतुर्नवतिः",
|
||
|
"पञ्चनवतिः",
|
||
|
"षण्णवतिः",
|
||
|
"सप्तनवतिः",
|
||
|
"अष्टनवतिः",
|
||
|
"एकोनशतम्",
|
||
|
"शतम्",
|
||
|
]
|
||
|
|
||
|
|
||
|
def like_num(text):
|
||
|
"""
|
||
|
Check if text resembles a number
|
||
|
"""
|
||
|
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 in _num_words:
|
||
|
return True
|
||
|
return False
|
||
|
|
||
|
|
||
|
LEX_ATTRS = {LIKE_NUM: like_num}
|