PK!@chinesenumber/__init__.pyimport re number_prefix = { 1: '1一弌壹幺', 2: '2二弍贰貳两兩', 3: '3三叁叄仨', 4: '4四肆', 5: '5五伍', 6: '6六陆陸', 7: '7七柒拐', 8: '8八捌', 9: '9九玖勾' } number_multiplier = { 10**(-6): '微', 0.001: '毫毛', 0.01: '厘釐', 0.1: '分', 0: '0〇零洞', 10: '十拾呀', # 20: '廿念', # 30: '卅', # 40: '卌', 100: '百佰', # 200: '皕', 1000: '千仟', 10**4: '万萬', 10**8: '亿億' } class NumberParser: def __init__(self): self.pre = dict() for k, v in number_prefix.items(): for c in v: self.pre[c] = k self.mul = dict() for k, v in number_multiplier.items(): for c in v: self.mul[c] = k def simple_parse(self, s): v_str_array = re.findall(r'[{pre}]?[{mul}]?'.format( pre=''.join(self.pre.keys()), mul=''.join(self.mul.keys()) ), s) output = 0 for v_str in v_str_array: if len(v_str) == 1: output += float(self.pre.get(v_str[0], self.mul.get(v_str[0]))) elif len(v_str) == 2: output += int(self.pre[v_str[0]]) * float(self.mul[v_str[1]]) return self._coerce_int(output) def numberify(self, s): return re.sub(r'[%s]+' % ( ''.join(self.pre.keys()) + ''.join(self.mul.keys()) ), lambda x: str(self.simple_parse(x.group(0))), s) @staticmethod def _coerce_int(i: float): if i.is_integer(): return int(i) else: return i PK!HW"TT#chinesenumber-0.1.0.dist-info/WHEEL A н#J."jm)Afb~ ڡ5 G7hiޅF4+-3ڦ/̖?XPK!HT&chinesenumber-0.1.0.dist-info/METADATATn@SC&EԈ*jJDثػ%rVn\x">M+x fT$r!w57V(C7S,y I.$\Vv=62g87hh)QwА-8MnDȄv*y1jsQD*#MԪ86{9 HW.W&&y7hq+V(d}_*a FKҔ}/Z1JBË6ꌧާ& Ȩ`Y ʬ9=)mᣭ[3f