re-common 10.0.38__py3-none-any.whl → 10.0.40__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -10,7 +10,7 @@ class BaseLngid(object):
10
10
  def __int__(self):
11
11
  pass
12
12
 
13
- def basBaseEncodeID(self, strRaw):
13
+ def BaseEncodeID(self, strRaw):
14
14
  r""" 自定义base编码 """
15
15
 
16
16
  strEncode = base64.b32encode(strRaw.encode('utf8')).decode('utf8')
@@ -0,0 +1,46 @@
1
+ # elasticsearch[async]~=8.11.1
2
+ from typing import Any, Dict, List
3
+ from elasticsearch import AsyncElasticsearch, helpers
4
+
5
+ DEFAULT_CONFIG = {
6
+ "hosts": [
7
+ "http://192.168.32.97:9200",
8
+ "http://192.168.32.99:9200",
9
+ "http://192.168.32.101:9200",
10
+ "http://192.168.32.103:9200",
11
+ ],
12
+ "basic_auth": ("elastic", "Zl2bWsOuvqi0IUwpvGhK"),
13
+ "timeout": 60,
14
+ }
15
+
16
+
17
+ def get_es(config=DEFAULT_CONFIG):
18
+ es = AsyncElasticsearch(**config)
19
+ return es
20
+
21
+
22
+ async def update(es: AsyncElasticsearch, index: str, doc_id: str, doc: Dict[str, Any], doc_as_upsert: bool = False):
23
+ return await es.update(index=index, id=doc_id, doc=doc, doc_as_upsert=doc_as_upsert)
24
+
25
+
26
+ async def bulk_update(es: AsyncElasticsearch, index: str, docs: List[Dict[str, Any]], doc_as_upsert: bool = False):
27
+ """
28
+ 批量更新ES文档
29
+
30
+ docs 格式示例:
31
+ [
32
+ {"_id": "1", "doc": {"field1": "value1"}},
33
+ {"_id": "2", "doc": {"field2": "value2"}},
34
+ ]
35
+ """
36
+ actions = []
37
+ for item in docs:
38
+ action = {
39
+ "_op_type": "update",
40
+ "_index": index,
41
+ "_id": item["_id"],
42
+ "doc": item["doc"],
43
+ "doc_as_upsert": doc_as_upsert,
44
+ }
45
+ actions.append(action)
46
+ return await helpers.async_bulk(es, actions=actions)
@@ -5,7 +5,6 @@ from itertools import combinations
5
5
 
6
6
  import regex
7
7
  import unicodedata
8
- from parsel import Selector
9
8
 
10
9
  from re_common.v2.baselibrary.utils.string_smi import JaroDamerauLevenshteinMaxSim
11
10
 
@@ -32,31 +31,23 @@ def bj2qj(src):
32
31
  return ''.join(buf)
33
32
 
34
33
 
35
- def qj2bj(src):
36
- """
37
- 全角转半角
38
- :param src:
39
- :return:
40
- """
41
- if src is None:
42
- return src
43
-
44
- SBC_CHAR_START = 0xFF01
45
- SBC_CHAR_END = 0xFF5E
46
- CONVERT_STEP = 0xFEE0
47
- DBC_SPACE = ' '
48
- SBC_SPACE = ' '
49
-
50
- buf = []
51
- for char in src:
52
- if SBC_CHAR_START <= ord(char) <= SBC_CHAR_END:
53
- buf.append(chr(ord(char) - CONVERT_STEP))
54
- elif char == SBC_SPACE:
55
- buf.append(DBC_SPACE)
56
- else:
57
- buf.append(char)
58
-
59
- return ''.join(buf)
34
+ def qj2bj(text):
35
+ if text is None:
36
+ return text
37
+ # 预构建全角到半角的转换映射表(只需构建一次)
38
+ if not hasattr(qj2bj, 'trans_table'):
39
+ trans_map = {}
40
+ # 处理全角空格
41
+ trans_map[0x3000] = 0x0020
42
+ # 处理全角字符范围FF01-FF5E
43
+ for code in range(0xFF01, 0xFF5F):
44
+ trans_map[code] = code - 0xFEE0
45
+ # 创建转换表(字符到字符的映射)
46
+ qj2bj.trans_table = str.maketrans(
47
+ {chr(k): chr(v) for k, v in trans_map.items()}
48
+ )
49
+ # 使用预编译的转换表进行高效替换
50
+ return text.translate(qj2bj.trans_table)
60
51
 
