pixelarraylib 1.1.2__tar.gz → 1.1.4__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 (53) hide show
  1. pixelarraylib-1.1.4/PKG-INFO +349 -0
  2. pixelarraylib-1.1.4/README.md +185 -0
  3. {pixelarraylib-1.1.2 → pixelarraylib-1.1.4}/pixelarraylib/__init__.py +1 -1
  4. {pixelarraylib-1.1.2 → pixelarraylib-1.1.4}/pixelarraylib/__main__.py +22 -7
  5. {pixelarraylib-1.1.2 → pixelarraylib-1.1.4}/pixelarraylib/decorators/decorators.py +36 -0
  6. {pixelarraylib-1.1.2 → pixelarraylib-1.1.4}/pixelarraylib/gitlab/code_analyzer.py +44 -32
  7. {pixelarraylib-1.1.2 → pixelarraylib-1.1.4}/pixelarraylib/gitlab/pypi_package_manager.py +32 -0
  8. {pixelarraylib-1.1.2 → pixelarraylib-1.1.4}/pixelarraylib/monitor/feishu.py +68 -0
  9. {pixelarraylib-1.1.2 → pixelarraylib-1.1.4}/pixelarraylib/scripts/__init__.py +4 -2
  10. {pixelarraylib-1.1.2 → pixelarraylib-1.1.4}/pixelarraylib/scripts/collect_code_to_txt.py +10 -8
  11. {pixelarraylib-1.1.2 → pixelarraylib-1.1.4}/pixelarraylib/scripts/remove_empty_lines.py +7 -5
  12. pixelarraylib-1.1.4/pixelarraylib/scripts/tson_convert.py +118 -0
  13. {pixelarraylib-1.1.2 → pixelarraylib-1.1.4}/pixelarraylib/system/common.py +28 -16
  14. pixelarraylib-1.1.4/pixelarraylib/system/tson.py +520 -0
  15. pixelarraylib-1.1.4/pixelarraylib.egg-info/PKG-INFO +349 -0
  16. {pixelarraylib-1.1.2 → pixelarraylib-1.1.4}/pixelarraylib.egg-info/SOURCES.txt +3 -1
  17. pixelarraylib-1.1.4/pixelarraylib.egg-info/requires.txt +156 -0
  18. pixelarraylib-1.1.4/pyproject.toml +213 -0
  19. {pixelarraylib-1.1.2 → pixelarraylib-1.1.4}/requirements.txt +0 -3
  20. pixelarraylib-1.1.2/PKG-INFO +0 -121
  21. pixelarraylib-1.1.2/README.md +0 -71
  22. pixelarraylib-1.1.2/pixelarraylib.egg-info/PKG-INFO +0 -121
  23. pixelarraylib-1.1.2/pixelarraylib.egg-info/requires.txt +0 -25
  24. pixelarraylib-1.1.2/pyproject.toml +0 -73
  25. {pixelarraylib-1.1.2 → pixelarraylib-1.1.4}/LICENSE +0 -0
  26. {pixelarraylib-1.1.2 → pixelarraylib-1.1.4}/MANIFEST.in +0 -0
  27. {pixelarraylib-1.1.2 → pixelarraylib-1.1.4}/pixelarraylib/aliyun/__init__.py +0 -0
  28. {pixelarraylib-1.1.2 → pixelarraylib-1.1.4}/pixelarraylib/aliyun/acr.py +0 -0
  29. {pixelarraylib-1.1.2 → pixelarraylib-1.1.4}/pixelarraylib/aliyun/aliyun_email.py +0 -0
  30. {pixelarraylib-1.1.2 → pixelarraylib-1.1.4}/pixelarraylib/aliyun/billing.py +0 -0
  31. {pixelarraylib-1.1.2 → pixelarraylib-1.1.4}/pixelarraylib/aliyun/content_scanner.py +0 -0
  32. {pixelarraylib-1.1.2 → pixelarraylib-1.1.4}/pixelarraylib/aliyun/domain.py +0 -0
  33. {pixelarraylib-1.1.2 → pixelarraylib-1.1.4}/pixelarraylib/aliyun/eci.py +0 -0
  34. {pixelarraylib-1.1.2 → pixelarraylib-1.1.4}/pixelarraylib/aliyun/ecs.py +0 -0
  35. {pixelarraylib-1.1.2 → pixelarraylib-1.1.4}/pixelarraylib/aliyun/eip.py +0 -0
  36. {pixelarraylib-1.1.2 → pixelarraylib-1.1.4}/pixelarraylib/aliyun/fc.py +0 -0
  37. {pixelarraylib-1.1.2 → pixelarraylib-1.1.4}/pixelarraylib/aliyun/oss.py +0 -0
  38. {pixelarraylib-1.1.2 → pixelarraylib-1.1.4}/pixelarraylib/aliyun/sms.py +0 -0
  39. {pixelarraylib-1.1.2 → pixelarraylib-1.1.4}/pixelarraylib/aliyun/sts.py +0 -0
  40. {pixelarraylib-1.1.2 → pixelarraylib-1.1.4}/pixelarraylib/db_utils/mysql.py +0 -0
  41. {pixelarraylib-1.1.2 → pixelarraylib-1.1.4}/pixelarraylib/db_utils/redis.py +0 -0
  42. {pixelarraylib-1.1.2 → pixelarraylib-1.1.4}/pixelarraylib/decorators/__init__.py +0 -0
  43. {pixelarraylib-1.1.2 → pixelarraylib-1.1.4}/pixelarraylib/gitlab/__init__.py +0 -0
  44. {pixelarraylib-1.1.2 → pixelarraylib-1.1.4}/pixelarraylib/monitor/__init__.py +0 -0
  45. {pixelarraylib-1.1.2 → pixelarraylib-1.1.4}/pixelarraylib/net/request.py +0 -0
  46. {pixelarraylib-1.1.2 → pixelarraylib-1.1.4}/pixelarraylib/scripts/build_website.py +0 -0
  47. {pixelarraylib-1.1.2 → pixelarraylib-1.1.4}/pixelarraylib/scripts/create_test_case_files.py +0 -0
  48. {pixelarraylib-1.1.2 → pixelarraylib-1.1.4}/pixelarraylib/scripts/nginx_proxy_to_ecs.py +0 -0
  49. {pixelarraylib-1.1.2 → pixelarraylib-1.1.4}/pixelarraylib/system/__init__.py +0 -0
  50. {pixelarraylib-1.1.2 → pixelarraylib-1.1.4}/pixelarraylib.egg-info/dependency_links.txt +0 -0
  51. {pixelarraylib-1.1.2 → pixelarraylib-1.1.4}/pixelarraylib.egg-info/entry_points.txt +0 -0
  52. {pixelarraylib-1.1.2 → pixelarraylib-1.1.4}/pixelarraylib.egg-info/top_level.txt +0 -0
  53. {pixelarraylib-1.1.2 → pixelarraylib-1.1.4}/setup.cfg +0 -0
