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.
- pixelarraylib-1.1.4/PKG-INFO +349 -0
- pixelarraylib-1.1.4/README.md +185 -0
- {pixelarraylib-1.1.2 → pixelarraylib-1.1.4}/pixelarraylib/__init__.py +1 -1
- {pixelarraylib-1.1.2 → pixelarraylib-1.1.4}/pixelarraylib/__main__.py +22 -7
- {pixelarraylib-1.1.2 → pixelarraylib-1.1.4}/pixelarraylib/decorators/decorators.py +36 -0
- {pixelarraylib-1.1.2 → pixelarraylib-1.1.4}/pixelarraylib/gitlab/code_analyzer.py +44 -32
- {pixelarraylib-1.1.2 → pixelarraylib-1.1.4}/pixelarraylib/gitlab/pypi_package_manager.py +32 -0
- {pixelarraylib-1.1.2 → pixelarraylib-1.1.4}/pixelarraylib/monitor/feishu.py +68 -0
- {pixelarraylib-1.1.2 → pixelarraylib-1.1.4}/pixelarraylib/scripts/__init__.py +4 -2
- {pixelarraylib-1.1.2 → pixelarraylib-1.1.4}/pixelarraylib/scripts/collect_code_to_txt.py +10 -8
- {pixelarraylib-1.1.2 → pixelarraylib-1.1.4}/pixelarraylib/scripts/remove_empty_lines.py +7 -5
- pixelarraylib-1.1.4/pixelarraylib/scripts/tson_convert.py +118 -0
- {pixelarraylib-1.1.2 → pixelarraylib-1.1.4}/pixelarraylib/system/common.py +28 -16
- pixelarraylib-1.1.4/pixelarraylib/system/tson.py +520 -0
- pixelarraylib-1.1.4/pixelarraylib.egg-info/PKG-INFO +349 -0
- {pixelarraylib-1.1.2 → pixelarraylib-1.1.4}/pixelarraylib.egg-info/SOURCES.txt +3 -1
- pixelarraylib-1.1.4/pixelarraylib.egg-info/requires.txt +156 -0
- pixelarraylib-1.1.4/pyproject.toml +213 -0
- {pixelarraylib-1.1.2 → pixelarraylib-1.1.4}/requirements.txt +0 -3
- pixelarraylib-1.1.2/PKG-INFO +0 -121
- pixelarraylib-1.1.2/README.md +0 -71
- pixelarraylib-1.1.2/pixelarraylib.egg-info/PKG-INFO +0 -121
- pixelarraylib-1.1.2/pixelarraylib.egg-info/requires.txt +0 -25
- pixelarraylib-1.1.2/pyproject.toml +0 -73
- {pixelarraylib-1.1.2 → pixelarraylib-1.1.4}/LICENSE +0 -0
- {pixelarraylib-1.1.2 → pixelarraylib-1.1.4}/MANIFEST.in +0 -0
- {pixelarraylib-1.1.2 → pixelarraylib-1.1.4}/pixelarraylib/aliyun/__init__.py +0 -0
- {pixelarraylib-1.1.2 → pixelarraylib-1.1.4}/pixelarraylib/aliyun/acr.py +0 -0
- {pixelarraylib-1.1.2 → pixelarraylib-1.1.4}/pixelarraylib/aliyun/aliyun_email.py +0 -0
- {pixelarraylib-1.1.2 → pixelarraylib-1.1.4}/pixelarraylib/aliyun/billing.py +0 -0
- {pixelarraylib-1.1.2 → pixelarraylib-1.1.4}/pixelarraylib/aliyun/content_scanner.py +0 -0
- {pixelarraylib-1.1.2 → pixelarraylib-1.1.4}/pixelarraylib/aliyun/domain.py +0 -0
- {pixelarraylib-1.1.2 → pixelarraylib-1.1.4}/pixelarraylib/aliyun/eci.py +0 -0
- {pixelarraylib-1.1.2 → pixelarraylib-1.1.4}/pixelarraylib/aliyun/ecs.py +0 -0
- {pixelarraylib-1.1.2 → pixelarraylib-1.1.4}/pixelarraylib/aliyun/eip.py +0 -0
- {pixelarraylib-1.1.2 → pixelarraylib-1.1.4}/pixelarraylib/aliyun/fc.py +0 -0
- {pixelarraylib-1.1.2 → pixelarraylib-1.1.4}/pixelarraylib/aliyun/oss.py +0 -0
- {pixelarraylib-1.1.2 → pixelarraylib-1.1.4}/pixelarraylib/aliyun/sms.py +0 -0
- {pixelarraylib-1.1.2 → pixelarraylib-1.1.4}/pixelarraylib/aliyun/sts.py +0 -0
- {pixelarraylib-1.1.2 → pixelarraylib-1.1.4}/pixelarraylib/db_utils/mysql.py +0 -0
- {pixelarraylib-1.1.2 → pixelarraylib-1.1.4}/pixelarraylib/db_utils/redis.py +0 -0
- {pixelarraylib-1.1.2 → pixelarraylib-1.1.4}/pixelarraylib/decorators/__init__.py +0 -0
- {pixelarraylib-1.1.2 → pixelarraylib-1.1.4}/pixelarraylib/gitlab/__init__.py +0 -0
- {pixelarraylib-1.1.2 → pixelarraylib-1.1.4}/pixelarraylib/monitor/__init__.py +0 -0
- {pixelarraylib-1.1.2 → pixelarraylib-1.1.4}/pixelarraylib/net/request.py +0 -0
- {pixelarraylib-1.1.2 → pixelarraylib-1.1.4}/pixelarraylib/scripts/build_website.py +0 -0
- {pixelarraylib-1.1.2 → pixelarraylib-1.1.4}/pixelarraylib/scripts/create_test_case_files.py +0 -0
- {pixelarraylib-1.1.2 → pixelarraylib-1.1.4}/pixelarraylib/scripts/nginx_proxy_to_ecs.py +0 -0
- {pixelarraylib-1.1.2 → pixelarraylib-1.1.4}/pixelarraylib/system/__init__.py +0 -0
- {pixelarraylib-1.1.2 → pixelarraylib-1.1.4}/pixelarraylib.egg-info/dependency_links.txt +0 -0
- {pixelarraylib-1.1.2 → pixelarraylib-1.1.4}/pixelarraylib.egg-info/entry_points.txt +0 -0
- {pixelarraylib-1.1.2 → pixelarraylib-1.1.4}/pixelarraylib.egg-info/top_level.txt +0 -0
- {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)
|
|
@@ -1,12 +1,13 @@
|
|
|
1
1
|
#!/usr/bin/env python3
|
|
2
2
|
"""
|
|
3
|
-
|
|
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="
|
|
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,移除第一个参数(
|
|
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,移除第一个参数(
|
|
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,移除第一个参数(
|
|
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="
|
|
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
|