MeUtils 2024.12.12.17.3.48__py3-none-any.whl → 2024.12.12.18.26.47__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.
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: MeUtils
3
- Version: 2024.12.12.17.3.48
3
+ Version: 2024.12.12.18.26.47
4
4
  Summary: description
5
5
  Home-page: https://github.com/yuanjie-ai/MeUtils
6
6
  Author: yuanjie
@@ -62,42 +62,42 @@ Requires-Dist: sse-starlette ; extra == 'ai'
62
62
  Requires-Dist: openai ; extra == 'ai'
63
63
  Requires-Dist: langchain ; extra == 'ai'
64
64
  Provides-Extra: all
65
- Requires-Dist: pyarrow ; extra == 'all'
66
- Requires-Dist: langchain ; extra == 'all'
67
- Requires-Dist: asyncmy ; extra == 'all'
65
+ Requires-Dist: pretty-errors ; extra == 'all'
66
+ Requires-Dist: gunicorn ; extra == 'all'
68
67
  Requires-Dist: pymongo ; extra == 'all'
69
- Requires-Dist: fastapi[all] ; extra == 'all'
68
+ Requires-Dist: pymysql ; extra == 'all'
70
69
  Requires-Dist: geopy ; extra == 'all'
70
+ Requires-Dist: iteration-utilities ; extra == 'all'
71
+ Requires-Dist: openai ; extra == 'all'
72
+ Requires-Dist: pyarrow ; extra == 'all'
71
73
  Requires-Dist: redis-py-cluster ; extra == 'all'
72
- Requires-Dist: pretty-errors ; extra == 'all'
73
- Requires-Dist: gunicorn ; extra == 'all'
74
- Requires-Dist: pymilvus ; extra == 'all'
75
- Requires-Dist: polars ; extra == 'all'
76
- Requires-Dist: sqlalchemy ; extra == 'all'
74
+ Requires-Dist: jinja2 ; extra == 'all'
77
75
  Requires-Dist: pandas-summary ; extra == 'all'
78
- Requires-Dist: streamlit ; extra == 'all'
79
- Requires-Dist: faiss-cpu ; extra == 'all'
80
- Requires-Dist: pymupd ; extra == 'all'
81
- Requires-Dist: jieba ; extra == 'all'
82
- Requires-Dist: openai ; extra == 'all'
83
- Requires-Dist: filetype ; extra == 'all'
84
- Requires-Dist: cachetools ; extra == 'all'
85
- Requires-Dist: reportlab ; extra == 'all'
76
+ Requires-Dist: fastapi[all] ; extra == 'all'
86
77
  Requires-Dist: schedule ; extra == 'all'
87
- Requires-Dist: iteration-utilities ; extra == 'all'
88
- Requires-Dist: uvicorn ; extra == 'all'
89
78
  Requires-Dist: jmespath ; extra == 'all'
90
- Requires-Dist: pymysql ; extra == 'all'
79
+ Requires-Dist: seaborn ; extra == 'all'
80
+ Requires-Dist: pymupd ; extra == 'all'
81
+ Requires-Dist: pandas-profiling[notebook] ; extra == 'all'
91
82
  Requires-Dist: missingno ; extra == 'all'
92
- Requires-Dist: thefuck ; extra == 'all'
83
+ Requires-Dist: reportlab ; extra == 'all'
84
+ Requires-Dist: sse-starlette ; extra == 'all'
85
+ Requires-Dist: polars ; extra == 'all'
86
+ Requires-Dist: langchain ; extra == 'all'
87
+ Requires-Dist: asyncmy ; extra == 'all'
93
88
  Requires-Dist: simplejson ; extra == 'all'
94
- Requires-Dist: pandas-profiling[notebook] ; extra == 'all'
95
- Requires-Dist: jinja2 ; extra == 'all'
89
+ Requires-Dist: jieba ; extra == 'all'
90
+ Requires-Dist: cachetools ; extra == 'all'
91
+ Requires-Dist: faiss-cpu ; extra == 'all'
92
+ Requires-Dist: pymilvus ; extra == 'all'
96
93
  Requires-Dist: thriftpy2 ; extra == 'all'