@@ -0,0 +1,349 @@
1
+ Metadata-Version: 2.4
2
+ Name: pixelarraylib
3
+ Version: 1.1.4
4
+ Summary: PixelArray Python开发工具库 - 包含阿里云服务、数据库工具、装饰器、监控等功能
5
+ Author-email: Lu qi <qi.lu@pixelarrayai.com>
6
+ License-Expression: MIT
7
+ Project-URL: Homepage, https://gitlab.com/pixelarrayai/general_pythondevutils_lib
8
+ Project-URL: Bug Reports, https://gitlab.com/pixelarrayai/general_pythondevutils_lib/-/issues
9
+ Project-URL: Source, https://gitlab.com/pixelarrayai/general_pythondevutils_lib
10
+ Keywords: python,utils,aliyun,database,tools,pixelarray
11
+ Classifier: Development Status :: 4 - Beta
12
+ Classifier: Intended Audience :: Developers
13
+ Classifier: Operating System :: OS Independent
14
+ Classifier: Programming Language :: Python :: 3
15
+ Classifier: Programming Language :: Python :: 3.8
16
+ Classifier: Programming Language :: Python :: 3.9
17
+ Classifier: Programming Language :: Python :: 3.10
18
+ Classifier: Programming Language :: Python :: 3.11
19
+ Classifier: Programming Language :: Python :: 3.12
20
+ Classifier: Programming Language :: Python :: 3.13
21
+ Classifier: Topic :: Software Development :: Libraries :: Python Modules
22
+ Classifier: Topic :: Utilities
23
+ Requires-Python: >=3.8
24
+ Description-Content-Type: text/markdown
25
+ License-File: LICENSE
26
+ Requires-Dist: alibabacloud_tea_util
27
+ Requires-Dist: alibabacloud_cms20190101
28
+ Requires-Dist: alibabacloud_green20220302
29
+ Requires-Dist: alibabacloud_dm20151123
30
+ Requires-Dist: alibabacloud_fc20230330
31
+ Requires-Dist: alibabacloud_darabonba_stream
32
+ Requires-Dist: alibabacloud_dysmsapi20170525
33
+ Requires-Dist: alibabacloud_sts20150401
34
+ Requires-Dist: alibabacloud_alidns20150109
35
+ Requires-Dist: alibabacloud_eci20180808
36
+ Requires-Dist: alibabacloud_bssopenapi20171214
37
+ Requires-Dist: alibabacloud_cr20181201
38
+ Requires-Dist: alibabacloud_vpc20160428
39
+ Requires-Dist: alibabacloud_tea_openapi
40
+ Requires-Dist: alibabacloud_credentials
41
+ Requires-Dist: oss2
42
+ Requires-Dist: pymysql
43
+ Requires-Dist: aiomysql
44
+ Requires-Dist: redis
45
+ Requires-Dist: cryptography
46
+ Requires-Dist: paramiko
47
+ Requires-Dist: requests
48
+ Requires-Dist: aiohttp
49
+ Requires-Dist: aiofiles
50
+ Requires-Dist: pandas
51
+ Provides-Extra: monitor
52
+ Requires-Dist: requests; extra == "monitor"
53
+ Provides-Extra: system
54
+ Requires-Dist: cryptography; extra == "system"
55
+ Requires-Dist: paramiko; extra == "system"
56
+ Requires-Dist: requests; extra == "system"
57
+ Provides-Extra: mysql
58
+ Requires-Dist: pymysql; extra == "mysql"
59
+ Requires-Dist: aiomysql; extra == "mysql"
60
+ Requires-Dist: requests; extra == "mysql"
61
+ Provides-Extra: redis
62
+ Requires-Dist: redis; extra == "redis"
63
+ Requires-Dist: requests; extra == "redis"
64
+ Provides-Extra: net
65
+ Requires-Dist: requests; extra == "net"
66
+ Requires-Dist: aiohttp; extra == "net"
67
+ Provides-Extra: gitlab
68
+ Requires-Dist: requests; extra == "gitlab"
69
+ Requires-Dist: aiohttp; extra == "gitlab"
70
+ Requires-Dist: pandas; extra == "gitlab"
71
+ Provides-Extra: aliyun-oss
72
+ Requires-Dist: oss2; extra == "aliyun-oss"
73
+ Requires-Dist: aiohttp; extra == "aliyun-oss"
74
+ Requires-Dist: aiofiles; extra == "aliyun-oss"
75
+ Requires-Dist: requests; extra == "aliyun-oss"
76
+ Requires-Dist: cryptography; extra == "aliyun-oss"
77
+ Requires-Dist: paramiko; extra == "aliyun-oss"
78
+ Provides-Extra: aliyun-sts
79
+ Requires-Dist: alibabacloud_sts20150401; extra == "aliyun-sts"
80
+ Requires-Dist: alibabacloud_tea_openapi; extra == "aliyun-sts"
81
+ Requires-Dist: alibabacloud_tea_util; extra == "aliyun-sts"
82
+ Requires-Dist: oss2; extra == "aliyun-sts"
83
+ Requires-Dist: requests; extra == "aliyun-sts"
84
+ Requires-Dist: redis; extra == "aliyun-sts"
85
+ Provides-Extra: aliyun-sms
86
+ Requires-Dist: alibabacloud_dysmsapi20170525; extra == "aliyun-sms"
87
+ Requires-Dist: alibabacloud_tea_openapi; extra == "aliyun-sms"
88
+ Requires-Dist: alibabacloud_tea_util; extra == "aliyun-sms"
89
+ Requires-Dist: requests; extra == "aliyun-sms"
90
+ Provides-Extra: aliyun-email
91
+ Requires-Dist: alibabacloud_dm20151123; extra == "aliyun-email"
92
+ Requires-Dist: alibabacloud_tea_openapi; extra == "aliyun-email"
93
+ Requires-Dist: alibabacloud_tea_util; extra == "aliyun-email"
94
+ Requires-Dist: requests; extra == "aliyun-email"
95
+ Provides-Extra: aliyun-content-scanner
96
+ Requires-Dist: alibabacloud_green20220302; extra == "aliyun-content-scanner"
97
+ Requires-Dist: alibabacloud_tea_openapi; extra == "aliyun-content-scanner"
98
+ Requires-Dist: alibabacloud_tea_util; extra == "aliyun-content-scanner"
99
+ Requires-Dist: requests; extra == "aliyun-content-scanner"
100
+ Provides-Extra: aliyun-domain
101
+ Requires-Dist: alibabacloud_alidns20150109; extra == "aliyun-domain"
102
+ Requires-Dist: alibabacloud_tea_openapi; extra == "aliyun-domain"
103
+ Requires-Dist: alibabacloud_tea_util; extra == "aliyun-domain"
104
+ Provides-Extra: aliyun-acr
105
+ Requires-Dist: alibabacloud_cr20181201; extra == "aliyun-acr"
106
+ Requires-Dist: alibabacloud_credentials; extra == "aliyun-acr"
107
+ Requires-Dist: alibabacloud_tea_openapi; extra == "aliyun-acr"
108
+ Requires-Dist: alibabacloud_tea_util; extra == "aliyun-acr"
109
+ Requires-Dist: requests; extra == "aliyun-acr"
110
+ Provides-Extra: aliyun-billing
111
+ Requires-Dist: alibabacloud_bssopenapi20171214; extra == "aliyun-billing"
112
+ Requires-Dist: alibabacloud_tea_openapi; extra == "aliyun-billing"
113
+ Requires-Dist: alibabacloud_tea_util; extra == "aliyun-billing"
114
+ Requires-Dist: pandas; extra == "aliyun-billing"
115
+ Requires-Dist: requests; extra == "aliyun-billing"
116
+ Provides-Extra: aliyun-ecs
117
+ Requires-Dist: alibabacloud_cms20190101; extra == "aliyun-ecs"
118
+ Requires-Dist: alibabacloud_tea_openapi; extra == "aliyun-ecs"
119
+ Requires-Dist: alibabacloud_tea_util; extra == "aliyun-ecs"
120
+ Provides-Extra: aliyun-eip
121
+ Requires-Dist: alibabacloud_vpc20160428; extra == "aliyun-eip"
122
+ Requires-Dist: alibabacloud_tea_openapi; extra == "aliyun-eip"
123
+ Requires-Dist: alibabacloud_tea_util; extra == "aliyun-eip"
124
+ Requires-Dist: requests; extra == "aliyun-eip"
125
+ Provides-Extra: aliyun-eci
126
+ Requires-Dist: alibabacloud_eci20180808; extra == "aliyun-eci"
127
+ Requires-Dist: alibabacloud_vpc20160428; extra == "aliyun-eci"
128
+ Requires-Dist: alibabacloud_tea_openapi; extra == "aliyun-eci"
129
+ Requires-Dist: alibabacloud_tea_util; extra == "aliyun-eci"
130
+ Requires-Dist: requests; extra == "aliyun-eci"
131
+ Provides-Extra: aliyun-fc
132
+ Requires-Dist: alibabacloud_fc20230330; extra == "aliyun-fc"
133
+ Requires-Dist: alibabacloud_darabonba_stream; extra == "aliyun-fc"
134
+ Requires-Dist: alibabacloud_tea_openapi; extra == "aliyun-fc"
135
+ Requires-Dist: alibabacloud_tea_util; extra == "aliyun-fc"
136
+ Requires-Dist: requests; extra == "aliyun-fc"
137
+ Requires-Dist: cryptography; extra == "aliyun-fc"
138
+ Requires-Dist: paramiko; extra == "aliyun-fc"
139
+ Provides-Extra: aliyun
140
+ Requires-Dist: alibabacloud_tea_util; extra == "aliyun"
141
+ Requires-Dist: alibabacloud_cms20190101; extra == "aliyun"
142
+ Requires-Dist: alibabacloud_green20220302; extra == "aliyun"
143
+ Requires-Dist: alibabacloud_dm20151123; extra == "aliyun"
144
+ Requires-Dist: alibabacloud_fc20230330; extra == "aliyun"
145
+ Requires-Dist: alibabacloud_darabonba_stream; extra == "aliyun"
146
+ Requires-Dist: alibabacloud_dysmsapi20170525; extra == "aliyun"
147
+ Requires-Dist: alibabacloud_sts20150401; extra == "aliyun"
148
+ Requires-Dist: alibabacloud_alidns20150109; extra == "aliyun"
149
+ Requires-Dist: alibabacloud_eci20180808; extra == "aliyun"
150
+ Requires-Dist: alibabacloud_bssopenapi20171214; extra == "aliyun"
151
+ Requires-Dist: alibabacloud_cr20181201; extra == "aliyun"
152
+ Requires-Dist: alibabacloud_vpc20160428; extra == "aliyun"
153
+ Requires-Dist: alibabacloud_tea_openapi; extra == "aliyun"
154
+ Requires-Dist: alibabacloud_credentials; extra == "aliyun"
155
+ Requires-Dist: oss2; extra == "aliyun"
156
+ Requires-Dist: aiohttp; extra == "aliyun"
157
+ Requires-Dist: aiofiles; extra == "aliyun"
158
+ Requires-Dist: requests; extra == "aliyun"
159
+ Requires-Dist: cryptography; extra == "aliyun"
160
+ Requires-Dist: paramiko; extra == "aliyun"
161
+ Requires-Dist: redis; extra == "aliyun"
162
+ Requires-Dist: pandas; extra == "aliyun"
163
+ Dynamic: license-file
164
+
165
+ # PixelArrayLib - PixelArray Python开发工具库
166
+
167
+ PixelArrayLib是一个功能丰富的Python开发工具库,包含阿里云服务、数据库工具、装饰器、监控等功能,同时提供便捷的命令行工具。
168
+
169
+ ## 安装
170
+
171
+ ### 基础安装
172
+
173
+ ```bash
174
+ pip install pixelarraylib
175
+ ```
176
+
177
+ **注意**: 基础安装会默认安装所有依赖。如果你只需要特定模块的功能,可以使用下面的可选依赖安装方式。
178
+
179
+ ### 可选依赖安装
180
+
181
+ 如果你只需要使用特定模块的功能,可以按需安装特定模块的依赖(这样可以减少安装的依赖包数量):
182
+
183
+ #### 基础模块依赖
184
+
185
+ ```bash
186
+ # 只安装MySQL工具相关依赖
187
+ pip install pixelarraylib[mysql]
188
+
189
+ # 只安装Redis工具相关依赖
190
+ pip install pixelarraylib[redis]
191
+
192
+ # 只安装监控工具相关依赖
193
+ pip install pixelarraylib[monitor]
194
+
195
+ # 只安装网络工具相关依赖
196
+ pip install pixelarraylib[net]
197
+
198
+ # 只安装系统工具相关依赖
199
+ pip install pixelarraylib[system]
200
+
201
+ # 只安装GitLab工具相关依赖
202
+ pip install pixelarraylib[gitlab]
203
+
204
+ # 组合安装多个模块
205
+ pip install pixelarraylib[mysql,redis]
206
+ ```
207
+
208
+ #### 阿里云服务依赖(细分)
209
+
210
+ ```bash
211
+ # 只安装OSS对象存储相关依赖
212
+ pip install pixelarraylib[aliyun-oss]
213
+
214
+ # 只安装STS安全令牌服务相关依赖
215
+ pip install pixelarraylib[aliyun-sts]
216
+
217
+ # 只安装SMS短信服务相关依赖
218
+ pip install pixelarraylib[aliyun-sms]
219
+
220
+ # 只安装邮件服务相关依赖
221
+ pip install pixelarraylib[aliyun-email]
222
+
223
+ # 只安装内容安全扫描相关依赖
224
+ pip install pixelarraylib[aliyun-content-scanner]
225
+
226
+ # 只安装域名服务相关依赖
227
+ pip install pixelarraylib[aliyun-domain]
228
+
229
+ # 只安装容器镜像服务相关依赖
230
+ pip install pixelarraylib[aliyun-acr]
231
+
232
+ # 只安装账单服务相关依赖
233
+ pip install pixelarraylib[aliyun-billing]
234
+
235
+ # 只安装ECS弹性计算相关依赖
236
+ pip install pixelarraylib[aliyun-ecs]
237
+
238
+ # 只安装EIP弹性公网IP相关依赖
239
+ pip install pixelarraylib[aliyun-eip]
240
+
241
+ # 只安装ECI容器实例相关依赖
242
+ pip install pixelarraylib[aliyun-eci]
243
+
244
+ # 只安装FC函数计算相关依赖
245
+ pip install pixelarraylib[aliyun-fc]
246
+
247
+ # 安装所有阿里云服务相关依赖
248
+ pip install pixelarraylib[aliyun]
249
+
250
+ # 组合安装多个阿里云服务
251
+ pip install pixelarraylib[aliyun-oss,aliyun-sms]
252
+ ```
253
+
254
+ #### 完整安装
255
+
256
+ ```bash
257
+ # 安装所有可选依赖
258
+ pip install pixelarraylib[all]
259
+ ```
260
+
261
+ **可选依赖说明:**
262
+
263
+ **基础模块:**
264
+ - `mysql`: MySQL数据库工具(pymysql、aiomysql)及相关依赖
265
+ - `redis`: Redis数据库工具及相关依赖
266
+ - `monitor`: 监控告警工具(飞书通知等)及相关依赖
267
+ - `net`: 网络请求工具(requests、aiohttp)及相关依赖
268
+ - `system`: 系统工具(加密、SSH等)及相关依赖
269
+ - `gitlab`: GitLab工具(PyPI包管理、代码分析等)及相关依赖
270
+
271
+ **阿里云服务(细分):**
272
+ - `aliyun-oss`: OSS对象存储服务
273
+ - `aliyun-sts`: STS安全令牌服务(需要redis依赖)
274
+ - `aliyun-sms`: SMS短信服务
275
+ - `aliyun-email`: 邮件服务(DM)
276
+ - `aliyun-content-scanner`: 内容安全扫描服务(Green)
277
+ - `aliyun-domain`: 域名服务(DNS)
278
+ - `aliyun-acr`: 容器镜像服务
279
+ - `aliyun-billing`: 账单服务
280
+ - `aliyun-ecs`: ECS弹性计算服务
281
+ - `aliyun-eip`: EIP弹性公网IP服务
282
+ - `aliyun-eci`: ECI容器实例服务(需要eip依赖)
283
+ - `aliyun-fc`: FC函数计算服务(需要system依赖)
284
+ - `aliyun`: 所有阿里云服务依赖(完整版)
285
+
286
+ **完整安装:**
287
+ - `all`: 所有可选依赖
288
+
289
+ ## 使用方法
290
+
291
+ ### 1. Python程序中使用
292
+
293
+ ```python
294
+ # 导入pixelarraylib模块
295
+ import pixelarraylib
296
+
297
+ # 使用各种功能模块
298
+ from pixelarraylib.aliyun import some_service
299
+ from pixelarraylib.db_utils import database_tools
300
+ from pixelarraylib.decorators import useful_decorators
301
+ ```
302
+
303
+ ### 2. 命令行工具使用
304
+
305
+ 安装后,你可以在命令行中直接使用 `pixelarraylib` 命令:
306
+
307
+ #### 创建测试用例文件
308
+ ```bash
309
+ # 一键创建所有测试用例文件
310
+ pixelarraylib create_test_case_files
311
+ ```
312
+
313
+ ## 功能特性
314
+
315
+ - **阿里云服务集成**: 包含CMS、Green、DM、FC、SMS、STS等服务
316
+ - **数据库工具**: MySQL、Redis等数据库操作工具
317
+ - **Web框架**: FastAPI集成
318
+ - **实用工具**: 二维码生成、加密解密、XML处理等
319
+ - **命令行工具**: 测试用例生成、代码统计等实用脚本
320
+
321
+ ## 开发
322
+
323
+ ### 本地开发安装
324
+
325
+ ```bash
326
+ # 克隆仓库
327
+ git clone https://gitlab.com/pixelarrayai/general_pythondevutils_lib.git
328
+ cd general_pythondevutils_lib
329
+
330
+ # 安装开发依赖
331
+ pip install -e .
332
+
333
+ # 测试命令行工具
334
+ pixelarraylib --help
335
+ ```
336
+
337
+ ### 添加新的命令行工具
338
+
339
+ 1. 在 `pixelarraylib/scripts/` 目录下创建新的脚本文件
340
+ 2. 在 `pixelarraylib/__main__.py` 中添加新的命令选项
341
+ 3. 更新 `pixelarraylib/scripts/__init__.py` 导出新功能
342
+
343
+ ## 许可证
344
+
345
+ MIT License
346
+
347
+ ## 作者
348
+
349
+ Lu qi (qi.lu@pixelarrayai.com)
@@ -0,0 +1,185 @@
1
+ # PixelArrayLib - PixelArray Python开发工具库
2
+
3
+ PixelArrayLib是一个功能丰富的Python开发工具库,包含阿里云服务、数据库工具、装饰器、监控等功能,同时提供便捷的命令行工具。
4
+
5
+ ## 安装
6
+
7
+ ### 基础安装
8
+
9
+ ```bash
10
+ pip install pixelarraylib
11
+ ```
12
+
13
+ **注意**: 基础安装会默认安装所有依赖。如果你只需要特定模块的功能,可以使用下面的可选依赖安装方式。
14
+
15
+ ### 可选依赖安装
16
+
17
+ 如果你只需要使用特定模块的功能,可以按需安装特定模块的依赖(这样可以减少安装的依赖包数量):
18
+
19
+ #### 基础模块依赖
20
+
21
+ ```bash
22
+ # 只安装MySQL工具相关依赖
23
+ pip install pixelarraylib[mysql]
24
+
25
+ # 只安装Redis工具相关依赖
26
+ pip install pixelarraylib[redis]
27
+
28
+ # 只安装监控工具相关依赖
29
+ pip install pixelarraylib[monitor]
30
+
31
+ # 只安装网络工具相关依赖
32
+ pip install pixelarraylib[net]
33
+
34
+ # 只安装系统工具相关依赖
35
+ pip install pixelarraylib[system]
36
+
37
+ # 只安装GitLab工具相关依赖
38
+ pip install pixelarraylib[gitlab]
39
+
40
+ # 组合安装多个模块
41
+ pip install pixelarraylib[mysql,redis]
42
+ ```
43
+
44
+ #### 阿里云服务依赖(细分)
45
+
46
+ ```bash
47
+ # 只安装OSS对象存储相关依赖
48
+ pip install pixelarraylib[aliyun-oss]
49
+
50
+ # 只安装STS安全令牌服务相关依赖
51
+ pip install pixelarraylib[aliyun-sts]
52
+
53
+ # 只安装SMS短信服务相关依赖
54
+ pip install pixelarraylib[aliyun-sms]
55
+
56
+ # 只安装邮件服务相关依赖
57
+ pip install pixelarraylib[aliyun-email]
58
+
59
+ # 只安装内容安全扫描相关依赖
60
+ pip install pixelarraylib[aliyun-content-scanner]
61
+
62
+ # 只安装域名服务相关依赖
63
+ pip install pixelarraylib[aliyun-domain]
64
+
65
+ # 只安装容器镜像服务相关依赖
66
+ pip install pixelarraylib[aliyun-acr]
67
+
68
+ # 只安装账单服务相关依赖
69
+ pip install pixelarraylib[aliyun-billing]
70
+
71
+ # 只安装ECS弹性计算相关依赖
72
+ pip install pixelarraylib[aliyun-ecs]
73
+
74
+ # 只安装EIP弹性公网IP相关依赖
75
+ pip install pixelarraylib[aliyun-eip]
76
+
77
+ # 只安装ECI容器实例相关依赖
78
+ pip install pixelarraylib[aliyun-eci]
79
+
80
+ # 只安装FC函数计算相关依赖
81
+ pip install pixelarraylib[aliyun-fc]
82
+
83
+ # 安装所有阿里云服务相关依赖
84
+ pip install pixelarraylib[aliyun]
85
+
86
+ # 组合安装多个阿里云服务
87
+ pip install pixelarraylib[aliyun-oss,aliyun-sms]
88
+ ```
89
+
90
+ #### 完整安装
91
+
92
+ ```bash
93
+ # 安装所有可选依赖
94
+ pip install pixelarraylib[all]
95
+ ```
96
+
97
+ **可选依赖说明:**
98
+
99
+ **基础模块:**
100
+ - `mysql`: MySQL数据库工具(pymysql、aiomysql)及相关依赖
101
+ - `redis`: Redis数据库工具及相关依赖
102
+ - `monitor`: 监控告警工具(飞书通知等)及相关依赖
103
+ - `net`: 网络请求工具(requests、aiohttp)及相关依赖
104
+ - `system`: 系统工具(加密、SSH等)及相关依赖
105
+ - `gitlab`: GitLab工具(PyPI包管理、代码分析等)及相关依赖
106
+
107
+ **阿里云服务(细分):**
108
+ - `aliyun-oss`: OSS对象存储服务
109
+ - `aliyun-sts`: STS安全令牌服务(需要redis依赖)
110
+ - `aliyun-sms`: SMS短信服务
111
+ - `aliyun-email`: 邮件服务(DM)
112
+ - `aliyun-content-scanner`: 内容安全扫描服务(Green)
113
+ - `aliyun-domain`: 域名服务(DNS)
114
+ - `aliyun-acr`: 容器镜像服务
115
+ - `aliyun-billing`: 账单服务
116
+ - `aliyun-ecs`: ECS弹性计算服务
117
+ - `aliyun-eip`: EIP弹性公网IP服务
118
+ - `aliyun-eci`: ECI容器实例服务(需要eip依赖)
119
+ - `aliyun-fc`: FC函数计算服务(需要system依赖)
120
+ - `aliyun`: 所有阿里云服务依赖(完整版)
121
+
122
+ **完整安装:**
123
+ - `all`: 所有可选依赖
124
+
125
+ ## 使用方法
126
+
127
+ ### 1. Python程序中使用
128
+
129
+ ```python
130
+ # 导入pixelarraylib模块
131
+ import pixelarraylib
132
+
133
+ # 使用各种功能模块
134
+ from pixelarraylib.aliyun import some_service
135
+ from pixelarraylib.db_utils import database_tools
136
+ from pixelarraylib.decorators import useful_decorators
137
+ ```
138
+
139
+ ### 2. 命令行工具使用
140
+
141
+ 安装后,你可以在命令行中直接使用 `pixelarraylib` 命令:
142
+
143
+ #### 创建测试用例文件
144
+ ```bash
145
+ # 一键创建所有测试用例文件
146
+ pixelarraylib create_test_case_files
147
+ ```
148
+
149
+ ## 功能特性
150
+
151
+ - **阿里云服务集成**: 包含CMS、Green、DM、FC、SMS、STS等服务
152
+ - **数据库工具**: MySQL、Redis等数据库操作工具
153
+ - **Web框架**: FastAPI集成
154
+ - **实用工具**: 二维码生成、加密解密、XML处理等
155
+ - **命令行工具**: 测试用例生成、代码统计等实用脚本
156
+
157
+ ## 开发
158
+
159
+ ### 本地开发安装
160
+
161
+ ```bash
162
+ # 克隆仓库
163
+ git clone https://gitlab.com/pixelarrayai/general_pythondevutils_lib.git
164
+ cd general_pythondevutils_lib
165
+
166
+ # 安装开发依赖
167
+ pip install -e .
168
+
169
+ # 测试命令行工具
170
+ pixelarraylib --help
171
+ ```
172
+
173
+ ### 添加新的命令行工具
174
+
175
+ 1. 在 `pixelarraylib/scripts/` 目录下创建新的脚本文件
176
+ 2. 在 `pixelarraylib/__main__.py` 中添加新的命令选项
177
+ 3. 更新 `pixelarraylib/scripts/__init__.py` 导出新功能
178
+
179
+ ## 许可证
180
+
181
+ MIT License
182
+
183
+ ## 作者
184
+
185
+ Lu qi (qi.lu@pixelarrayai.com)
@@ -20,7 +20,7 @@ PixelArray Python开发工具库
20
20
  from pixelarraylib.gitlab import pypi_package_manager
