lazyad 0.0.22__tar.gz → 0.0.105__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 (36) hide show
  1. lazyad-0.0.105/.gitignore +138 -0
  2. lazyad-0.0.105/.idea/.gitignore +5 -0
  3. lazyad-0.0.105/.idea/inspectionProfiles/profiles_settings.xml +6 -0
  4. lazyad-0.0.105/.idea/lazyad.iml +14 -0
  5. lazyad-0.0.105/.idea/misc.xml +7 -0
  6. lazyad-0.0.105/.idea/modules.xml +8 -0
  7. lazyad-0.0.105/.idea/vcs.xml +6 -0
  8. lazyad-0.0.105/.idea/workspace.xml +275 -0
  9. {lazyad-0.0.22 → lazyad-0.0.105}/PKG-INFO +22 -9
  10. {lazyad-0.0.22 → lazyad-0.0.105}/README.md +11 -1
  11. lazyad-0.0.105/lazyad/crawlers/chuangliang.py +1433 -0
  12. lazyad-0.0.105/lazyad/crawlers/mintegral.py +515 -0
  13. {lazyad-0.0.22 → lazyad-0.0.105}/lazyad/crawlers/qq.py +79 -0
  14. lazyad-0.0.105/lazyad/crawlers/wshoto.py +583 -0
  15. lazyad-0.0.105/lazyad/open/apple.py +76 -0
  16. lazyad-0.0.105/lazyad/open/applovin.py +31 -0
  17. lazyad-0.0.105/lazyad/open/kuaishou.py +31 -0
  18. lazyad-0.0.105/lazyad/open/mintegral.py +416 -0
  19. lazyad-0.0.105/lazyad/open/qq.py +659 -0
  20. lazyad-0.0.105/lazyad/open/unity.py +340 -0
  21. lazyad-0.0.105/pyproject.toml +29 -0
  22. lazyad-0.0.105/requirements.txt +5 -0
  23. lazyad-0.0.105/src/__init__.py +0 -0
  24. lazyad-0.0.22/lazyad/crawlers/chuangliang.py +0 -364
  25. lazyad-0.0.22/lazyad/open/qq.py +0 -159
  26. lazyad-0.0.22/lazyad.egg-info/PKG-INFO +0 -51
  27. lazyad-0.0.22/lazyad.egg-info/SOURCES.txt +0 -14
  28. lazyad-0.0.22/lazyad.egg-info/dependency_links.txt +0 -1
  29. lazyad-0.0.22/lazyad.egg-info/requires.txt +0 -1
  30. lazyad-0.0.22/lazyad.egg-info/top_level.txt +0 -1
  31. lazyad-0.0.22/setup.cfg +0 -4
  32. lazyad-0.0.22/setup.py +0 -32
  33. {lazyad-0.0.22 → lazyad-0.0.105}/lazyad/__init__.py +0 -0
  34. {lazyad-0.0.22 → lazyad-0.0.105}/lazyad/crawlers/__init__.py +0 -0
  35. {lazyad-0.0.22 → lazyad-0.0.105}/lazyad/crawlers/oceanengine.py +0 -0
  36. {lazyad-0.0.22 → lazyad-0.0.105}/lazyad/open/__init__.py +0 -0