97
- Requires-Dist: sse-starlette ; extra == 'all'
98
- Requires-Dist: dataframe-image ; extra == 'all'
99
- Requires-Dist: seaborn ; extra == 'all'
94
+ Requires-Dist: streamlit ; extra == 'all'
95
+ Requires-Dist: uvicorn ; extra == 'all'
96
+ Requires-Dist: sqlalchemy ; extra == 'all'
100
97
  Requires-Dist: fastapi ; extra == 'all'
98
+ Requires-Dist: dataframe-image ; extra == 'all'
99
+ Requires-Dist: thefuck ; extra == 'all'
100
+ Requires-Dist: filetype ; extra == 'all'
101
101
  Provides-Extra: ann
102
102
  Requires-Dist: pymilvus ; extra == 'ann'
103
103
  Requires-Dist: faiss-cpu ; extra == 'ann'
@@ -471,7 +471,7 @@ meutils/cmds/subprocess_demo.py,sha256=oTeTIx8k6XwtOT6hZpmy9XNcRErzilqWcdoxcrVcH
471
471
  meutils/comp_utils/__init__.py,sha256=Q4BW-gHnOUiSSpupHsprsOAPp4kuBLcH60sL1RfS3PQ,361
472
472
  meutils/comp_utils/reverse_metric.py,sha256=qwcGgiHhaupIJER4gO0HQhhO07FDLFv-vfFhg6K6Q4s,1705
473
473
  meutils/config_utils/__init__.py,sha256=GhgsStfGJDC8F_YgC6X5Jnj9HkgXJXxeYiJWTAkWKTo,271
474
- meutils/config_utils/config_manager.py,sha256=RYbyBJHtyZUxm4y_scJ5WYzFvUgwxTy41IEnB8Tj-6g,2012
474
+ meutils/config_utils/manager.py,sha256=ZnvD_09tk2i2idA5vEXn9Jf4KWQkjYYlFN3LvXY0_Mk,3082
475
475
  meutils/config_utils/nacosx.py,sha256=5x6WlCvjExaA7R9moBxc3DV9l1oFTtNazC6pObaYjMg,1110
476
476
  meutils/config_utils/lark_utils/__init__.py,sha256=Gf-5Y8uZiqY9jdbfiIboL92MQjOTOo0ZZ245PGxCbaY,297
477
477
  meutils/config_utils/lark_utils/common.py,sha256=WB1VKB3vdYyzqWosp5T-7uBIupNXl1L7SM3Lf5GRaOU,14274
@@ -479,7 +479,7 @@ meutils/config_utils/lark_utils/demo.py,sha256=3g0Fs7oLaeW75T60gYWMLgyNg1OnfOjfH
479
479
  meutils/config_utils/lark_utils/x.py,sha256=MlMQGhehP9xMEgetxVCX68XFaosfKoW1JA5cZ3JqN2w,1857
480
480
  meutils/crawlers/__init__.py,sha256=TBU4xA-IOsHV-0yIkW7YXxn_QT7TT8NncqxO7IykEfs,271
481
481
  meutils/data/SimHei.ttf,sha256=-XEnekS5yHP_URkT4XBI2w22ylV-KxudhkeIYFbrILA,10062565
482
- meutils/data/VERSION,sha256=8g-FoFS4bFiabfQJ079kgAnlU9X1abUW0amfVFiZQvM,19
482
+ meutils/data/VERSION,sha256=42IqFYRQ3sEMgJnjcb-z4aClOyDXkUd8LqXnEfq0R7s,19
483
483
  meutils/data/_FLAG,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
484
484
  meutils/data/_SUCCESS,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
485
485
  meutils/data/__init__.py,sha256=Hfwkkxs4zHqKhxht0YrhS566a9P5axtmgNvM5wF8ceQ,243
@@ -816,9 +816,9 @@ meutils/tools/seize.py,sha256=nOKAS63w-Lbi48I0m2MPhdsokUTwxco0laPxYVmW4Mw,1064
816
816
  meutils/tools/service_monitor.py,sha256=ibsLtBN2g2DL7ZnLJ8vhiZOiOcqTAyx711djDdBK-3M,1255
817
817
  meutils/tools/sys_monitor.py,sha256=6MoyzrItqDUOSjfHcMJmMofQkEPTW36CT_aKui0rg84,429
818
818
  meutils/tools/token_monitor.py,sha256=Np-YK-R4P4IPAXyZvMxwvXI4sFmNJQAQK1lSegNaYpA,997