21
21
  """
22
22
 
23
- __version__ = "1.1.2"
23
+ __version__ = "1.1.4"
24
24
  __author__ = "PixelArray"
25
25
  __email__ = "qi.lu@pixelarrayai.com"
26
26
 
@@ -1,12 +1,13 @@
1
1
  #!/usr/bin/env python3
2
2
  """
3
- ArrayLib 命令行工具入口点
3
+ PixelArrayLib 命令行工具入口点
4
4
  支持的命令:
5
5
  - pixelarraylib create_test_case_files
6
6
  - pixelarraylib collect_code_to_txt [options]
7
7
  - pixelarraylib nginx_proxy_to_ecs [options]
8
8
  - pixelarraylib remove_empty_lines <input_file> [output_file]
9
9
  - pixelarraylib build_website
10
+ - pixelarraylib tson_convert [options]
10
11
  """
11
12
 
12
13
  import sys
@@ -17,7 +18,7 @@ def main():
17
18
  # 检查是否有子命令
18
19
  if len(sys.argv) < 2:
19
20
  parser = argparse.ArgumentParser(
20
- description="ArrayLib 命令行工具",
21
+ description="PixelArrayLib 命令行工具",
21
22
  formatter_class=argparse.RawDescriptionHelpFormatter,
22
23
  epilog="""
