pixelarraylib 1.0.0__tar.gz → 1.0.1__tar.gz

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.
Files changed (50) hide show
  1. {pixelarraylib-1.0.0 → pixelarraylib-1.0.1}/MANIFEST.in +1 -1
  2. {pixelarraylib-1.0.0/pixelarraylib.egg-info → pixelarraylib-1.0.1}/PKG-INFO +9 -9
  3. {pixelarraylib-1.0.0 → pixelarraylib-1.0.1}/README.md +7 -7
  4. {pixelarraylib-1.0.0/arraylib → pixelarraylib-1.0.1/pixelarraylib}/__init__.py +5 -5
  5. {pixelarraylib-1.0.0/arraylib → pixelarraylib-1.0.1/pixelarraylib}/__main__.py +21 -21
  6. pixelarraylib-1.0.1/pixelarraylib/aliyun/acr.py +217 -0
  7. {pixelarraylib-1.0.0/arraylib → pixelarraylib-1.0.1/pixelarraylib}/aliyun/aliyun_email.py +1 -1
  8. {pixelarraylib-1.0.0/arraylib → pixelarraylib-1.0.1/pixelarraylib}/aliyun/billing.py +1 -1
  9. {pixelarraylib-1.0.0/arraylib → pixelarraylib-1.0.1/pixelarraylib}/aliyun/content_scanner.py +1 -1
  10. pixelarraylib-1.0.1/pixelarraylib/aliyun/eci.py +165 -0
  11. {pixelarraylib-1.0.0/arraylib → pixelarraylib-1.0.1/pixelarraylib}/aliyun/fc.py +2 -2
  12. {pixelarraylib-1.0.0/arraylib → pixelarraylib-1.0.1/pixelarraylib}/aliyun/oss.py +2 -2
  13. {pixelarraylib-1.0.0/arraylib → pixelarraylib-1.0.1/pixelarraylib}/aliyun/sms.py +1 -1
  14. {pixelarraylib-1.0.0/arraylib → pixelarraylib-1.0.1/pixelarraylib}/aliyun/sts.py +2 -2
  15. {pixelarraylib-1.0.0/arraylib → pixelarraylib-1.0.1/pixelarraylib}/db_utils/mysql.py +1 -1
  16. {pixelarraylib-1.0.0/arraylib → pixelarraylib-1.0.1/pixelarraylib}/db_utils/redis.py +1 -1
  17. {pixelarraylib-1.0.0/arraylib → pixelarraylib-1.0.1/pixelarraylib}/decorators/__init__.py +1 -1
  18. {pixelarraylib-1.0.0/arraylib → pixelarraylib-1.0.1/pixelarraylib}/decorators/decorators.py +1 -1
  19. pixelarraylib-1.0.1/pixelarraylib/scripts/__init__.py +22 -0
  20. {pixelarraylib-1.0.0/arraylib → pixelarraylib-1.0.1/pixelarraylib}/scripts/collect_code_to_txt.py +4 -4
  21. {pixelarraylib-1.0.0/arraylib → pixelarraylib-1.0.1/pixelarraylib}/scripts/create_test_case_files.py +2 -2
  22. {pixelarraylib-1.0.0/arraylib → pixelarraylib-1.0.1/pixelarraylib}/scripts/nginx_proxy_to_ecs.py +2 -2
  23. {pixelarraylib-1.0.0/arraylib → pixelarraylib-1.0.1/pixelarraylib}/scripts/remove_empty_lines.py +5 -5
  24. {pixelarraylib-1.0.0/arraylib → pixelarraylib-1.0.1/pixelarraylib}/scripts/summary_code_count.py +5 -5
  25. {pixelarraylib-1.0.0/arraylib → pixelarraylib-1.0.1/pixelarraylib}/system/common.py +1 -1
  26. {pixelarraylib-1.0.0 → pixelarraylib-1.0.1/pixelarraylib.egg-info}/PKG-INFO +9 -9
  27. pixelarraylib-1.0.1/pixelarraylib.egg-info/SOURCES.txt +43 -0
  28. pixelarraylib-1.0.1/pixelarraylib.egg-info/entry_points.txt +2 -0
  29. {pixelarraylib-1.0.0 → pixelarraylib-1.0.1}/pixelarraylib.egg-info/requires.txt +1 -1
  30. pixelarraylib-1.0.1/pixelarraylib.egg-info/top_level.txt +1 -0
  31. {pixelarraylib-1.0.0 → pixelarraylib-1.0.1}/pyproject.toml +6 -6
  32. {pixelarraylib-1.0.0 → pixelarraylib-1.0.1}/requirements.txt +1 -1
  33. pixelarraylib-1.0.0/arraylib/aliyun/eci.py +0 -47
  34. pixelarraylib-1.0.0/arraylib/scripts/__init__.py +0 -22
  35. pixelarraylib-1.0.0/pixelarraylib.egg-info/SOURCES.txt +0 -42
  36. pixelarraylib-1.0.0/pixelarraylib.egg-info/entry_points.txt +0 -2
  37. pixelarraylib-1.0.0/pixelarraylib.egg-info/top_level.txt +0 -1
  38. {pixelarraylib-1.0.0 → pixelarraylib-1.0.1}/LICENSE +0 -0
  39. {pixelarraylib-1.0.0/arraylib → pixelarraylib-1.0.1/pixelarraylib}/aliyun/__init__.py +0 -0
  40. {pixelarraylib-1.0.0/arraylib → pixelarraylib-1.0.1/pixelarraylib}/aliyun/domain.py +0 -0
  41. {pixelarraylib-1.0.0/arraylib → pixelarraylib-1.0.1/pixelarraylib}/aliyun/ecs.py +0 -0
  42. {pixelarraylib-1.0.0/arraylib → pixelarraylib-1.0.1/pixelarraylib}/gitlab/__init__.py +0 -0
  43. {pixelarraylib-1.0.0/arraylib → pixelarraylib-1.0.1/pixelarraylib}/gitlab/code_analyzer.py +0 -0
  44. {pixelarraylib-1.0.0/arraylib → pixelarraylib-1.0.1/pixelarraylib}/gitlab/pypi_package_manager.py +0 -0
  45. {pixelarraylib-1.0.0/arraylib → pixelarraylib-1.0.1/pixelarraylib}/monitor/__init__.py +0 -0
  46. {pixelarraylib-1.0.0/arraylib → pixelarraylib-1.0.1/pixelarraylib}/monitor/feishu.py +0 -0
  47. {pixelarraylib-1.0.0/arraylib → pixelarraylib-1.0.1/pixelarraylib}/net/request.py +0 -0
  48. {pixelarraylib-1.0.0/arraylib → pixelarraylib-1.0.1/pixelarraylib}/system/__init__.py +0 -0
  49. {pixelarraylib-1.0.0 → pixelarraylib-1.0.1}/pixelarraylib.egg-info/dependency_links.txt +0 -0
  50. {pixelarraylib-1.0.0 → pixelarraylib-1.0.1}/setup.cfg +0 -0