819
- MeUtils-2024.12.12.17.3.48.dist-info/LICENSE,sha256=xx0jnfkXJvxRnG63LTGOxlggYnIysveWIZ6H3PNdCrQ,11357
820
- MeUtils-2024.12.12.17.3.48.dist-info/METADATA,sha256=7JmZT3tBmD0XxNWam8VAcbhvmHIYjNbvy3rc5jZR_1Q,6170
821
- MeUtils-2024.12.12.17.3.48.dist-info/WHEEL,sha256=R0nc6qTxuoLk7ShA2_Y-UWkN8ZdfDBG2B6Eqpz2WXbs,91
822
- MeUtils-2024.12.12.17.3.48.dist-info/entry_points.txt,sha256=lufZlBHRqqZKdY-ZQJ4CSZb0qhV5hQC37egZna9M7ug,357
823
- MeUtils-2024.12.12.17.3.48.dist-info/top_level.txt,sha256=cInfxMmkgNOskurdjwP5unau4rA7Uw48nu07tYhS7KY,22
824
- MeUtils-2024.12.12.17.3.48.dist-info/RECORD,,
819
+ MeUtils-2024.12.12.18.26.47.dist-info/LICENSE,sha256=xx0jnfkXJvxRnG63LTGOxlggYnIysveWIZ6H3PNdCrQ,11357
820
+ MeUtils-2024.12.12.18.26.47.dist-info/METADATA,sha256=47mIhTXw8ebO5fkvgSQju4Gqdllvf_z2P5Ctda6yRfM,6171
821
+ MeUtils-2024.12.12.18.26.47.dist-info/WHEEL,sha256=R0nc6qTxuoLk7ShA2_Y-UWkN8ZdfDBG2B6Eqpz2WXbs,91
822
+ MeUtils-2024.12.12.18.26.47.dist-info/entry_points.txt,sha256=lufZlBHRqqZKdY-ZQJ4CSZb0qhV5hQC37egZna9M7ug,357
823
+ MeUtils-2024.12.12.18.26.47.dist-info/top_level.txt,sha256=cInfxMmkgNOskurdjwP5unau4rA7Uw48nu07tYhS7KY,22
824
+ MeUtils-2024.12.12.18.26.47.dist-info/RECORD,,
@@ -0,0 +1,107 @@
1
+ #!/usr/bin/env python
2
+ # -*- coding: utf-8 -*-
3
+ # @Project : AI. @by PyCharm
4
+ # @File : config_manager
5
+ # @Time : 2024/12/4 12:07
6
+ # @Author : betterme
7
+ # @WeChat : meutils
8
+ # @Software : PyCharm
9
+ # @Description :
10
+
11
+ import nacos
12
+ from meutils.pipe import *
13
+
14
+
15
+ class Manager:
16
+ _instance = None
17
+ _config: str = ""
18
+
19
+ def __new__(cls, *args):
20
+ if cls._instance is None:
21
+ cls._instance = super().__new__(cls)
22
+ return cls._instance
23
+
24
+ def __init__(self, namespace: str, data_id: str, group: str = "DEFAULT_GROUP", ):
25
+ NACOS_URL = os.getenv("NACOS_URL")
26
+ assert NACOS_URL
27
+ if NACOS_URL:
28
+ server_addresses = NACOS_URL.split('@')[1]
29
+ username, password = NACOS_URL.split('@')[0].split(":")
30
+
31
+ # Nacos客户端配置
32
+ self.client = nacos.NacosClient(
33
+ server_addresses=server_addresses, # Nacos服务器地址
34
+ namespace=namespace, # 命名空间
35
+ username=username, # 用户名
36
+ password=password # 密码
37
+ )
38
+
39
+ self.init_config(data_id, group)
40
+
41
+ def init_config(self, data_id: str, group: str = "DEFAULT_GROUP"):
42
+ """初始化配置并添加监听器"""
43
+ # 获取初始配置
44
+ config = self.client.get_config(data_id, group)
45
+ logger.info(f"初始配置\n{config}")
46
+ if config:
47
+ self._config = config
48
+
49
+ # 添加配置变更监听器
50
+ self.client.add_config_watcher(
51
+ data_id,
52
+ group,
53
+ self._config_changed_callback
54
+ )
55
+
56
+ def _config_changed_callback(self, args):
57
+ """配置变更回调函数"""
58
+ logger.debug(f"配置发生变更: {json.dumps(args, indent=4)}")
59
+ # {'data_id': 'testdata', 'group': 'DEFAULT_GROUP', 'namespace': 'test', 'raw_content': 'sk-\nsk-',
60
+ # 'content': 'sk-\nsk-'}
61
+ self._config = args['content']
62
+
63
+ @property
64
+ def text(self) -> str:
65
+ """获取当前配置: 原始内容"""
66
+ return self._config
67
+
68
+ @property
69
+ def json(self) -> Dict[str, Any]:
70
+ try:
71
+ return json.loads(self.text)
72
+ except json.decoder.JSONDecodeError as e:
73
+ logger.warning(f"标准json 配置加载失败: {e}")
74
+
75
+ logger.debug(f"尝试用json_repair解析")
76
+ return json_repair.repair_json(self.text, return_objects=True)
77
+
78
+ @property
79
+ def yaml(self) -> Dict[str, Any]:
80
+ try:
81
+ return yaml.safe_load(self.text)
82
+ except Exception as e:
83
+ logger.error(f"yaml 配置加载失败: {e}")
84
+
85
+ @property
86
+ def xml(self):
87
+ return self.text
88
+
89
+ @property
90
+ def html(self):
91
+ return self.text
92
+
93
+ @property
94
+ def properties(self):
95
+ return self.text
96
+
97
+
98
+ if __name__ == '__main__':
99
+ # 初始化配置管理器
100
+ namespace = 'test'
101
+ data_id = "testdata"
102
+ group = "DEFAULT_GROUP"
103
+
104
+ manager = Manager(namespace, data_id, group)
105
+ # manager_ = Manager(namespace, data_id, group)
106
+
107
+ print(manager.text)
meutils/data/VERSION CHANGED
@@ -1 +1 @@
1
- 2024.12.12.17.03.48
1
+ 2024.12.12.18.26.47
@@ -1,77 +0,0 @@
1
- #!/usr/bin/env python
2
- # -*- coding: utf-8 -*-
3
- # @Project : AI. @by PyCharm
4
- # @File : config_manager
5
- # @Time : 2024/12/4 12:07
6
- # @Author : betterme
7
- # @WeChat : meutils
8
- # @Software : PyCharm
9
- # @Description :
10
-
11
- import nacos
12
- import yaml
13
-
14
- from meutils.pipe import *
15
-
16
-
17
- class ConfigManager:
18
- _instance = None
19
- _config: Dict[str, Any] = {}
20
-
21
- def __new__(cls):
22
- if cls._instance is None:
23
- cls._instance = super().__new__(cls)
24
- return cls._instance
25
-
26
- def __init__(self):
27
- # Nacos客户端配置
28
- self.client = nacos.NacosClient(
29
- server_addresses="nacos.chatfire.cc", # Nacos服务器地址
30
- namespace="test", # 命名空间
31
- username="chatfire", # 用户名
32
- password="chatfirechatfire" # 密码
33
- )
34
-
35
- def init_config(self, data_id: str, group: str = "DEFAULT_GROUP"):
36
- """初始化配置并添加监听器"""
37
- # 获取初始配置
38
- config = self.client.get_config(data_id, group)
39
- logger.debug(config)
40
-
41
- if config:
42
- self._config = yaml.safe_load(config)
43
-
44
- # 添加配置变更监听器
45
- self.client.add_config_watcher(
46
- data_id,
47
- group,
48
- self._config_changed_callback
49
- )
50
-
51
- def _config_changed_callback(self, args):
52
- """配置变更回调函数"""
53
- print(f"配置发生变更: {args}")
54
- try:
55
- self._config = yaml.safe_load(args['content'])
56
- print(f"最新配置: {self._config}")
57
- except Exception as e:
58
- print(f"配置更新失败: {e}")
59
-
60
- @property
61
- def config(self) -> Dict[str, Any]:
62
- """获取当前配置"""
63
- return self._config
64
-
65
-
66
- if __name__ == '__main__':
67
- # 初始化配置管理器
68
-
69
- data_id = "testdata"
70
- group = "DEFAULT_GROUP"
71
-
72
- config_manager = ConfigManager()
73
- config_manager.init_config(
74
- data_id=data_id, # 配置ID
75
- )
76
-
77
- # yaml.safe_load("- 1")