61
52
 
62
53
  """
@@ -1,6 +1,6 @@
1
- Metadata-Version: 2.1
1
+ Metadata-Version: 2.2
2
2
  Name: re_common
3
- Version: 10.0.38
3
+ Version: 10.0.40
4
4
  Summary: a library about all python projects
5
5
  Home-page: https://gitee.com/xujiangios/re-common
6
6
  Author: vic
@@ -11,6 +11,14 @@ Classifier: Operating System :: OS Independent
11
11
  Requires-Python: >=3.6
12
12
  Description-Content-Type: text/markdown
13
13
  License-File: LICENSE
14
+ Dynamic: author
15
+ Dynamic: author-email
16
+ Dynamic: classifier
17
+ Dynamic: description
18
+ Dynamic: description-content-type
19
+ Dynamic: home-page
20
+ Dynamic: requires-python
21
+ Dynamic: summary
14
22
 
15
23
 
16
24
  这是一个基础类,依赖很多的第三方包,是一个用得到的第三方库的封装,可以在此基础上迅速构建项目
@@ -165,7 +165,7 @@ re_common/v2/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
165
165
  re_common/v2/baselibrary/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
166
166
  re_common/v2/baselibrary/business_utils/BusinessStringUtil.py,sha256=PaYg_5fLV2FM-Hp8r08RkLorOilXHvCtBLfRUT2MDJk,7681
167
167
  re_common/v2/baselibrary/business_utils/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
168
- re_common/v2/baselibrary/business_utils/baseencodeid.py,sha256=9opWNmDKg0ezSJKERHKaPF48W9PuChiUDNe64Xv08is,3598
168
+ re_common/v2/baselibrary/business_utils/baseencodeid.py,sha256=3f52e0jtgCFzPEyReia8TupwiE64t_VyBT-a7uQCXAY,3595
169
169
  re_common/v2/baselibrary/business_utils/full_doi_path.py,sha256=vsoS1ZGyNzeORon_z1sHt1M41sS22pvJHMgWJH3xZ-M,3378
170
170
  re_common/v2/baselibrary/business_utils/rel_tools.py,sha256=LfnGFCkUSxg1SHvOMOQdP1PiHxIKqk7Syuk5YYpjJag,295
171
171
  re_common/v2/baselibrary/decorators/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
@@ -208,13 +208,14 @@ re_common/v2/baselibrary/utils/basehdfs.py,sha256=wwvk4kvipD-AVWCF0WRzBTM2q2wAvQ
208
208
  re_common/v2/baselibrary/utils/basepika.py,sha256=ifOb3UsGj79k40aD9UK6-5BMPw43ZAo0SO3AYD4q4vw,7332
209
209
  re_common/v2/baselibrary/utils/basetime.py,sha256=b7U_ho6nE3fjYBxSkdMHXUOd3ClH6KkW_7p7l2Gs4gA,3038
210
210
  re_common/v2/baselibrary/utils/db.py,sha256=5IOYOOGe6mNKhOeaCAq0iif5yJdDotBmrsMZmT1syjs,4862
211
+ re_common/v2/baselibrary/utils/elasticsearch.py,sha256=USjMAYAhpNQLs-dGjQgwPZNl_g2V22aRyaWDMFOp58c,1357
211
212
  re_common/v2/baselibrary/utils/json_cls.py,sha256=M93piYtmgm_wP8E57culTrd_AhHLoGg6PqeAJYdW2SM,438
212
213
  re_common/v2/baselibrary/utils/mq.py,sha256=UHpO8iNIHs91Tgp-BgnSUpZwjWquxrGLdpr3FMMv2zw,2858
213
214
  re_common/v2/baselibrary/utils/n_ary_expression_tree.py,sha256=-05kO6G2Rth7CEK-5lfFrthFZ1Q0-0a7cni7mWZ-2gg,9172
214
215
  re_common/v2/baselibrary/utils/string_bool.py,sha256=vxnjSFOfuHWGxkqaIbUNn21opx5tfV1uCXSahFfp1mU,6197
215
216
  re_common/v2/baselibrary/utils/string_clear.py,sha256=Ympa0Cs2y_72QeeyMS8de8y_QgtEFJJQ0AgHnylbMUc,7861
216
217
  re_common/v2/baselibrary/utils/string_smi.py,sha256=cU0WAWHRGnGoVQx3eCEKeM_q_olFNzRTJe7rSe586SY,741
217
- re_common/v2/baselibrary/utils/stringutils.py,sha256=uUjcyMEmYIzPUxQ_enpRj_qrvQnYtoL2gEug7WIrIbU,8463
218
+ re_common/v2/baselibrary/utils/stringutils.py,sha256=kyGsEVSy7-Fhv3vWxyyN86XjV09D9HoVCc9sgtGcW20,8560
218
219
  re_common/vip/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
219
220
  re_common/vip/base_step_process.py,sha256=VXXiNj0I5CpzXIMCgOPU86bzDJkSBkUS-9CpZIl_GOk,205
220
221
  re_common/vip/baseencodeid.py,sha256=nERoe89ueFM52bG7xwJdflcZHk6T2RQQKbc5uUZc3RM,3272
@@ -241,8 +242,8 @@ re_common/vip/title/transform/TransformRegulationTitleToZt.py,sha256=LKRdIsWKues
241
242
  re_common/vip/title/transform/TransformStandardTitleToZt.py,sha256=-fCKAbSBzXVyQDCE61CalvR9E_QzQMA08QOO_NePFNI,5563
242
243
  re_common/vip/title/transform/TransformThesisTitleToZt.py,sha256=QS-uV0cQrpUFAcKucuJQ9Ue2VRQH-inmfn_X3IplfRo,5488
243
244
  re_common/vip/title/transform/__init__.py,sha256=m83-CWyRq_VHPYHaALEQlmXrkTdrZ3e4B_kCfBYE-uc,239
244
- re_common-10.0.38.dist-info/LICENSE,sha256=HrhfyXIkWY2tGFK11kg7vPCqhgh5DcxleloqdhrpyMY,11558
245
- re_common-10.0.38.dist-info/METADATA,sha256=abixIXN2b8yXkvit_fXpJkwJtQGlJXwWuRII7kNYaTM,582
246
- re_common-10.0.38.dist-info/WHEEL,sha256=GJ7t_kWBFywbagK5eo9IoUwLW6oyOeTKmQ-9iHFVNxQ,92
247
- re_common-10.0.38.dist-info/top_level.txt,sha256=_H9H23zoLIalm1AIY_KYTVh_H0ZnmjxQIxsvXtLv45o,10
248
- re_common-10.0.38.dist-info/RECORD,,
245
+ re_common-10.0.40.dist-info/LICENSE,sha256=HrhfyXIkWY2tGFK11kg7vPCqhgh5DcxleloqdhrpyMY,11558
246
+ re_common-10.0.40.dist-info/METADATA,sha256=NeFwq9ph085VhVwBycozBSfWMeOFNkAiNh9_Fcu2FL8,764
247
+ re_common-10.0.40.dist-info/WHEEL,sha256=In9FTNxeP60KnTkGw7wk6mJPYd_dQSjEZmXdBdMCI-8,91
248
+ re_common-10.0.40.dist-info/top_level.txt,sha256=_H9H23zoLIalm1AIY_KYTVh_H0ZnmjxQIxsvXtLv45o,10
249
+ re_common-10.0.40.dist-info/RECORD,,
@@ -1,5 +1,5 @@
1
1
  Wheel-Version: 1.0
2
- Generator: bdist_wheel (0.43.0)
2
+ Generator: setuptools (75.8.0)
3
3
  Root-Is-Purelib: true
4
4
  Tag: py3-none-any
5
5