@@ -1,7 +1,7 @@
1
1
  include README.md
2
2
  include requirements.txt
3
3
  include LICENSE
4
- recursive-include arraylib *.py
4
+ recursive-include pixelarraylib *.py
5
5
  recursive-exclude * __pycache__
6
6
  recursive-exclude * *.py[co]
7
7
  recursive-exclude test_case *
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: pixelarraylib
3
- Version: 1.0.0
3
+ Version: 1.0.1
4
4
  Summary: PixelArray Python开发工具库 - 包含阿里云服务、数据库工具、装饰器、监控等功能
5
5
  Author-email: Lu qi <qi.lu@pixelarrayai.com>
6
6
  License-Expression: MIT
@@ -32,11 +32,11 @@ Requires-Dist: alibabacloud_sts20150401
32
32
  Requires-Dist: alibabacloud_alidns20150109
33
33
  Requires-Dist: alibabacloud_eci20180808
34
34
  Requires-Dist: alibabacloud_bssopenapi20171214
35
+ Requires-Dist: alibabacloud_cr20181201
35
36
  Requires-Dist: oss2
36
37
  Requires-Dist: pymysql
37
38
  Requires-Dist: aiomysql
38
39
  Requires-Dist: redis
39
- Requires-Dist: redis[async]
40
40
  Requires-Dist: requests
41
41
  Requires-Dist: aiohttp
42
42
  Requires-Dist: asyncio
@@ -63,12 +63,12 @@ pip install pixelarraylib
63
63
 
64
64
  ```python
65
65
  # 导入pixelarraylib模块
66
- import arraylib
66
+ import pixelarraylib
67
67
 
68
68
  # 使用各种功能模块
69
- from arraylib.aliyun import some_service
70
- from arraylib.db_utils import database_tools
71
- from arraylib.decorators import useful_decorators
69
+ from pixelarraylib.aliyun import some_service
70
+ from pixelarraylib.db_utils import database_tools
71
+ from pixelarraylib.decorators import useful_decorators
72
72
  ```
73
73
 
74
74
  ### 2. 命令行工具使用
@@ -128,9 +128,9 @@ pixelarraylib --help
128
128
 
129
129
  ### 添加新的命令行工具
130
130
 
131
- 1. 在 `arraylib/scripts/` 目录下创建新的脚本文件
132
- 2. 在 `arraylib/__main__.py` 中添加新的命令选项
133
- 3. 更新 `arraylib/scripts/__init__.py` 导出新功能
131
+ 1. 在 `pixelarraylib/scripts/` 目录下创建新的脚本文件
132
+ 2. 在 `pixelarraylib/__main__.py` 中添加新的命令选项
133
+ 3. 更新 `pixelarraylib/scripts/__init__.py` 导出新功能
134
134
 
135
135
  ## 许可证
136
136
 
@@ -14,12 +14,12 @@ pip install pixelarraylib
14
14
 
15
15
  ```python
16
16
  # 导入pixelarraylib模块
17
- import arraylib
17
+ import pixelarraylib
18
18
 
19
19
  # 使用各种功能模块
20
- from arraylib.aliyun import some_service
21
- from arraylib.db_utils import database_tools
22
- from arraylib.decorators import useful_decorators
20
+ from pixelarraylib.aliyun import some_service
21
+ from pixelarraylib.db_utils import database_tools
22
+ from pixelarraylib.decorators import useful_decorators
23
23
  ```
24
24
 
25
25
  ### 2. 命令行工具使用
@@ -79,9 +79,9 @@ pixelarraylib --help
79
79
 
80
80
  ### 添加新的命令行工具
81
81
 
82
- 1. 在 `arraylib/scripts/` 目录下创建新的脚本文件
83
- 2. 在 `arraylib/__main__.py` 中添加新的命令选项
84
- 3. 更新 `arraylib/scripts/__init__.py` 导出新功能
82
+ 1. 在 `pixelarraylib/scripts/` 目录下创建新的脚本文件
83
+ 2. 在 `pixelarraylib/__main__.py` 中添加新的命令选项
84
+ 3. 更新 `pixelarraylib/scripts/__init__.py` 导出新功能
85
85
 
86
86
  ## 许可证
87
87
 
@@ -14,13 +14,13 @@ PixelArray Python开发工具库
14
14
  - system: 系统工具
15
15
 
16
16
  使用示例:
17
- from arraylib.aliyun import oss
18
- from arraylib.db_utils import mysql
19
- from arraylib.decorators import decorators
20
- from arraylib.gitlab import pypi_package_manager
17
+ from pixelarraylib.aliyun import oss
18
+ from pixelarraylib.db_utils import mysql
19
+ from pixelarraylib.decorators import decorators
20
+ from pixelarraylib.gitlab import pypi_package_manager
21
21
  """
22
22
 
23
- __version__ = "1.0.0"
23
+ __version__ = "1.0.1"
24
24
  __author__ = "PixelArray"
25
25
  __email__ = "qi.lu@pixelarrayai.com"
26
26
 
@@ -2,11 +2,11 @@
2
2
  """
3
3
  ArrayLib 命令行工具入口点
4
4
  支持的命令:
5
- - arraylib create_test_case_files
6
- - arraylib summary_code_count [options]
7
- - arraylib collect_code_to_txt [options]
8
- - arraylib nginx_proxy_to_ecs [options]
9
- - arraylib remove_empty_lines <input_file> [output_file]
5
+ - pixelarraylib create_test_case_files
6
+ - pixelarraylib summary_code_count [options]
7
+ - pixelarraylib collect_code_to_txt [options]
8
+ - pixelarraylib nginx_proxy_to_ecs [options]
9
+ - pixelarraylib remove_empty_lines <input_file> [output_file]
10
10
  """
11
11
 
12
12
  import sys
@@ -21,11 +21,11 @@ def main():
21
21
  formatter_class=argparse.RawDescriptionHelpFormatter,
22
22
  epilog="""
23
23
  示例用法:
24
- arraylib create_test_case_files --help # 创建测试用例文件
25
- arraylib summary_code_count --help # 查看统计工具帮助
26
- arraylib collect_code_to_txt --help # 查看收集工具帮助
27
- arraylib nginx_proxy_to_ecs --help # 查看Nginx反向代理到ECS工具帮助
28
- arraylib remove_empty_lines --help # 查看去除空行工具帮助
24
+ pixelarraylib create_test_case_files --help # 创建测试用例文件
25
+ pixelarraylib summary_code_count --help # 查看统计工具帮助
26
+ pixelarraylib collect_code_to_txt --help # 查看收集工具帮助
27
+ pixelarraylib nginx_proxy_to_ecs --help # 查看Nginx反向代理到ECS工具帮助
28
+ pixelarraylib remove_empty_lines --help # 查看去除空行工具帮助
29
29
  """,
30
30
  )
31
31
  parser.print_help()
@@ -36,7 +36,7 @@ def main():
36
36
  if command == "create_test_case_files":
37
37
  # 导入并执行创建测试用例文件功能
38
38
  try:
39
- from arraylib.scripts.create_test_case_files import main as create_test_main
39
+ from pixelarraylib.scripts.create_test_case_files import main as create_test_main
40
40
 
41
41
  create_test_main()
42
42
  except ImportError as e:
@@ -46,7 +46,7 @@ def main():
46
46
  elif command == "summary_code_count":
47
47
  # 导入并执行代码统计功能
48
48
  try:
49
- from arraylib.scripts.summary_code_count import main as summary_main
49
+ from pixelarraylib.scripts.summary_code_count import main as summary_main
50
50
 
51
51
  # 修改sys.argv,移除第一个参数(arraylib),让summary_code_count正确处理参数
52
52
  original_argv = sys.argv
@@ -60,7 +60,7 @@ def main():
60
60
  elif command == "collect_code_to_txt":
61
61
  # 导入并执行代码收集功能
62
62
  try:
63
- from arraylib.scripts.collect_code_to_txt import main as collect_main
63
+ from pixelarraylib.scripts.collect_code_to_txt import main as collect_main
64
64
 
65
65
  # 修改sys.argv,移除第一个参数(arraylib),让collect_code_to_txt正确处理参数
66
66
  original_argv = sys.argv
@@ -74,7 +74,7 @@ def main():
74
74
  elif command == "nginx_proxy_to_ecs":
75
75
  # 导入并执行Nginx反向代理到ECS功能
76
76
  try:
77
- from arraylib.scripts.nginx_proxy_to_ecs import main as nginx_proxy_to_ecs
77
+ from pixelarraylib.scripts.nginx_proxy_to_ecs import main as nginx_proxy_to_ecs
78
78
 
79
79
  # 修改sys.argv,移除第一个参数(arraylib),让nginx_proxy_to_ecs正确处理参数
80
80
  original_argv = sys.argv
@@ -88,7 +88,7 @@ def main():
88
88
  elif command == "remove_empty_lines":
89
89
  # 导入并执行去除空行功能
90
90
  try:
91
- from arraylib.scripts.remove_empty_lines import main as remove_empty_lines_main
91
+ from pixelarraylib.scripts.remove_empty_lines import main as remove_empty_lines_main
92
92
 
93
93
  # 修改sys.argv,移除第一个参数(arraylib),让remove_empty_lines正确处理参数
94
94
  original_argv = sys.argv
@@ -105,11 +105,11 @@ def main():
105
105
  formatter_class=argparse.RawDescriptionHelpFormatter,
106
106
  epilog="""
107
107
  示例用法:
108
- arraylib create_test_case_files --help # 创建测试用例文件
109
- arraylib summary_code_count --help # 查看统计工具帮助
110
- arraylib collect_code_to_txt --help # 查看收集工具帮助
111
- arraylib nginx_proxy_to_ecs --help # 查看Nginx反向代理到ECS工具帮助
112
- arraylib remove_empty_lines --help # 查看去除空行工具帮助
108
+ pixelarraylib create_test_case_files --help # 创建测试用例文件
109
+ pixelarraylib summary_code_count --help # 查看统计工具帮助
110
+ pixelarraylib collect_code_to_txt --help # 查看收集工具帮助
111
+ pixelarraylib nginx_proxy_to_ecs --help # 查看Nginx反向代理到ECS工具帮助
112
+ pixelarraylib remove_empty_lines --help # 查看去除空行工具帮助
113
113
  """,
114
114
  )
115
115
  parser.print_help()
@@ -118,7 +118,7 @@ def main():
118
118
  print(
119
119
  "可用命令:create_test_case_files, summary_code_count, collect_code_to_txt, nginx_proxy_to_ecs, remove_empty_lines"
120
120
  )
121
- print("使用 'arraylib --help' 查看帮助")
121
+ print("使用 'pixelarraylib --help' 查看帮助")
122
122
  sys.exit(1)
123
123
 
124
124
 
@@ -0,0 +1,217 @@
1
+ import os
2
+ import sys
3
+
4
+ from typing import List
5
+
6
+ from alibabacloud_cr20181201.client import Client as cr20181201Client
7
+ from alibabacloud_credentials.client import Client as CredentialClient
8
+ from alibabacloud_tea_openapi import models as open_api_models
9
+ from alibabacloud_cr20181201 import models as cr_20181201_models
10
+ from alibabacloud_tea_util import models as util_models
11
+ from alibabacloud_tea_util.client import Client as UtilClient
12
+
13
+ from pixelarraylib.monitor.feishu import Feishu
14
+
15
+ feishu_alert = Feishu("devtoolkit服务报警")
16
+
17
+
18
+ class ACRUtils:
19
+ def __init__(self, region_id: str, access_key_id: str, access_key_secret: str):
20
+ self.region_id = region_id
21
+ self.access_key_id = access_key_id
22
+ self.access_key_secret = access_key_secret
23
+ self.client = self._create_client()
24
+
25
+ def _create_client(self):
26
+ credential = CredentialClient()
27
+ config = open_api_models.Config(
28
+ credential=credential,
29
+ access_key_id=self.access_key_id,
30
+ access_key_secret=self.access_key_secret,
31
+ )
32
+ # Endpoint 请参考 https://api.aliyun.com/product/cr
33
+ config.endpoint = f"cr.{self.region_id}.aliyuncs.com"
34
+ return cr20181201Client(config)
35
+
36
+ def list_instances(self):
37
+ """
38
+ description:
39
+ 列出容器镜像服务实例
40
+ parameters:
41
+ None
42
+ return:
43
+ dict: 包含实例列表的响应数据
44
+ success(bool): 是否成功
45
+ """
46
+
47
+ try:
48
+ request = cr_20181201_models.ListInstanceRequest()
49
+ response = self.client.list_instance(request)
50
+ return response.body.to_map(), True
51
+ except Exception as e:
52
+ feishu_alert.send(f"列出实例失败: {e}")
53
+ return {}, False
54
+
55
+ def create_namespace(self, instance_id: str, namespace_name: str):
56
+ """
57
+ description:
58
+ 创建命名空间
59
+ parameters:
60
+ instance_id (str): 实例ID
61
+ namespace_name (str): 命名空间名称
62
+ return:
63
+ dict: 创建结果
64
+ success(bool): 是否成功
65
+ """
66
+
67
+ try:
68
+ request = cr_20181201_models.CreateNamespaceRequest(
69
+ instance_id=instance_id, namespace_name=namespace_name
70
+ )
71
+ response = self.client.create_namespace(request)
72
+ return response.body.to_map(), True
73
+ except Exception as e:
74
+ feishu_alert.send(f"创建命名空间失败: {e}")
75
+ return {}, False
76
+
77
+ def delete_namespace(self, instance_id: str, namespace_name: str):
78
+ """
79
+ description:
80
+ 删除命名空间
81
+ parameters:
82
+ instance_id (str): 实例ID
83
+ namespace_name (str): 命名空间名称
84
+ return:
85
+ dict: 删除结果
86
+ success(bool): 是否成功
87
+ """
88
+ try:
89
+ request = cr_20181201_models.DeleteNamespaceRequest(
90
+ instance_id=instance_id, namespace_name=namespace_name
91
+ )
92
+ response = self.client.delete_namespace(request)
93
+ return response.body.to_map(), True
94
+ except Exception as e:
95
+ feishu_alert.send(f"删除命名空间失败: {e}")
96
+ return {}, False
97
+
98
+ def list_namespaces(self, instance_id: str):
99
+ """
100
+ description:
101
+ 列出命名空间
102
+ parameters:
103
+ instance_id (str): 实例ID
104
+ return:
105
+ dict: 包含命名空间列表的响应数据
106
+ success(bool): 是否成功
107
+ """
108
+ try:
109
+ request = cr_20181201_models.ListNamespaceRequest(instance_id=instance_id)
110
+ response = self.client.list_namespace(request)
111
+ return response.body.to_map(), True
112
+ except Exception as e:
113
+ feishu_alert.send(f"列出命名空间失败: {e}")
114
+ return {}, False
115
+
116
+ def create_repository(
117
+ self, instance_id: str, namespace_name: str, repository_name: str, repository_type: str, summary: str
118
+ ):
119
+ """
120
+ description:
121
+ 创建仓库
122
+ parameters:
123
+ instance_id (str): 实例ID
124
+ namespace_name (str): 命名空间名称
125
+ repository_name (str): 仓库名称
126
+ repository_type (str): 仓库类型
127
+ summary (str): 仓库摘要
128
+ return:
129
+ dict: 创建结果
130
+ success(bool): 是否成功
131
+ """
132
+ try:
133
+ request = cr_20181201_models.CreateRepositoryRequest(
134
+ instance_id=instance_id,
135
+ repo_namespace_name=namespace_name,
136
+ repo_name=repository_name,
137
+ repo_type=repository_type,
138
+ summary=summary
139
+ )
140
+ response = self.client.create_repository(request)
141
+ return response.body.to_map(), True
142
+ except Exception as e:
143
+ feishu_alert.send(f"创建仓库失败: {e}")
144
+ return {}, False
145
+
146
+ def list_repositories(self, instance_id: str, namespace_name: str):
147
+ """
148
+ description:
149
+ 列出仓库
150
+ parameters:
151
+ instance_id (str): 实例ID
152
+ namespace_name (str): 命名空间名称
153
+ return:
154
+ dict: 包含仓库列表的响应数据
155
+ success(bool): 是否成功
156
+ """
157
+ try:
158
+ request = cr_20181201_models.ListRepositoryRequest(
159
+ instance_id=instance_id, repo_namespace_name=namespace_name
160
+ )
161
+ response = self.client.list_repository(request)
162
+ return response.body.to_map(), True
163
+ except Exception as e:
164
+ feishu_alert.send(f"列出仓库失败: {e}")
165
+ return {}, False
166
+
167
+ def delete_repository(
168
+ self, instance_id: str, namespace_name: str, repository_id: str
169
+ ):
170
+ """
171
+ description:
172
+ 删除仓库
173
+ parameters:
174
+ instance_id (str): 实例ID
175
+ namespace_name (str): 命名空间名称
176
+ repository_id (str): 仓库ID
177
+ return:
178
+ dict: 删除结果
179
+ success(bool): 是否成功
180
+ """
181
+ try:
182
+ request = cr_20181201_models.DeleteRepositoryRequest(
183
+ instance_id=instance_id,
184
+ repo_namespace_name=namespace_name,
185
+ repo_id=repository_id,
186
+ )
187
+ response = self.client.delete_repository(request)
188
+ return response.body.to_map(), True
189
+ except Exception as e:
190
+ feishu_alert.send(f"删除仓库失败: {e}")
191
+ return {}, False
192
+
193
+ def get_repository(
194
+ self, instance_id: str, namespace_name: str, repository_name: str
195
+ ):
196
+ """
197
+ description:
198
+ 获取仓库详情信息
199
+ parameters:
200
+ instance_id (str): 实例ID
201
+ namespace_name (str): 命名空间名称
202
+ repository_name (str): 仓库名称
203
+ return:
204
+ dict: 详情信息
205
+ success(bool): 是否成功
206
+ """
207
+ try:
208
+ request = cr_20181201_models.GetRepositoryRequest(
209
+ instance_id=instance_id,
210
+ repo_namespace_name=namespace_name,
211
+ repo_name=repository_name,
212
+ )
213
+ response = self.client.get_repository(request)
214
+ return response.body.to_map(), True
215
+ except Exception as e:
216
+ feishu_alert.send(f"获取仓库详情失败: {e}")
217
+ return {}, False
@@ -6,7 +6,7 @@ from alibabacloud_dm20151123.client import Client as Dm20151123Client
6
6
  from alibabacloud_tea_openapi import models as open_api_models
7
7
  from alibabacloud_dm20151123 import models as dm_20151123_models
8
8
  from alibabacloud_tea_util import models as util_models
9
- from arraylib.monitor.feishu import Feishu
9
+ from pixelarraylib.monitor.feishu import Feishu
10
10
 
11
11
  feishu_alert = Feishu("devtoolkit服务报警")
12
12
 
@@ -5,7 +5,7 @@ from alibabacloud_bssopenapi20171214.client import Client as BssOpenApi20171214C
5
5
  from alibabacloud_tea_openapi import models as open_api_models
6
6
  from alibabacloud_bssopenapi20171214 import models as bss_open_api_20171214_models
7
7
  from alibabacloud_tea_util import models as util_models
8
- from arraylib.monitor.feishu import Feishu
8
+ from pixelarraylib.monitor.feishu import Feishu
9
9
 
10
10
  feishu_alert = Feishu("devtoolkit服务报警")
11
11
 
@@ -13,7 +13,7 @@ from alibabacloud_green20220302.models import (
13
13
  )
14
14
  from alibabacloud_tea_openapi.models import Config
15
15
  from alibabacloud_tea_util import models as util_models
16
- from arraylib.monitor.feishu import Feishu
16
+ from pixelarraylib.monitor.feishu import Feishu
17
17
  feishu_alert = Feishu("devtoolkit服务报警")
18
18
 
19
19
  class ContentScanner:
@@ -0,0 +1,165 @@
1
+ import json
2
+ from operator import contains
3
+ import traceback
4
+ from typing import Optional, Dict, Any, List
5
+ from alibabacloud_eci20180808.client import Client as EciClient
6
+ from alibabacloud_eci20180808.models import (
7
+ CreateContainerGroupRequest,
8
+ DescribeContainerGroupsRequest,
9
+ CreateContainerGroupRequestContainer,
10
+ CreateContainerGroupRequestImageRegistryCredential,
11
+ CreateContainerGroupRequestTag,
12
+ CreateContainerGroupRequest,
13
+ )
14
+ from alibabacloud_tea_openapi import models as open_api_models
15
+ from alibabacloud_tea_util import models as util_models
16
+ from pixelarraylib.monitor.feishu import Feishu
17
+
18
+ feishu_alert = Feishu("devtoolkit服务报警")
19
+
20
+
21
+ class ECIUtils:
22
+ def __init__(self, region_id: str, access_key_id: str, access_key_secret: str):
23
+ """
24
+ description:
25
+ 初始化ECI工具类
26
+ parameters:
27
+ region_id(str): 地域ID
28
+ access_key_id(str): 访问密钥ID
29
+ access_key_secret(str): 访问密钥Secret
30
+ """
31
+ self.region_id = region_id
32
+ self.access_key_id = access_key_id
33
+ self.access_key_secret = access_key_secret
34
+ self.client = self._create_client()
35
+
36
+ def _create_client(self) -> EciClient:
37
+ """
38
+ description:
39
+ 创建ECI客户端
40
+ return:
41
+ EciClient: ECI客户端实例
42
+ """
43
+ config = open_api_models.Config(
44
+ access_key_id=self.access_key_id,
45
+ access_key_secret=self.access_key_secret,
46
+ region_id=self.region_id,
47
+ endpoint=f"eci.{self.region_id}.aliyuncs.com",
48
+ )
49
+ return EciClient(config)
50
+
51
+ def create_container_group(
52
+ self,
53
+ container_group_name: str,
54
+ acr_region_id: str,
55
+ acr_credentials: Dict,
56
+ images: List[Dict[str, Any]],
57
+ instance_type: str = "ecs.c1.small",
58
+ zone_id: str = "a",
59
+ restart_policy: str = "Always",
60
+ ):
61
+ """
62
+ description:
63
+ 创建容器组
64
+ parameters:
65
+ container_group_name(str): 容器组名称
66
+ acr_region_id(str): ACR地域ID
67
+ acr_credentials(Dict): ACR凭证
68
+ images(List[Dict[str, Any]]): 镜像列表
69
+ instance_type(str): 实例类型
70
+ zone_id(str): 可用区ID
71
+ restart_policy(str): 重启策略
72
+ return:
73
+ dict: 创建结果
74
+ success(bool): 是否成功
75
+ """
76
+ containers = []
77
+ for image in images:
78
+ container_0 = CreateContainerGroupRequestContainer(
79
+ name=image["repository_name"],
80
+ image=f"pixelarrayai-registry-vpc.{acr_region_id}.cr.aliyuncs.com/{image['namespace_name']}/{image['repository_name']}:latest",
81
+ )
82
+ containers.append(container_0)
83
+
84
+ image_registry_credentials = [
85
+ CreateContainerGroupRequestImageRegistryCredential(
86
+ password=acr_credentials["password"],
87
+ server=f"pixelarrayai-registry-vpc.{acr_region_id}.cr.aliyuncs.com",
88
+ user_name=acr_credentials["user_name"],
89
+ )
90
+ ]
91
+
92
+ tag_0 = CreateContainerGroupRequestTag(key="team", value="pixelarrayai")
93
+ create_container_group_request = CreateContainerGroupRequest(
94
+ region_id=self.region_id,
95
+ zone_id=f"{self.region_id}-{zone_id}",
96
+ container_group_name=container_group_name,
97
+ restart_policy=restart_policy,
98
+ cpu=1,
99
+ memory=2,
100
+ resource_group_id="rg-acfm3aqovjsymaa",
101
+ dns_policy="Default",
102
+ instance_type=instance_type,
103
+ active_deadline_seconds=600,
104
+ spot_strategy="SpotAsPriceGo",
105
+ host_name="ecitest",
106
+ tag=[tag_0],
107
+ image_registry_credential=image_registry_credentials,
108
+ termination_grace_period_seconds=60,
109
+ container=[container_0],
110
+ auto_match_image_cache=False,
111
+ share_process_namespace=True,
112
+ schedule_strategy="VSwitchOrdered",
113
+ )
114
+ runtime = util_models.RuntimeOptions()
115
+ try:
116
+ # 复制代码运行请自行打印 API 的返回值
117
+ response = self.client.create_container_group_with_options(
118
+ create_container_group_request, runtime
119
+ )
120
+ return response.body.to_map(), True
121
+ except Exception as error:
122
+ feishu_alert.send(f"创建容器组失败: {error}")
123
+ return {}, False
124
+
125
+ def describe_container_group(self, container_group_id: str):
126
+ """
127
+ description:
128
+ 查询容器组
129
+ parameters:
130
+ container_group_id(str): 容器组ID
131
+ return:
132
+ dict: 查询结果
133
+ """
134
+ try:
135
+ describe_container_groups_request = DescribeContainerGroupsRequest(
136
+ container_group_id=container_group_id
137
+ )
138
+ runtime = util_models.RuntimeOptions()
139
+ response = self.client.describe_container_groups_with_options(
140
+ describe_container_groups_request, runtime
141
+ )
142
+ return response.body.to_map()
143
+ except Exception as error:
144
+ feishu_alert.send(f"查询容器组失败: {error}")
145
+ return {}
146
+
147
+ def list_container_groups(self):
148
+ """
149
+ description:
150
+ 查询容器组列表
151
+ parameters:
152
+ None
153
+ return:
154
+ dict: 查询结果
155
+ """
156
+ try:
157
+ list_container_groups_request = ListContainerGroupsRequest()
158
+ runtime = util_models.RuntimeOptions()
159
+ response = self.client.list_container_groups_with_options(
160
+ list_container_groups_request, runtime
161
+ )
162
+ return response.body.to_map()
163
+ except Exception as error:
164
+ feishu_alert.send(f"查询容器组列表失败: {error}")
165
+ return {}
@@ -8,8 +8,8 @@ from alibabacloud_tea_openapi import models as open_api_models
8
8
  from alibabacloud_darabonba_stream.client import Client as StreamClient
9
9
  from alibabacloud_fc20230330 import models as fc20230330_models
10
10
  from alibabacloud_tea_util import models as util_models
11
- from arraylib.monitor.feishu import Feishu
12
- from arraylib.system.common import execute_command, file_to_base64
11
+ from pixelarraylib.monitor.feishu import Feishu
12
+ from pixelarraylib.system.common import execute_command, file_to_base64
13
13
 
14
14
  feishu_alert = Feishu("devtoolkit服务报警")
15
15
 
@@ -11,8 +11,8 @@ from hashlib import sha1
11
11
  from datetime import datetime
12
12
  from urllib.parse import quote, urlencode
13
13
  from datetime import datetime
14
- from arraylib.system.common import size_unit_convert, percentage
15
- from arraylib.monitor.feishu import Feishu
14
+ from pixelarraylib.system.common import size_unit_convert, percentage
15
+ from pixelarraylib.monitor.feishu import Feishu
16
16
  import aiofiles
17
17
  from concurrent.futures import ThreadPoolExecutor
18
18
 
@@ -4,7 +4,7 @@ from alibabacloud_dysmsapi20170525.client import Client as Dysmsapi20170525Clien
4
4
  from alibabacloud_tea_openapi import models as open_api_models
5
5
  from alibabacloud_dysmsapi20170525 import models as dysmsapi_20170525_models
6
6
  from alibabacloud_tea_util import models as util_models
7
- from arraylib.monitor.feishu import Feishu
7
+ from pixelarraylib.monitor.feishu import Feishu
8
8
  feishu_alert = Feishu("devtoolkit服务报警")
9
9
 
10
10
  class SMSUtils:
@@ -5,8 +5,8 @@ from alibabacloud_sts20150401.client import Client as StsClient
5
5
  from alibabacloud_tea_openapi import models as open_api_models
6
6
  from alibabacloud_sts20150401 import models as sts_20150401_models
7
7
  from alibabacloud_tea_util import models as util_models
8
- from arraylib.monitor.feishu import Feishu
9
- from arraylib.db_utils.redis import RedisUtils
8
+ from pixelarraylib.monitor.feishu import Feishu
9
+ from pixelarraylib.db_utils.redis import RedisUtils
10
10
 
11
11
  feishu_alert = Feishu("devtoolkit服务报警")
12
12
 
@@ -2,7 +2,7 @@ import traceback
2
2
  import pymysql
3
3
  import aiomysql
4
4
  import asyncio
5
- from arraylib.monitor.feishu import Feishu
5
+ from pixelarraylib.monitor.feishu import Feishu
6
6
  import time
7
7
  from pymysql.err import OperationalError
8
8
 
@@ -2,7 +2,7 @@ import traceback
2
2
  from typing import List
3
3
  import redis
4
4
  import redis.asyncio as aioredis
5
- from arraylib.monitor.feishu import Feishu
5
+ from pixelarraylib.monitor.feishu import Feishu
6
6
 
7
7
  feishu_alert = Feishu("devtoolkit服务报警")
8
8
 
@@ -1,4 +1,4 @@
1
- from arraylib.decorators.decorators import (
1
+ from pixelarraylib.decorators.decorators import (
2
2
  catch_exception,
3
3
  with_retry,
4
4
  with_timeout,
@@ -8,7 +8,7 @@ from typing import Callable, Any
8
8
  from time import sleep
9
9
  from functools import wraps
10
10
  from concurrent.futures import ThreadPoolExecutor, TimeoutError
11
- from arraylib.monitor.feishu import Feishu
11
+ from pixelarraylib.monitor.feishu import Feishu
12
12
  import inspect
13
13
 
14
14
 
@@ -0,0 +1,22 @@
1
+ """
2
+ ArrayLib 脚本工具包
3
+ 包含各种实用的命令行工具和脚本
4
+ """
5
+
6
+ __version__ = "1.0.1"
7
+ __author__ = "Lu qi"
8
+
9
+ # 导出主要的脚本函数
10
+ from pixelarraylib.scripts.create_test_case_files import main as create_test_case_files
11
+ from pixelarraylib.scripts.summary_code_count import main as summary_code_count
12
+ from pixelarraylib.scripts.collect_code_to_txt import main as collect_code_to_txt
13
+ from pixelarraylib.scripts.nginx_proxy_to_ecs import main as nginx_proxy_to_ecs
14
+ from pixelarraylib.scripts.remove_empty_lines import main as remove_empty_lines
15
+
16
+ __all__ = [
17
+ "create_test_case_files",
18
+ "summary_code_count",
19
+ "collect_code_to_txt",
20
+ "nginx_proxy_to_ecs",
21
+ "remove_empty_lines",
22
+ ]
@@ -5,12 +5,12 @@ Git仓库代码收集工具
5
5
 
6
6
  使用方法:
7
7
  1. 作为命令行工具:
8
- arraylib collect_code_to_txt --output=all_code.txt
9
- arraylib collect_code_to_txt --extensions="py,js,vue" --output=frontend_code.txt
10
- arraylib collect_code_to_txt --since="2024-01-01" --output=recent_code.txt
8
+ pixelarraylib collect_code_to_txt --output=all_code.txt
9
+ pixelarraylib collect_code_to_txt --extensions="py,js,vue" --output=frontend_code.txt
10
+ pixelarraylib collect_code_to_txt --since="2024-01-01" --output=recent_code.txt
11
11
 
12
12
  2. 作为Python模块:
13
- from arraylib.scripts.collect_code_to_txt import collect_git_repos_code
13
+ from pixelarraylib.scripts.collect_code_to_txt import collect_git_repos_code
14
14
  collect_git_repos_code(output_file="code.txt")
15
15
  """
