File size: 424 Bytes
a783939
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
from ..schemas import Lang

_KZ_ONLY = set("әғқңөұүһі")
_CYR_RANGE = (ord("а"), ord("я"))


def detect_language(text: str, hint: Lang | None = None) -> Lang:
    if hint in ("ru", "kk"):
        return hint
    t = text.lower()
    if any(c in _KZ_ONLY for c in t):
        return "kk"
    for c in t:
        if _CYR_RANGE[0] <= ord(c) <= _CYR_RANGE[1] or c == "ё":
            return "ru"
    return "unknown"