@@ -0,0 +1,138 @@
1
+ # Byte-compiled / optimized / DLL files
2
+ __pycache__/
3
+ *.py[cod]
4
+ *$py.class
5
+
6
+ # C extensions
7
+ *.so
8
+
9
+ # Distribution / packaging
10
+ .Python
11
+ build/
12
+ develop-eggs/
13
+ dist/
14
+ downloads/
15
+ eggs/
16
+ .eggs/
17
+ lib/
18
+ lib64/
19
+ parts/
20
+ sdist/
21
+ var/
22
+ wheels/
23
+ share/python-wheels/
24
+ *.egg-info/
25
+ .installed.cfg
26
+ *.egg
27
+ MANIFEST
28
+
29
+ # PyInstaller
30
+ # Usually these files are written by a python script from a template
31
+ # before PyInstaller builds the exe, so as to inject date/other infos into it.
32
+ *.manifest
33
+ *.spec
34
+
35
+ # Installer logs
36
+ pip-log.txt
37
+ pip-delete-this-directory.txt
38
+
39
+ # Unit test / coverage reports
40
+ htmlcov/
41
+ .tox/
42
+ .nox/
43
+ .coverage
44
+ .coverage.*
45
+ .cache
46
+ nosetests.xml
47
+ coverage.xml
48
+ *.cover
49
+ *.py,cover
50
+ .hypothesis/
51
+ .pytest_cache/
52
+ cover/
53
+
54
+ # Translations
55
+ *.mo
56
+ *.pot
57
+
58
+ # Django stuff:
59
+ *.log
60
+ local_settings.py
61
+ db.sqlite3
62
+ db.sqlite3-journal
63
+
64
+ # Flask stuff:
65
+ instance/
66
+ .webassets-cache
67
+
68
+ # Scrapy stuff:
69
+ .scrapy
70
+
71
+ # Sphinx documentation
72
+ docs/_build/
73
+
74
+ # PyBuilder
75
+ .pybuilder/
76
+ target/
77
+
78
+ # Jupyter Notebook
79
+ .ipynb_checkpoints
80
+
81
+ # IPython
82
+ profile_default/
83
+ ipython_config.py
84
+
85
+ # pyenv
86
+ # For a library or package, you might want to ignore these files since the code is
87
+ # intended to run in multiple environments; otherwise, check them in:
88
+ # .python-version
89
+
90
+ # pipenv
91
+ # According to pypa/pipenv#598, it is recommended to include Pipfile.lock in version control.
92
+ # However, in case of collaboration, if having platform-specific dependencies or dependencies
93
+ # having no cross-platform support, pipenv may install dependencies that don't work, or not
94
+ # install all needed dependencies.
95
+ #Pipfile.lock
96
+
97
+ # PEP 582; used by e.g. github.com/David-OConnor/pyflow
98
+ __pypackages__/
99
+
100
+ # Celery stuff
101
+ celerybeat-schedule
102
+ celerybeat.pid
103
+
104
+ # SageMath parsed files
105
+ *.sage.py
106
+
107
+ # Environments
108
+ .env
109
+ .venv
110
+ env/
111
+ venv/
112
+ ENV/
113
+ env.bak/
114
+ venv.bak/
115
+
116
+ # Spyder project settings
117
+ .spyderproject
118
+ .spyproject
119
+
120
+ # Rope project settings
121
+ .ropeproject
122
+
123
+ # mkdocs documentation
124
+ /site
125
+
126
+ # mypy
127
+ .mypy_cache/
128
+ .dmypy.json
129
+ dmypy.json
130
+
131
+ # Pyre type checker
132
+ .pyre/
133
+
134
+ # pytype static type analyzer
135
+ .pytype/
136
+
137
+ # Cython debug symbols
138
+ cython_debug/
@@ -0,0 +1,5 @@
1
+ # 默认忽略的文件
2
+ /shelf/
3
+ /workspace.xml
4
+ # 基于编辑器的 HTTP 客户端请求
5
+ /httpRequests/
@@ -0,0 +1,6 @@
1
+ <component name="InspectionProjectProfileManager">
2
+ <settings>
3
+ <option name="USE_PROJECT_PROFILE" value="false" />
4
+ <version value="1.0" />
5
+ </settings>
6
+ </component>
@@ -0,0 +1,14 @@
1
+ <?xml version="1.0" encoding="UTF-8"?>
2
+ <module type="PYTHON_MODULE" version="4">
3
+ <component name="NewModuleRootManager">
4
+ <content url="file://$MODULE_DIR$">
5
+ <excludeFolder url="file://$MODULE_DIR$/.venv" />
6
+ </content>
7
+ <orderEntry type="jdk" jdkName="Python 3.9 (lazyad) (2)" jdkType="Python SDK" />
8
+ <orderEntry type="sourceFolder" forTests="false" />
9
+ </component>
10
+ <component name="PyDocumentationSettings">
11
+ <option name="format" value="PLAIN" />
12
+ <option name="myDocStringFormat" value="Plain" />
13
+ </component>
14
+ </module>
@@ -0,0 +1,7 @@
1
+ <?xml version="1.0" encoding="UTF-8"?>
2
+ <project version="4">
3
+ <component name="Black">
4
+ <option name="sdkName" value="Python 3.9 (lazyad) (2)" />
5
+ </component>
6
+ <component name="ProjectRootManager" version="2" project-jdk-name="Python 3.9 (lazyad) (2)" project-jdk-type="Python SDK" />
7
+ </project>
@@ -0,0 +1,8 @@
1
+ <?xml version="1.0" encoding="UTF-8"?>
2
+ <project version="4">
3
+ <component name="ProjectModuleManager">
4
+ <modules>
5
+ <module fileurl="file://$PROJECT_DIR$/.idea/lazyad.iml" filepath="$PROJECT_DIR$/.idea/lazyad.iml" />
6
+ </modules>
7
+ </component>
8
+ </project>
@@ -0,0 +1,6 @@
1
+ <?xml version="1.0" encoding="UTF-8"?>
2
+ <project version="4">
3
+ <component name="VcsDirectoryMappings">
4
+ <mapping directory="" vcs="Git" />
5
+ </component>
6
+ </project>
@@ -0,0 +1,275 @@
1
+ <?xml version="1.0" encoding="UTF-8"?>
2
+ <project version="4">
3
+ <component name="AutoImportSettings">
4
+ <option name="autoReloadType" value="SELECTIVE" />
5
+ </component>
6
+ <component name="ChangeListManager">
7
+ <list default="true" id="b8cf6f8f-73f4-4e34-9084-1811c8e863f4" name="更改" comment="更新">
8
+ <change beforePath="$PROJECT_DIR$/lazyad/crawlers/wshoto.py" beforeDir="false" afterPath="$PROJECT_DIR$/lazyad/crawlers/wshoto.py" afterDir="false" />
9
+ <change beforePath="$PROJECT_DIR$/pyproject.toml" beforeDir="false" afterPath="$PROJECT_DIR$/pyproject.toml" afterDir="false" />
10
+ </list>
11
+ <option name="SHOW_DIALOG" value="false" />
12
+ <option name="HIGHLIGHT_CONFLICTS" value="true" />
13
+ <option name="HIGHLIGHT_NON_ACTIVE_CHANGELIST" value="false" />
14
+ <option name="LAST_RESOLUTION" value="IGNORE" />
15
+ </component>
16
+ <component name="Git.Settings">
17
+ <option name="RECENT_GIT_ROOT_PATH" value="$PROJECT_DIR$" />
18
+ </component>
19
+ <component name="ProjectColorInfo">{
20
+ &quot;associatedIndex&quot;: 7
21
+ }</component>
22
+ <component name="ProjectId" id="36QplUWLZYduZnh5Of8TVBT4W8s" />
23
+ <component name="ProjectViewState">
24
+ <option name="hideEmptyMiddlePackages" value="true" />
25
+ <option name="showLibraryContents" value="true" />
26
+ </component>
27
+ <component name="PropertiesComponent">{
28
+ &quot;keyToString&quot;: {
29
+ &quot;ModuleVcsDetector.initialDetectionPerformed&quot;: &quot;true&quot;,
30
+ &quot;RunOnceActivity.ShowReadmeOnStart&quot;: &quot;true&quot;,
31
+ &quot;RunOnceActivity.TerminalTabsStorage.copyFrom.TerminalArrangementManager.252&quot;: &quot;true&quot;,
32
+ &quot;RunOnceActivity.git.unshallow&quot;: &quot;true&quot;,
33
+ &quot;git-widget-placeholder&quot;: &quot;master&quot;,
34
+ &quot;settings.editor.selected.configurable&quot;: &quot;com.jetbrains.python.configuration.PyActiveSdkModuleConfigurable&quot;
35
+ }
36
+ }</component>
37
+ <component name="SharedIndexes">
38
+ <attachedChunks>
39
+ <set>
40
+ <option value="bundled-python-sdk-b3d66beaba9a-c6efb3732140-com.jetbrains.pycharm.pro.sharedIndexes.bundled-PY-252.26199.168" />
41
+ </set>
42
+ </attachedChunks>
43
+ </component>
44
+ <component name="TaskManager">
45
+ <task active="true" id="Default" summary="默认任务">
46
+ <changelist id="b8cf6f8f-73f4-4e34-9084-1811c8e863f4" name="更改" comment="" />
47
+ <created>1764948800571</created>
48
+ <option name="number" value="Default" />
49
+ <option name="presentableId" value="Default" />
50
+ <updated>1764948800571</updated>
51
+ </task>
52
+ <task id="LOCAL-00001" summary="更新">
53
+ <option name="closed" value="true" />
54
+ <created>1764948862402</created>
55
+ <option name="number" value="00001" />
56
+ <option name="presentableId" value="LOCAL-00001" />
57
+ <option name="project" value="LOCAL" />
58
+ <updated>1764948862402</updated>
59
+ </task>
60
+ <task id="LOCAL-00002" summary="更新">
61
+ <option name="closed" value="true" />
62
+ <created>1765725712841</created>
63
+ <option name="number" value="00002" />
64
+ <option name="presentableId" value="LOCAL-00002" />
65
+ <option name="project" value="LOCAL" />
66
+ <updated>1765725712841</updated>
67
+ </task>
68
+ <task id="LOCAL-00003" summary="更新">
69
+ <option name="closed" value="true" />
70
+ <created>1766591130497</created>
71
+ <option name="number" value="00003" />
72
+ <option name="presentableId" value="LOCAL-00003" />
73
+ <option name="project" value="LOCAL" />
74
+ <updated>1766591130497</updated>
75
+ </task>
76
+ <task id="LOCAL-00004" summary="更新">
77
+ <option name="closed" value="true" />
78
+ <created>1766591424653</created>
79
+ <option name="number" value="00004" />
80
+ <option name="presentableId" value="LOCAL-00004" />
81
+ <option name="project" value="LOCAL" />
82
+ <updated>1766591424653</updated>
83
+ </task>
84
+ <task id="LOCAL-00005" summary="更新">
85
+ <option name="closed" value="true" />
86
+ <created>1766669095181</created>
87
+ <option name="number" value="00005" />
88
+ <option name="presentableId" value="LOCAL-00005" />
89
+ <option name="project" value="LOCAL" />
90
+ <updated>1766669095182</updated>
91
+ </task>
92
+ <task id="LOCAL-00006" summary="更新">
93
+ <option name="closed" value="true" />
94
+ <created>1766671840666</created>
95
+ <option name="number" value="00006" />
96
+ <option name="presentableId" value="LOCAL-00006" />
97
+ <option name="project" value="LOCAL" />
98
+ <updated>1766671840666</updated>
99
+ </task>
100
+ <task id="LOCAL-00007" summary="更新">
101
+ <option name="closed" value="true" />
102
+ <created>1766672267423</created>
103
+ <option name="number" value="00007" />
104
+ <option name="presentableId" value="LOCAL-00007" />
105
+ <option name="project" value="LOCAL" />
106
+ <updated>1766672267423</updated>
107
+ </task>
108
+ <task id="LOCAL-00008" summary="更新">
109
+ <option name="closed" value="true" />
110
+ <created>1766677662829</created>
111
+ <option name="number" value="00008" />
112
+ <option name="presentableId" value="LOCAL-00008" />
113
+ <option name="project" value="LOCAL" />
114
+ <updated>1766677662829</updated>
115
+ </task>
116
+ <task id="LOCAL-00009" summary="更新">
117
+ <option name="closed" value="true" />
118
+ <created>1766679215356</created>
119
+ <option name="number" value="00009" />
120
+ <option name="presentableId" value="LOCAL-00009" />
121
+ <option name="project" value="LOCAL" />
122
+ <updated>1766679215356</updated>
123
+ </task>
124
+ <task id="LOCAL-00010" summary="更新">
125
+ <option name="closed" value="true" />
126
+ <created>1766681044005</created>
127
+ <option name="number" value="00010" />
128
+ <option name="presentableId" value="LOCAL-00010" />
129
+ <option name="project" value="LOCAL" />
130
+ <updated>1766681044005</updated>
131
+ </task>
132
+ <task id="LOCAL-00011" summary="更新">
133
+ <option name="closed" value="true" />
134
+ <created>1766753297574</created>
135
+ <option name="number" value="00011" />
136
+ <option name="presentableId" value="LOCAL-00011" />
137
+ <option name="project" value="LOCAL" />
138
+ <updated>1766753297574</updated>
139
+ </task>
140
+ <task id="LOCAL-00012" summary="更新">
141
+ <option name="closed" value="true" />
142
+ <created>1766761192000</created>
143
+ <option name="number" value="00012" />
144
+ <option name="presentableId" value="LOCAL-00012" />
145
+ <option name="project" value="LOCAL" />
146
+ <updated>1766761192000</updated>
147
+ </task>
148
+ <task id="LOCAL-00013" summary="更新">
149
+ <option name="closed" value="true" />
150
+ <created>1766762028101</created>
151
+ <option name="number" value="00013" />
152
+ <option name="presentableId" value="LOCAL-00013" />
153
+ <option name="project" value="LOCAL" />
154
+ <updated>1766762028101</updated>
155
+ </task>
156
+ <task id="LOCAL-00014" summary="更新">
157
+ <option name="closed" value="true" />
158
+ <created>1767924841116</created>
159
+ <option name="number" value="00014" />
160
+ <option name="presentableId" value="LOCAL-00014" />
161
+ <option name="project" value="LOCAL" />
162
+ <updated>1767924841116</updated>
163
+ </task>
164
+ <task id="LOCAL-00015" summary="更新">
165
+ <option name="closed" value="true" />
166
+ <created>1768061650975</created>
167
+ <option name="number" value="00015" />
168
+ <option name="presentableId" value="LOCAL-00015" />
169
+ <option name="project" value="LOCAL" />
170
+ <updated>1768061650975</updated>
171
+ </task>
172
+ <task id="LOCAL-00016" summary="更新">
173
+ <option name="closed" value="true" />
174
+ <created>1768064474684</created>
175
+ <option name="number" value="00016" />
176
+ <option name="presentableId" value="LOCAL-00016" />
177
+ <option name="project" value="LOCAL" />
178
+ <updated>1768064474684</updated>
179
+ </task>
180
+ <task id="LOCAL-00017" summary="更新">
181
+ <option name="closed" value="true" />
182
+ <created>1768064578985</created>
183
+ <option name="number" value="00017" />
184
+ <option name="presentableId" value="LOCAL-00017" />
185
+ <option name="project" value="LOCAL" />
186
+ <updated>1768064578985</updated>
187
+ </task>
188
+ <task id="LOCAL-00018" summary="更新">
189
+ <option name="closed" value="true" />
190
+ <created>1768215538083</created>
191
+ <option name="number" value="00018" />
192
+ <option name="presentableId" value="LOCAL-00018" />
193
+ <option name="project" value="LOCAL" />
194
+ <updated>1768215538083</updated>
195
+ </task>
196
+ <task id="LOCAL-00019" summary="更新">
197
+ <option name="closed" value="true" />
198
+ <created>1768215923463</created>
199
+ <option name="number" value="00019" />
200
+ <option name="presentableId" value="LOCAL-00019" />
201
+ <option name="project" value="LOCAL" />
202
+ <updated>1768215923463</updated>
203
+ </task>
204
+ <task id="LOCAL-00020" summary="更新">
205
+ <option name="closed" value="true" />
206
+ <created>1768234753354</created>
207
+ <option name="number" value="00020" />
208
+ <option name="presentableId" value="LOCAL-00020" />
209
+ <option name="project" value="LOCAL" />
210
+ <updated>1768234753354</updated>
211
+ </task>
212
+ <task id="LOCAL-00021" summary="更新">
213
+ <option name="closed" value="true" />
214
+ <created>1768235124190</created>
215
+ <option name="number" value="00021" />
216
+ <option name="presentableId" value="LOCAL-00021" />
217
+ <option name="project" value="LOCAL" />
218
+ <updated>1768235124190</updated>
219
+ </task>
220
+ <task id="LOCAL-00022" summary="更新">
221
+ <option name="closed" value="true" />
222
+ <created>1768716567238</created>
223
+ <option name="number" value="00022" />
224
+ <option name="presentableId" value="LOCAL-00022" />
225
+ <option name="project" value="LOCAL" />
226
+ <updated>1768716567238</updated>
227
+ </task>
228
+ <task id="LOCAL-00023" summary="更新">
229
+ <option name="closed" value="true" />
230
+ <created>1768731002534</created>
231
+ <option name="number" value="00023" />
232
+ <option name="presentableId" value="LOCAL-00023" />
233
+ <option name="project" value="LOCAL" />
234
+ <updated>1768731002534</updated>
235
+ </task>
236
+ <task id="LOCAL-00024" summary="更新">
237
+ <option name="closed" value="true" />
238
+ <created>1768738282032</created>
239
+ <option name="number" value="00024" />
240
+ <option name="presentableId" value="LOCAL-00024" />
241
+ <option name="project" value="LOCAL" />
242
+ <updated>1768738282032</updated>
243
+ </task>
244
+ <task id="LOCAL-00025" summary="更新">
245
+ <option name="closed" value="true" />
246
+ <created>1768743385639</created>
247
+ <option name="number" value="00025" />
248
+ <option name="presentableId" value="LOCAL-00025" />
249
+ <option name="project" value="LOCAL" />
250
+ <updated>1768743385639</updated>
251
+ </task>
252
+ <task id="LOCAL-00026" summary="更新">
253
+ <option name="closed" value="true" />
254
+ <created>1768890963880</created>
255
+ <option name="number" value="00026" />
256
+ <option name="presentableId" value="LOCAL-00026" />
257
+ <option name="project" value="LOCAL" />
258
+ <updated>1768890963880</updated>
259
+ </task>
260
+ <task id="LOCAL-00027" summary="更新">
261
+ <option name="closed" value="true" />
262
+ <created>1768891441363</created>
263
+ <option name="number" value="00027" />
264
+ <option name="presentableId" value="LOCAL-00027" />
265
+ <option name="project" value="LOCAL" />
266
+ <updated>1768891441363</updated>
267
+ </task>
268
+ <option name="localTasksCounter" value="28" />
269
+ <servers />
270
+ </component>
271
+ <component name="VcsManagerConfiguration">
272
+ <MESSAGE value="更新" />
273
+ <option name="LAST_COMMIT_MESSAGE" value="更新" />
274
+ </component>
275
+ </project>
@@ -1,14 +1,17 @@
1
- Metadata-Version: 2.1
1
+ Metadata-Version: 2.4
2
2
  Name: lazyad