23
24
  示例用法:
@@ -26,6 +27,7 @@ def main():
26
27
  pixelarraylib nginx_proxy_to_ecs --help # 查看Nginx反向代理到ECS工具帮助
27
28
  pixelarraylib remove_empty_lines --help # 查看去除空行工具帮助
28
29
  pixelarraylib build_website --help # 查看一键构建网站工具帮助
30
+ pixelarraylib tson_convert --help # 查看TSON转换工具帮助
29
31
  """,
30
32
  )
31
33
  parser.print_help()
@@ -50,7 +52,7 @@ def main():
50
52
  try:
51
53
  from pixelarraylib.scripts.collect_code_to_txt import main as collect_main
52
54
 
53
- # 修改sys.argv,移除第一个参数(arraylib),让collect_code_to_txt正确处理参数
55
+ # 修改sys.argv,移除第一个参数(pixelarraylib),让collect_code_to_txt正确处理参数
54
56
  original_argv = sys.argv
55
57
  sys.argv = [original_argv[0]] + original_argv[2:]
56
58
  collect_main()
@@ -66,7 +68,7 @@ def main():
66
68
  main as nginx_proxy_to_ecs,
67
69
  )
68
70
 
69
- # 修改sys.argv,移除第一个参数(arraylib),让nginx_proxy_to_ecs正确处理参数
71
+ # 修改sys.argv,移除第一个参数(pixelarraylib),让nginx_proxy_to_ecs正确处理参数
70
72
  original_argv = sys.argv
71
73
  sys.argv = [original_argv[0]] + original_argv[2:]
72
74
  nginx_proxy_to_ecs()
@@ -82,7 +84,7 @@ def main():
82
84
  main as remove_empty_lines_main,
83
85
  )
84
86
 
85
- # 修改sys.argv,移除第一个参数(arraylib),让remove_empty_lines正确处理参数
87
+ # 修改sys.argv,移除第一个参数(pixelarraylib),让remove_empty_lines正确处理参数
86
88
  original_argv = sys.argv
87
89
  sys.argv = [original_argv[0]] + original_argv[2:]
88
90
  remove_empty_lines_main()
@@ -103,9 +105,21 @@ def main():
103
105
  print(f"错误:无法导入 build_website 模块: {e}")
104
106
  sys.exit(1)
105
107
 
108
+ elif command == "tson_convert":
109
+ # 导入并执行TSON转换功能
110
+ try:
111
+ from pixelarraylib.scripts.tson_convert import main as tson_convert_main
112
+ original_argv = sys.argv
113
+ sys.argv = [original_argv[0]] + original_argv[2:]
114
+ tson_convert_main()
115
+ sys.argv = original_argv
116
+ except ImportError as e:
117
+ print(f"错误:无法导入 tson_convert 模块: {e}")
118
+ sys.exit(1)
119
+
106
120
  elif command in ["-h", "--help"]:
107
121
  parser = argparse.ArgumentParser(
108
- description="ArrayLib 命令行工具",
122
+ description="PixelArrayLib 命令行工具",
109
123
  formatter_class=argparse.RawDescriptionHelpFormatter,
110
124
  epilog="""