16
16
 
@@ -2,10 +2,10 @@
2
2
  本脚本用于一键创建所有测试用例文件
3
3
  使用方法:
4
4
  1. 作为命令行工具:
5
- arraylib create_test_case_files
5
+ pixelarraylib create_test_case_files
6
6
 
7
7
  2. 作为Python模块:
8
- from arraylib.scripts.create_test_case_files import main
8
+ from pixelarraylib.scripts.create_test_case_files import main
9
9
  main()
10
10
  """
11
11
 
@@ -1,7 +1,7 @@
1
1
  import argparse
2
2
  import base64
3
- from arraylib.system.common import execute_command_through_ssh
4
- from arraylib.aliyun.domain import DomainUtils
3
+ from pixelarraylib.system.common import execute_command_through_ssh
4
+ from pixelarraylib.aliyun.domain import DomainUtils
5
5
 
6
6
 
7
7
  def nginx_proxy_file_template(
@@ -3,15 +3,15 @@
3
3
  去除Markdown文档中的所有空行
4
4
 
5
5
  用法:
6
- arraylib remove_empty_lines <input_file> [output_file]
6
+ pixelarraylib remove_empty_lines <input_file> [output_file]
7
7
 
8
8
  参数:
9
9
  input_file 输入的Markdown文件路径
10
10
  output_file 输出的文件路径(可选,默认覆盖原文件)
11
11
 
12
12
  示例:
13
- arraylib remove_empty_lines test.md
14
- arraylib remove_empty_lines test.md output.md
13
+ pixelarraylib remove_empty_lines test.md
14
+ pixelarraylib remove_empty_lines test.md output.md
15
15
  """