3
- Version: 0.0.22
4
- Summary: 基于Python的懒人包-适用于广告投放模块
5
- Home-page: https://gitee.com/ZeroSeeker/lazyad
6
- Author: ZeroSeeker
7
- Author-email: zeroseeker@foxmail.com
8
- Classifier: Programming Language :: Python :: 3
3
+ Version: 0.0.105
4
+ Summary: make it easy to use ad api
5
+ Project-URL: Homepage, https://gitee.com/ZeroSeeker/lazyad
6
+ Project-URL: Issues, https://gitee.com/ZeroSeeker/lazyad/issues
7
+ Author-email: ZeroSeeker <zeroseeker@foxmail.com>
8
+ License-Expression: MIT
9
9
  Classifier: Operating System :: OS Independent
10
- Description-Content-Type: text/markdown
10
+ Classifier: Programming Language :: Python :: 3
11
+ Requires-Python: >=3.8
11
12
  Requires-Dist: lazysdk>=0.1.88
13
+ Requires-Dist: xmltodict==0.15.0
14
+ Description-Content-Type: text/markdown
12
15
 
13
16
  # lazyad
14
17
 
@@ -23,7 +26,17 @@ Gitee 是 OSCHINA 推出的基于 Git 的代码托管平台(同时支持 SVN
23
26
 
24
27
  #### 安装教程
25
28
 
26
- 1. xxxx
29
+ 1. 使用pip安装
30
+ - 普通方式安装
31
+ ```shell script
32
+ pip3 install lazyad
33
+ ```
34
+
35
+ - 使用阿里镜像加速安装
36
+ ```shell script
37
+ pip3 install lazyad -i https://mirrors.aliyun.com/pypi/simple
38
+ ```
39
+
27
40
  2. xxxx
28
41
  3. xxxx
29
42
 
@@ -11,7 +11,17 @@ Gitee 是 OSCHINA 推出的基于 Git 的代码托管平台(同时支持 SVN
11
11
 
12
12
  #### 安装教程
13
13
 
14
- 1. xxxx
14
+ 1. 使用pip安装
15
+ - 普通方式安装
16
+ ```shell script
17
+ pip3 install lazyad
18
+ ```
19
+
20
+ - 使用阿里镜像加速安装
21
+ ```shell script
22
+ pip3 install lazyad -i https://mirrors.aliyun.com/pypi/simple
23
+ ```
24
+
15
25
  2. xxxx
16
26
  3. xxxx
17
27