111
125
  示例用法:
@@ -114,13 +128,14 @@ def main():
114
128
  pixelarraylib nginx_proxy_to_ecs --help # 查看Nginx反向代理到ECS工具帮助
115
129
  pixelarraylib remove_empty_lines --help # 查看去除空行工具帮助
116
130
  pixelarraylib build_website --help # 查看一键构建网站工具帮助
131
+ pixelarraylib tson_convert --help # 查看TSON转换工具帮助
117
132
  """,
118
133
  )
119
134
  parser.print_help()
120
135
  else:
121
136
  print(f"错误:未知命令 '{command}'")
122
137
  print(
123
- "可用命令:create_test_case_files, collect_code_to_txt, nginx_proxy_to_ecs, remove_empty_lines, build_website"
138
+ "可用命令:create_test_case_files, collect_code_to_txt, nginx_proxy_to_ecs, remove_empty_lines, build_website, tson_convert"
124
139
  )
125
140
  print("使用 'pixelarraylib --help' 查看帮助")
126
141
  sys.exit(1)
@@ -18,6 +18,17 @@ def catch_exception(
18
18
  addtional_alert: str = "",
19
19
  alert_channel: str = "devtoolkit服务报警",
20
20
  ):
21
+ """
22
+ description:
23
+ 异常捕获装饰器,当函数执行失败时发送飞书告警
24
+ parameters:
25
+ exception_return(Any): 异常时返回的默认值
26
+ alert_params(bool): 是否在告警中包含函数参数
27
+ addtional_alert(str): 额外的告警信息
28
+ alert_channel(str): 飞书告警频道名称
29
+ return:
30
+ decorator(Callable): 装饰器函数
31
+ """
21
32
  feishu_alert = Feishu(alert_channel)
22
33
  def get_caller_function_name():
23
34
  """