16
16
 
17
17
  import sys
@@ -74,8 +74,8 @@ def main():
74
74
  formatter_class=argparse.RawDescriptionHelpFormatter,
75
75
  epilog="""
76
76
  示例用法:
77
- arraylib remove_empty_lines test.md # 去除test.md中的空行并覆盖原文件
78
- arraylib remove_empty_lines test.md output.md # 去除test.md中的空行并保存到output.md
77
+ pixelarraylib remove_empty_lines test.md # 去除test.md中的空行并覆盖原文件
78
+ pixelarraylib remove_empty_lines test.md output.md # 去除test.md中的空行并保存到output.md
79
79
  """
80
80
  )
81
81
 
@@ -5,13 +5,13 @@
5
5
 
6
6
  使用方法:
7
7
  1. 作为命令行工具:
8
- arraylib summary_code_count --since="2025-05-09"
9
- arraylib summary_code_count --author="张三"
10
- arraylib summary_code_count --output=stats.csv
11
- arraylib summary_code_count --file-types="py,js,vue"
8
+ pixelarraylib summary_code_count --since="2025-05-09"
9
+ pixelarraylib summary_code_count --author="张三"
10
+ pixelarraylib summary_code_count --output=stats.csv
11
+ pixelarraylib summary_code_count --file-types="py,js,vue"
12
12
 
13
13
  2. 作为Python模块:
14
- from arraylib.scripts.summary_code_count import main
14
+ from pixelarraylib.scripts.summary_code_count import main
15
15
  main()
16
16
  """
17
17
 
@@ -6,7 +6,7 @@ import traceback
6
6
  from typing import Union, List, Generator
7
7
  from cryptography.fernet import Fernet
8
8
  import base64
9
- from arraylib.monitor.feishu import Feishu
9
+ from pixelarraylib.monitor.feishu import Feishu
10
10
  import os
11
11
  import paramiko
12
12
 
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: pixelarraylib
3
- Version: 1.0.0
3
+ Version: 1.0.1
4
4
  Summary: PixelArray Python开发工具库 - 包含阿里云服务、数据库工具、装饰器、监控等功能
5
5
  Author-email: Lu qi <qi.lu@pixelarrayai.com>
6
6
  License-Expression: MIT
@@ -32,11 +32,11 @@ Requires-Dist: alibabacloud_sts20150401
32
32
  Requires-Dist: alibabacloud_alidns20150109
33
33
  Requires-Dist: alibabacloud_eci20180808
34
34
  Requires-Dist: alibabacloud_bssopenapi20171214
35
+ Requires-Dist: alibabacloud_cr20181201
35
36
  Requires-Dist: oss2
36
37
  Requires-Dist: pymysql
37
38
  Requires-Dist: aiomysql
38
39
  Requires-Dist: redis
39
- Requires-Dist: redis[async]
40
40
  Requires-Dist: requests
41
41
  Requires-Dist: aiohttp
42
42
  Requires-Dist: asyncio
@@ -63,12 +63,12 @@ pip install pixelarraylib
63
63
 
64
64
  ```python
65
65
  # 导入pixelarraylib模块
66
- import arraylib
66
+ import pixelarraylib
67
67
 
68
68
  # 使用各种功能模块
69
- from arraylib.aliyun import some_service
70
- from arraylib.db_utils import database_tools
71
- from arraylib.decorators import useful_decorators
69
+ from pixelarraylib.aliyun import some_service
70
+ from pixelarraylib.db_utils import database_tools
71
+ from pixelarraylib.decorators import useful_decorators
72
72
  ```
73
73
 
74
74
  ### 2. 命令行工具使用
@@ -128,9 +128,9 @@ pixelarraylib --help
128
128
 
129
129
  ### 添加新的命令行工具
130
130
 
131
- 1. 在 `arraylib/scripts/` 目录下创建新的脚本文件
132
- 2. 在 `arraylib/__main__.py` 中添加新的命令选项
133
- 3. 更新 `arraylib/scripts/__init__.py` 导出新功能
131
+ 1. 在 `pixelarraylib/scripts/` 目录下创建新的脚本文件
132
+ 2. 在 `pixelarraylib/__main__.py` 中添加新的命令选项
133
+ 3. 更新 `pixelarraylib/scripts/__init__.py` 导出新功能
134
134
 
135
135
  ## 许可证
136
136
 
@@ -0,0 +1,43 @@
1
+ LICENSE
2
+ MANIFEST.in
3
+ README.md
4
+ pyproject.toml
5
+ requirements.txt
6
+ pixelarraylib/__init__.py
7
+ pixelarraylib/__main__.py
8
+ pixelarraylib.egg-info/PKG-INFO
9
+ pixelarraylib.egg-info/SOURCES.txt
10
+ pixelarraylib.egg-info/dependency_links.txt
11
+ pixelarraylib.egg-info/entry_points.txt
12
+ pixelarraylib.egg-info/requires.txt
13
+ pixelarraylib.egg-info/top_level.txt
14
+ pixelarraylib/aliyun/__init__.py
15
+ pixelarraylib/aliyun/acr.py
16
+ pixelarraylib/aliyun/aliyun_email.py
17
+ pixelarraylib/aliyun/billing.py
18
+ pixelarraylib/aliyun/content_scanner.py
19
+ pixelarraylib/aliyun/domain.py
20
+ pixelarraylib/aliyun/eci.py
21
+ pixelarraylib/aliyun/ecs.py
22
+ pixelarraylib/aliyun/fc.py
23
+ pixelarraylib/aliyun/oss.py
24
+ pixelarraylib/aliyun/sms.py
25
+ pixelarraylib/aliyun/sts.py
26
+ pixelarraylib/db_utils/mysql.py
27
+ pixelarraylib/db_utils/redis.py
28
+ pixelarraylib/decorators/__init__.py
29
+ pixelarraylib/decorators/decorators.py
30
+ pixelarraylib/gitlab/__init__.py
31
+ pixelarraylib/gitlab/code_analyzer.py
32
+ pixelarraylib/gitlab/pypi_package_manager.py
33
+ pixelarraylib/monitor/__init__.py
34
+ pixelarraylib/monitor/feishu.py
35
+ pixelarraylib/net/request.py
36
+ pixelarraylib/scripts/__init__.py
37
+ pixelarraylib/scripts/collect_code_to_txt.py
38
+ pixelarraylib/scripts/create_test_case_files.py
39
+ pixelarraylib/scripts/nginx_proxy_to_ecs.py
40
+ pixelarraylib/scripts/remove_empty_lines.py
41
+ pixelarraylib/scripts/summary_code_count.py
42
+ pixelarraylib/system/__init__.py
43
+ pixelarraylib/system/common.py
@@ -0,0 +1,2 @@
1
+ [console_scripts]
2
+ pixelarraylib = pixelarraylib.__main__:main
@@ -9,11 +9,11 @@ alibabacloud_sts20150401
9
9
  alibabacloud_alidns20150109
10
10
  alibabacloud_eci20180808
11
11
  alibabacloud_bssopenapi20171214
12
+ alibabacloud_cr20181201
12
13
  oss2
13
14
  pymysql
14
15
  aiomysql
15
16
  redis
16
- redis[async]
17
17
  requests
18
18
  aiohttp
19
19
  asyncio
@@ -0,0 +1 @@
1
+ pixelarraylib
@@ -4,7 +4,7 @@ build-backend = "setuptools.build_meta"
4
4
 
5
5
  [project]
6
6
  name = "pixelarraylib"
7
- version = "1.0.0"
7
+ version = "1.0.1"
8
8
  authors = [
9
9
  {name = "Lu qi", email = "qi.lu@pixelarrayai.com"},
10
10
  ]
@@ -37,11 +37,11 @@ dependencies = [
37
37
  "alibabacloud_alidns20150109",
38
38
  "alibabacloud_eci20180808",
39
39
  "alibabacloud_bssopenapi20171214",
40
+ "alibabacloud_cr20181201",
40
41
  "oss2",
41
42
  "pymysql",
42
43
  "aiomysql",
43
44
  "redis",
44
- "redis[async]",
45
45
  "requests",
46
46
  "aiohttp",
47
47
  "asyncio",
@@ -53,7 +53,7 @@ dependencies = [
53
53
  ]
54
54
 
55
55
  [project.scripts]
56
- pixelarraylib = "arraylib.__main__:main"
56
+ pixelarraylib = "pixelarraylib.__main__:main"
57
57
 
58
58
  [project.urls]
59
59
  "Homepage" = "https://gitlab.com/pixelarrayai/general_pythondevutils_lib"
@@ -63,10 +63,10 @@ pixelarraylib = "arraylib.__main__:main"
63
63
  [tool.setuptools]
64
64
 
65
65
  [tool.setuptools.packages.find]
66
- include = ["arraylib", "arraylib.*"]
66
+ include = ["pixelarraylib", "pixelarraylib.*"]
67
67
 
68
68
  [tool.setuptools.package-data]
69
- arraylib = ["*"]
69
+ pixelarraylib = ["*"]
70
70
 
71
71
  [tool.setuptools.package-dir]
72
- arraylib = "arraylib"
72
+ pixelarraylib = "pixelarraylib"
@@ -9,11 +9,11 @@ alibabacloud_sts20150401
9
9
  alibabacloud_alidns20150109
10
10
  alibabacloud_eci20180808
11
11
  alibabacloud_bssopenapi20171214
12
+ alibabacloud_cr20181201
12
13
  oss2
13
14
  pymysql
14
15
  aiomysql
15
16
  redis
16
- redis[async]
17
17
  requests
18
18
  aiohttp
19
19
  asyncio
@@ -1,47 +0,0 @@
1
- import json
2
- import traceback
3
- from typing import Optional, Dict, Any, List
4
- from alibabacloud_eci20180808.client import Client as EciClient
5
- from alibabacloud_eci20180808.models import (
6
- CreateContainerGroupRequest,
7
- DescribeContainerGroupsRequest,
8
- DeleteContainerGroupRequest,
9
- UpdateContainerGroupRequest,
10
- RestartContainerGroupRequest,
11
- )
12
- from alibabacloud_tea_openapi import models as open_api_models
13
- from alibabacloud_tea_util import models as util_models
14
- from arraylib.monitor.feishu import Feishu
15
-
16
- feishu_alert = Feishu("devtoolkit服务报警")
17
-
18
-
19
- class ECIUtils:
20
- def __init__(self, region_id: str, access_key_id: str, access_key_secret: str):
21
- """
22
- description:
23
- 初始化ECI工具类
24
- parameters:
25
- region_id(str): 地域ID
26
- access_key_id(str): 访问密钥ID
27
- access_key_secret(str): 访问密钥Secret
28
- """
29
- self.region_id = region_id
30
- self.access_key_id = access_key_id
31
- self.access_key_secret = access_key_secret
32
- self.client = self._create_client()
33
-
34
- def _create_client(self) -> EciClient:
35
- """
36
- description:
37
- 创建ECI客户端
38
- return:
39
- EciClient: ECI客户端实例
40
- """
41
- config = open_api_models.Config(
42
- access_key_id=self.access_key_id,
43
- access_key_secret=self.access_key_secret,
44
- region_id=self.region_id,
45
- endpoint=f"eci.{self.region_id}.aliyuncs.com",
46
- )
47
- return EciClient(config)
@@ -1,22 +0,0 @@
1
- """
2
- ArrayLib 脚本工具包
3
- 包含各种实用的命令行工具和脚本
4
- """
5
-
6
- __version__ = "1.0.0"
7
- __author__ = "Lu qi"
8
-
9
- # 导出主要的脚本函数
10
- from arraylib.scripts.create_test_case_files import main as create_test_case_files
11
- from arraylib.scripts.summary_code_count import main as summary_code_count
12
- from arraylib.scripts.collect_code_to_txt import main as collect_code_to_txt
13
- from arraylib.scripts.nginx_proxy_to_ecs import main as nginx_proxy_to_ecs
14
- from arraylib.scripts.remove_empty_lines import main as remove_empty_lines
15
-
16
- __all__ = [
17
- "create_test_case_files",
18
- "summary_code_count",
19
- "collect_code_to_txt",
20
- "nginx_proxy_to_ecs",
21
- "remove_empty_lines",
22
- ]
@@ -1,42 +0,0 @@
1
- LICENSE
2
- MANIFEST.in
3
- README.md
4
- pyproject.toml
5
- requirements.txt
6
- arraylib/__init__.py
7
- arraylib/__main__.py
8
- arraylib/aliyun/__init__.py
9
- arraylib/aliyun/aliyun_email.py
10
- arraylib/aliyun/billing.py
11
- arraylib/aliyun/content_scanner.py
12
- arraylib/aliyun/domain.py
13
- arraylib/aliyun/eci.py
14
- arraylib/aliyun/ecs.py
15
- arraylib/aliyun/fc.py
16
- arraylib/aliyun/oss.py
17
- arraylib/aliyun/sms.py
18
- arraylib/aliyun/sts.py
19
- arraylib/db_utils/mysql.py
20
- arraylib/db_utils/redis.py
21
- arraylib/decorators/__init__.py
22
- arraylib/decorators/decorators.py
23
- arraylib/gitlab/__init__.py
24
- arraylib/gitlab/code_analyzer.py
25
- arraylib/gitlab/pypi_package_manager.py
26
- arraylib/monitor/__init__.py
27
- arraylib/monitor/feishu.py
28
- arraylib/net/request.py
29
- arraylib/scripts/__init__.py
30
- arraylib/scripts/collect_code_to_txt.py
31
- arraylib/scripts/create_test_case_files.py
32
- arraylib/scripts/nginx_proxy_to_ecs.py
33
- arraylib/scripts/remove_empty_lines.py
34
- arraylib/scripts/summary_code_count.py
35
- arraylib/system/__init__.py
36
- arraylib/system/common.py
37
- pixelarraylib.egg-info/PKG-INFO
38
- pixelarraylib.egg-info/SOURCES.txt
39
- pixelarraylib.egg-info/dependency_links.txt
40
- pixelarraylib.egg-info/entry_points.txt
41
- pixelarraylib.egg-info/requires.txt
42
- pixelarraylib.egg-info/top_level.txt
@@ -1,2 +0,0 @@
1
- [console_scripts]
2
- pixelarraylib = arraylib.__main__:main
@@ -1 +0,0 @@
1
- arraylib
File without changes
File without changes