@@ -65,6 +76,15 @@ def with_retry(
65
76
  retry_times: int = 3,
66
77
  retry_interval: int = 1,
67
78
  ) -> Callable:
79
+ """
80
+ description:
81
+ 重试装饰器,当函数执行失败时自动重试
82
+ parameters:
83
+ retry_times(int): 重试次数,默认为3
84
+ retry_interval(int): 重试间隔时间(秒),默认为1
85
+ return:
86
+ decorator(Callable): 装饰器函数
87
+ """
68
88
  def decorator(func: Callable) -> Callable:
69
89
  @functools.wraps(func)
70
90
  def wrapper(*args, **kwargs) -> Any:
@@ -85,6 +105,14 @@ def with_retry(
85
105
 
86
106
 
87
107
  def with_timeout(seconds):
108
+ """
109
+ description:
110
+ 超时装饰器,限制函数执行时间
111
+ parameters:
112
+ seconds(int): 超时时间(秒)
113
+ return:
114
+ decorator(Callable): 装饰器函数
115
+ """
88
116
  def decorator(func):
89
117
  @wraps(func)
90
118
  def wrapper(*args, **kwargs):
@@ -103,6 +131,14 @@ def with_timeout(seconds):
103
131
 
104
132
 
105
133
  def avoid_chinese_filename(func):
134
+ """
135
+ description:
136
+ 避免中文文件名的装饰器,自动处理包含中文的文件路径
137
+ parameters:
138
+ func(Callable): 被装饰的函数
139
+ return:
140
+ wrapper(Callable): 包装后的函数
141
+ """
106
142
  def contains_chinese(text):
107
143
  if not text:
108
144
  return False