dompk 0.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.
- dompk-0.0.1/LICENSE +21 -0
- dompk-0.0.1/PKG-INFO +556 -0
- dompk-0.0.1/README.md +252 -0
- dompk-0.0.1/dompack/__init__.py +1 -0
- dompk-0.0.1/dompack/bundles.py +223 -0
- dompk-0.0.1/dompack/cli.py +442 -0
- dompk-0.0.1/dompk.egg-info/PKG-INFO +556 -0
- dompk-0.0.1/dompk.egg-info/SOURCES.txt +15 -0
- dompk-0.0.1/dompk.egg-info/dependency_links.txt +1 -0
- dompk-0.0.1/dompk.egg-info/entry_points.txt +3 -0
- dompk-0.0.1/dompk.egg-info/requires.txt +315 -0
- dompk-0.0.1/dompk.egg-info/top_level.txt +2 -0
- dompk-0.0.1/pyproject.toml +179 -0
- dompk-0.0.1/setup.cfg +4 -0
dompk-0.0.1/LICENSE
ADDED
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
MIT License
|
|
2
|
+
|
|
3
|
+
Copyright (c) 2025 Veeresh Hanni
|
|
4
|
+
|
|
5
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
6
|
+
of this software and associated documentation files (the "Software"), to deal
|
|
7
|
+
in the Software without restriction, including without limitation the rights
|
|
8
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
9
|
+
copies of the Software, and to permit persons to whom the Software is
|
|
10
|
+
furnished to do so, subject to the following conditions:
|
|
11
|
+
|
|
12
|
+
The above copyright notice and this permission notice shall be included in all
|
|
13
|
+
copies or substantial portions of the Software.
|
|
14
|
+
|
|
15
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
16
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
17
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
18
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
19
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
20
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
21
|
+
SOFTWARE.
|
dompk-0.0.1/PKG-INFO
ADDED
|
@@ -0,0 +1,556 @@
|
|
|
1
|
+
Metadata-Version: 2.4
|
|
2
|
+
Name: dompk
|
|
3
|
+
Version: 0.0.1
|
|
4
|
+
Summary: Dompack - curated domain-based Python tech stack installer
|
|
5
|
+
Author-email: Veeresh Hanni <veereshhanni347@gmail.com>
|
|
6
|
+
License: MIT License
|
|
7
|
+
|
|
8
|
+
Copyright (c) 2025 Veeresh Hanni
|
|
9
|
+
|
|
10
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
11
|
+
of this software and associated documentation files (the "Software"), to deal
|
|
12
|
+
in the Software without restriction, including without limitation the rights
|
|
13
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
14
|
+
copies of the Software, and to permit persons to whom the Software is
|
|
15
|
+
furnished to do so, subject to the following conditions:
|
|
16
|
+
|
|
17
|
+
The above copyright notice and this permission notice shall be included in all
|
|
18
|
+
copies or substantial portions of the Software.
|
|
19
|
+
|
|
20
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
21
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
22
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
23
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
24
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
25
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
26
|
+
SOFTWARE.
|
|
27
|
+
|
|
28
|
+
Classifier: Programming Language :: Python :: 3
|
|
29
|
+
Classifier: License :: OSI Approved :: MIT License
|
|
30
|
+
Classifier: Operating System :: OS Independent
|
|
31
|
+
Requires-Python: >=3.8
|
|
32
|
+
Description-Content-Type: text/markdown
|
|
33
|
+
License-File: LICENSE
|
|
34
|
+
Provides-Extra: db
|
|
35
|
+
Requires-Dist: psycopg2-binary; extra == "db"
|
|
36
|
+
Requires-Dist: pymysql; extra == "db"
|
|
37
|
+
Requires-Dist: pymongo; extra == "db"
|
|
38
|
+
Requires-Dist: motor; extra == "db"
|
|
39
|
+
Requires-Dist: redis; extra == "db"
|
|
40
|
+
Provides-Extra: da
|
|
41
|
+
Requires-Dist: psycopg2-binary; extra == "da"
|
|
42
|
+
Requires-Dist: pymysql; extra == "da"
|
|
43
|
+
Requires-Dist: pymongo; extra == "da"
|
|
44
|
+
Requires-Dist: motor; extra == "da"
|
|
45
|
+
Requires-Dist: redis; extra == "da"
|
|
46
|
+
Provides-Extra: ds
|
|
47
|
+
Requires-Dist: numpy; extra == "ds"
|
|
48
|
+
Requires-Dist: pandas; extra == "ds"
|
|
49
|
+
Requires-Dist: matplotlib; extra == "ds"
|
|
50
|
+
Requires-Dist: scipy; extra == "ds"
|
|
51
|
+
Requires-Dist: statsmodels; extra == "ds"
|
|
52
|
+
Provides-Extra: ml
|
|
53
|
+
Requires-Dist: numpy; extra == "ml"
|
|
54
|
+
Requires-Dist: pandas; extra == "ml"
|
|
55
|
+
Requires-Dist: scikit-learn; extra == "ml"
|
|
56
|
+
Requires-Dist: joblib; extra == "ml"
|
|
57
|
+
Requires-Dist: matplotlib; extra == "ml"
|
|
58
|
+
Provides-Extra: ai
|
|
59
|
+
Requires-Dist: transformers; extra == "ai"
|
|
60
|
+
Requires-Dist: sentencepiece; extra == "ai"
|
|
61
|
+
Requires-Dist: tokenizers; extra == "ai"
|
|
62
|
+
Provides-Extra: dl
|
|
63
|
+
Requires-Dist: torch; (python_version >= "3.9" and python_version < "3.14") and extra == "dl"
|
|
64
|
+
Requires-Dist: torchvision; (python_version >= "3.9" and python_version < "3.14") and extra == "dl"
|
|
65
|
+
Provides-Extra: cv
|
|
66
|
+
Requires-Dist: opencv-python; platform_python_implementation == "CPython" and extra == "cv"
|
|
67
|
+
Requires-Dist: scikit-image; extra == "cv"
|
|
68
|
+
Requires-Dist: pillow; extra == "cv"
|
|
69
|
+
Provides-Extra: gui
|
|
70
|
+
Requires-Dist: PyQt5; python_version < "3.13" and extra == "gui"
|
|
71
|
+
Requires-Dist: kivy; python_version < "3.13" and extra == "gui"
|
|
72
|
+
Provides-Extra: av
|
|
73
|
+
Requires-Dist: librosa; extra == "av"
|
|
74
|
+
Requires-Dist: moviepy; extra == "av"
|
|
75
|
+
Requires-Dist: ffmpeg-python; extra == "av"
|
|
76
|
+
Provides-Extra: web
|
|
77
|
+
Requires-Dist: requests; extra == "web"
|
|
78
|
+
Requires-Dist: httpx; extra == "web"
|
|
79
|
+
Requires-Dist: beautifulsoup4; extra == "web"
|
|
80
|
+
Requires-Dist: lxml; extra == "web"
|
|
81
|
+
Provides-Extra: common
|
|
82
|
+
Requires-Dist: requests; extra == "common"
|
|
83
|
+
Requires-Dist: httpx; extra == "common"
|
|
84
|
+
Requires-Dist: python-dotenv; extra == "common"
|
|
85
|
+
Requires-Dist: pydantic; extra == "common"
|
|
86
|
+
Requires-Dist: rich; extra == "common"
|
|
87
|
+
Requires-Dist: loguru; extra == "common"
|
|
88
|
+
Provides-Extra: core
|
|
89
|
+
Requires-Dist: requests; extra == "core"
|
|
90
|
+
Requires-Dist: httpx; extra == "core"
|
|
91
|
+
Requires-Dist: python-dotenv; extra == "core"
|
|
92
|
+
Requires-Dist: pydantic; extra == "core"
|
|
93
|
+
Requires-Dist: rich; extra == "core"
|
|
94
|
+
Requires-Dist: loguru; extra == "core"
|
|
95
|
+
Provides-Extra: base
|
|
96
|
+
Requires-Dist: requests; extra == "base"
|
|
97
|
+
Requires-Dist: httpx; extra == "base"
|
|
98
|
+
Requires-Dist: python-dotenv; extra == "base"
|
|
99
|
+
Requires-Dist: pydantic; extra == "base"
|
|
100
|
+
Requires-Dist: rich; extra == "base"
|
|
101
|
+
Requires-Dist: loguru; extra == "base"
|
|
102
|
+
Provides-Extra: bootstrap
|
|
103
|
+
Requires-Dist: pip; extra == "bootstrap"
|
|
104
|
+
Requires-Dist: setuptools; extra == "bootstrap"
|
|
105
|
+
Requires-Dist: wheel; extra == "bootstrap"
|
|
106
|
+
Requires-Dist: build; extra == "bootstrap"
|
|
107
|
+
Requires-Dist: packaging; extra == "bootstrap"
|
|
108
|
+
Requires-Dist: virtualenv; extra == "bootstrap"
|
|
109
|
+
Requires-Dist: pip-tools; extra == "bootstrap"
|
|
110
|
+
Requires-Dist: twine; extra == "bootstrap"
|
|
111
|
+
Provides-Extra: boot
|
|
112
|
+
Requires-Dist: pip; extra == "boot"
|
|
113
|
+
Requires-Dist: setuptools; extra == "boot"
|
|
114
|
+
Requires-Dist: wheel; extra == "boot"
|
|
115
|
+
Requires-Dist: build; extra == "boot"
|
|
116
|
+
Requires-Dist: packaging; extra == "boot"
|
|
117
|
+
Requires-Dist: virtualenv; extra == "boot"
|
|
118
|
+
Requires-Dist: pip-tools; extra == "boot"
|
|
119
|
+
Requires-Dist: twine; extra == "boot"
|
|
120
|
+
Provides-Extra: pytools
|
|
121
|
+
Requires-Dist: pip; extra == "pytools"
|
|
122
|
+
Requires-Dist: setuptools; extra == "pytools"
|
|
123
|
+
Requires-Dist: wheel; extra == "pytools"
|
|
124
|
+
Requires-Dist: build; extra == "pytools"
|
|
125
|
+
Requires-Dist: packaging; extra == "pytools"
|
|
126
|
+
Requires-Dist: virtualenv; extra == "pytools"
|
|
127
|
+
Requires-Dist: pip-tools; extra == "pytools"
|
|
128
|
+
Requires-Dist: twine; extra == "pytools"
|
|
129
|
+
Provides-Extra: fa
|
|
130
|
+
Requires-Dist: fastapi; extra == "fa"
|
|
131
|
+
Requires-Dist: uvicorn[standard]; extra == "fa"
|
|
132
|
+
Requires-Dist: pydantic; extra == "fa"
|
|
133
|
+
Requires-Dist: python-dotenv; extra == "fa"
|
|
134
|
+
Requires-Dist: python-multipart; extra == "fa"
|
|
135
|
+
Requires-Dist: jinja2; extra == "fa"
|
|
136
|
+
Requires-Dist: sqlalchemy; extra == "fa"
|
|
137
|
+
Provides-Extra: fastapi
|
|
138
|
+
Requires-Dist: fastapi; extra == "fastapi"
|
|
139
|
+
Requires-Dist: uvicorn[standard]; extra == "fastapi"
|
|
140
|
+
Requires-Dist: pydantic; extra == "fastapi"
|
|
141
|
+
Requires-Dist: python-dotenv; extra == "fastapi"
|
|
142
|
+
Requires-Dist: python-multipart; extra == "fastapi"
|
|
143
|
+
Requires-Dist: jinja2; extra == "fastapi"
|
|
144
|
+
Requires-Dist: sqlalchemy; extra == "fastapi"
|
|
145
|
+
Provides-Extra: fl
|
|
146
|
+
Requires-Dist: Flask; extra == "fl"
|
|
147
|
+
Requires-Dist: Flask-CORS; extra == "fl"
|
|
148
|
+
Requires-Dist: Flask-RESTful; extra == "fl"
|
|
149
|
+
Requires-Dist: Flask-JWT-Extended; extra == "fl"
|
|
150
|
+
Requires-Dist: Flask-Migrate; extra == "fl"
|
|
151
|
+
Provides-Extra: flask
|
|
152
|
+
Requires-Dist: Flask; extra == "flask"
|
|
153
|
+
Requires-Dist: Flask-CORS; extra == "flask"
|
|
154
|
+
Requires-Dist: Flask-RESTful; extra == "flask"
|
|
155
|
+
Requires-Dist: Flask-JWT-Extended; extra == "flask"
|
|
156
|
+
Requires-Dist: Flask-Migrate; extra == "flask"
|
|
157
|
+
Provides-Extra: dj
|
|
158
|
+
Requires-Dist: Django; extra == "dj"
|
|
159
|
+
Requires-Dist: djangorestframework; extra == "dj"
|
|
160
|
+
Requires-Dist: django-cors-headers; extra == "dj"
|
|
161
|
+
Requires-Dist: django-environ; extra == "dj"
|
|
162
|
+
Requires-Dist: whitenoise; extra == "dj"
|
|
163
|
+
Provides-Extra: django
|
|
164
|
+
Requires-Dist: Django; extra == "django"
|
|
165
|
+
Requires-Dist: djangorestframework; extra == "django"
|
|
166
|
+
Requires-Dist: django-cors-headers; extra == "django"
|
|
167
|
+
Requires-Dist: django-environ; extra == "django"
|
|
168
|
+
Requires-Dist: whitenoise; extra == "django"
|
|
169
|
+
Provides-Extra: net
|
|
170
|
+
Requires-Dist: aiohttp; extra == "net"
|
|
171
|
+
Requires-Dist: websockets; extra == "net"
|
|
172
|
+
Requires-Dist: dnspython; extra == "net"
|
|
173
|
+
Requires-Dist: paramiko; extra == "net"
|
|
174
|
+
Provides-Extra: security
|
|
175
|
+
Requires-Dist: cryptography; extra == "security"
|
|
176
|
+
Requires-Dist: PyJWT; extra == "security"
|
|
177
|
+
Requires-Dist: passlib[bcrypt]; extra == "security"
|
|
178
|
+
Requires-Dist: pycryptodome; extra == "security"
|
|
179
|
+
Provides-Extra: sec
|
|
180
|
+
Requires-Dist: cryptography; extra == "sec"
|
|
181
|
+
Requires-Dist: PyJWT; extra == "sec"
|
|
182
|
+
Requires-Dist: passlib[bcrypt]; extra == "sec"
|
|
183
|
+
Requires-Dist: pycryptodome; extra == "sec"
|
|
184
|
+
Provides-Extra: auth
|
|
185
|
+
Requires-Dist: cryptography; extra == "auth"
|
|
186
|
+
Requires-Dist: PyJWT; extra == "auth"
|
|
187
|
+
Requires-Dist: passlib[bcrypt]; extra == "auth"
|
|
188
|
+
Requires-Dist: pycryptodome; extra == "auth"
|
|
189
|
+
Provides-Extra: cyber
|
|
190
|
+
Requires-Dist: cryptography; extra == "cyber"
|
|
191
|
+
Requires-Dist: PyJWT; extra == "cyber"
|
|
192
|
+
Requires-Dist: passlib[bcrypt]; extra == "cyber"
|
|
193
|
+
Requires-Dist: pycryptodome; extra == "cyber"
|
|
194
|
+
Provides-Extra: cybersec
|
|
195
|
+
Requires-Dist: cryptography; extra == "cybersec"
|
|
196
|
+
Requires-Dist: PyJWT; extra == "cybersec"
|
|
197
|
+
Requires-Dist: passlib[bcrypt]; extra == "cybersec"
|
|
198
|
+
Requires-Dist: pycryptodome; extra == "cybersec"
|
|
199
|
+
Provides-Extra: devops
|
|
200
|
+
Requires-Dist: docker; extra == "devops"
|
|
201
|
+
Requires-Dist: docker-compose; extra == "devops"
|
|
202
|
+
Requires-Dist: ansible; extra == "devops"
|
|
203
|
+
Provides-Extra: testing
|
|
204
|
+
Requires-Dist: pytest; extra == "testing"
|
|
205
|
+
Requires-Dist: pytest-cov; extra == "testing"
|
|
206
|
+
Requires-Dist: black; extra == "testing"
|
|
207
|
+
Requires-Dist: flake8; extra == "testing"
|
|
208
|
+
Requires-Dist: isort; extra == "testing"
|
|
209
|
+
Requires-Dist: mypy; extra == "testing"
|
|
210
|
+
Provides-Extra: file
|
|
211
|
+
Requires-Dist: openpyxl; extra == "file"
|
|
212
|
+
Requires-Dist: python-docx; extra == "file"
|
|
213
|
+
Requires-Dist: pypdf2; extra == "file"
|
|
214
|
+
Provides-Extra: utils
|
|
215
|
+
Requires-Dist: python-dotenv; extra == "utils"
|
|
216
|
+
Requires-Dist: loguru; extra == "utils"
|
|
217
|
+
Requires-Dist: rich; extra == "utils"
|
|
218
|
+
Provides-Extra: fullstack
|
|
219
|
+
Requires-Dist: fastapi; extra == "fullstack"
|
|
220
|
+
Requires-Dist: uvicorn[standard]; extra == "fullstack"
|
|
221
|
+
Requires-Dist: Django; extra == "fullstack"
|
|
222
|
+
Requires-Dist: Flask; extra == "fullstack"
|
|
223
|
+
Requires-Dist: sqlalchemy; extra == "fullstack"
|
|
224
|
+
Requires-Dist: psycopg2-binary; extra == "fullstack"
|
|
225
|
+
Requires-Dist: pymysql; extra == "fullstack"
|
|
226
|
+
Requires-Dist: pymongo; extra == "fullstack"
|
|
227
|
+
Provides-Extra: all
|
|
228
|
+
Requires-Dist: aiohttp; extra == "all"
|
|
229
|
+
Requires-Dist: ansible; extra == "all"
|
|
230
|
+
Requires-Dist: beautifulsoup4; extra == "all"
|
|
231
|
+
Requires-Dist: black; extra == "all"
|
|
232
|
+
Requires-Dist: build; extra == "all"
|
|
233
|
+
Requires-Dist: cryptography; extra == "all"
|
|
234
|
+
Requires-Dist: Django; extra == "all"
|
|
235
|
+
Requires-Dist: django-cors-headers; extra == "all"
|
|
236
|
+
Requires-Dist: django-environ; extra == "all"
|
|
237
|
+
Requires-Dist: dnspython; extra == "all"
|
|
238
|
+
Requires-Dist: docker; extra == "all"
|
|
239
|
+
Requires-Dist: docker-compose; extra == "all"
|
|
240
|
+
Requires-Dist: fastapi; extra == "all"
|
|
241
|
+
Requires-Dist: ffmpeg-python; extra == "all"
|
|
242
|
+
Requires-Dist: flake8; extra == "all"
|
|
243
|
+
Requires-Dist: Flask; extra == "all"
|
|
244
|
+
Requires-Dist: Flask-CORS; extra == "all"
|
|
245
|
+
Requires-Dist: Flask-JWT-Extended; extra == "all"
|
|
246
|
+
Requires-Dist: Flask-Migrate; extra == "all"
|
|
247
|
+
Requires-Dist: Flask-RESTful; extra == "all"
|
|
248
|
+
Requires-Dist: httpx; extra == "all"
|
|
249
|
+
Requires-Dist: isort; extra == "all"
|
|
250
|
+
Requires-Dist: jinja2; extra == "all"
|
|
251
|
+
Requires-Dist: joblib; extra == "all"
|
|
252
|
+
Requires-Dist: kivy; python_version < "3.13" and extra == "all"
|
|
253
|
+
Requires-Dist: librosa; extra == "all"
|
|
254
|
+
Requires-Dist: loguru; extra == "all"
|
|
255
|
+
Requires-Dist: lxml; extra == "all"
|
|
256
|
+
Requires-Dist: matplotlib; extra == "all"
|
|
257
|
+
Requires-Dist: motor; extra == "all"
|
|
258
|
+
Requires-Dist: moviepy; extra == "all"
|
|
259
|
+
Requires-Dist: mypy; extra == "all"
|
|
260
|
+
Requires-Dist: numpy; extra == "all"
|
|
261
|
+
Requires-Dist: opencv-python; platform_python_implementation == "CPython" and extra == "all"
|
|
262
|
+
Requires-Dist: openpyxl; extra == "all"
|
|
263
|
+
Requires-Dist: pandas; extra == "all"
|
|
264
|
+
Requires-Dist: paramiko; extra == "all"
|
|
265
|
+
Requires-Dist: passlib[bcrypt]; extra == "all"
|
|
266
|
+
Requires-Dist: packaging; extra == "all"
|
|
267
|
+
Requires-Dist: pillow; extra == "all"
|
|
268
|
+
Requires-Dist: psycopg2-binary; extra == "all"
|
|
269
|
+
Requires-Dist: pydantic; extra == "all"
|
|
270
|
+
Requires-Dist: pycryptodome; extra == "all"
|
|
271
|
+
Requires-Dist: PyJWT; extra == "all"
|
|
272
|
+
Requires-Dist: pymongo; extra == "all"
|
|
273
|
+
Requires-Dist: pymysql; extra == "all"
|
|
274
|
+
Requires-Dist: pypdf2; extra == "all"
|
|
275
|
+
Requires-Dist: PyQt5; python_version < "3.13" and extra == "all"
|
|
276
|
+
Requires-Dist: pytest; extra == "all"
|
|
277
|
+
Requires-Dist: pytest-cov; extra == "all"
|
|
278
|
+
Requires-Dist: pip; extra == "all"
|
|
279
|
+
Requires-Dist: pip-tools; extra == "all"
|
|
280
|
+
Requires-Dist: python-docx; extra == "all"
|
|
281
|
+
Requires-Dist: python-dotenv; extra == "all"
|
|
282
|
+
Requires-Dist: python-multipart; extra == "all"
|
|
283
|
+
Requires-Dist: redis; extra == "all"
|
|
284
|
+
Requires-Dist: requests; extra == "all"
|
|
285
|
+
Requires-Dist: rich; extra == "all"
|
|
286
|
+
Requires-Dist: scikit-image; extra == "all"
|
|
287
|
+
Requires-Dist: scikit-learn; extra == "all"
|
|
288
|
+
Requires-Dist: scipy; extra == "all"
|
|
289
|
+
Requires-Dist: sentencepiece; extra == "all"
|
|
290
|
+
Requires-Dist: setuptools; extra == "all"
|
|
291
|
+
Requires-Dist: sqlalchemy; extra == "all"
|
|
292
|
+
Requires-Dist: statsmodels; extra == "all"
|
|
293
|
+
Requires-Dist: tokenizers; extra == "all"
|
|
294
|
+
Requires-Dist: torch; (python_version >= "3.9" and python_version < "3.14") and extra == "all"
|
|
295
|
+
Requires-Dist: torchvision; (python_version >= "3.9" and python_version < "3.14") and extra == "all"
|
|
296
|
+
Requires-Dist: transformers; extra == "all"
|
|
297
|
+
Requires-Dist: uvicorn[standard]; extra == "all"
|
|
298
|
+
Requires-Dist: virtualenv; extra == "all"
|
|
299
|
+
Requires-Dist: websockets; extra == "all"
|
|
300
|
+
Requires-Dist: whitenoise; extra == "all"
|
|
301
|
+
Requires-Dist: wheel; extra == "all"
|
|
302
|
+
Requires-Dist: twine; extra == "all"
|
|
303
|
+
Dynamic: license-file
|
|
304
|
+
|
|
305
|
+
|
|
306
|
+
```
|
|
307
|
+
██████╗ ██████╗ ███╗ ███╗██████╗ █████╗ ██████╗██╗ ██╗
|
|
308
|
+
██╔══██╗██╔═══██╗████╗ ████║██╔══██╗██╔══██╗██╔════╝██║ ██╔╝
|
|
309
|
+
██████╔╝██║ ██║██╔████╔██║██████╔╝███████║██║ █████╔╝
|
|
310
|
+
██╔═══╝ ██║ ██║██║╚██╔╝██║██╔══██╗██╔══██║██║ ██╔═██╗
|
|
311
|
+
██║ ╚██████╔╝██║ ╚═╝ ██║██████╔╝██║ ██║╚██████╗██║ ██╗
|
|
312
|
+
╚═╝ ╚═════╝ ╚═╝ ╚═╝╚═════╝ ╚═╝ ╚═╝ ╚═════╝╚═╝ ╚═╝
|
|
313
|
+
Domain-Based Python Tech-Stack Installer
|
|
314
|
+
```
|
|
315
|
+
<br>
|
|
316
|
+
<p align="center">
|
|
317
|
+
<img src="https://img.icons8.com/external-flaticons-lineal-color-flat-icons/64/000000/external-python-computer-programming-icons-flaticons-lineal-color-flat-icons.png" />
|
|
318
|
+
<br><br>
|
|
319
|
+
<img src="https://img.shields.io/badge/version-v0.1.1-blue?logo=python" />
|
|
320
|
+
<img src="https://img.shields.io/pypi/dm/dompack?color=success" />
|
|
321
|
+
<img src="https://img.shields.io/badge/license-MIT-green" />
|
|
322
|
+
<img src="https://img.shields.io/badge/status-active-brightgreen" />
|
|
323
|
+
<img src="https://img.shields.io/pypi/pyversions/dompack" />
|
|
324
|
+
</p>
|
|
325
|
+
|
|
326
|
+
|
|
327
|
+
# 📦 Dompack – Domain-Based Python Tech-Stack Installer
|
|
328
|
+
|
|
329
|
+
Dompack installs complete Python tech stacks using short domain aliases:
|
|
330
|
+
|
|
331
|
+
```
|
|
332
|
+
dompack install fa # FastAPI stack
|
|
333
|
+
dompack install dj # Django stack
|
|
334
|
+
dompack install ml # Machine Learning
|
|
335
|
+
dompack install ai # AI / NLP
|
|
336
|
+
dompack install all # Everything
|
|
337
|
+
dompack install pydev # Full Python dev setup (alias of all)
|
|
338
|
+
```
|
|
339
|
+
|
|
340
|
+
Dompack removes the headache of installing many libraries manually.
|
|
341
|
+
It gives you curated, domain-based bundles designed for fast development.
|
|
342
|
+
|
|
343
|
+
---
|
|
344
|
+
|
|
345
|
+
## 🚀 Features
|
|
346
|
+
|
|
347
|
+
### 🟦 Core Features
|
|
348
|
+
- 📦 Install entire Python stacks using domain aliases
|
|
349
|
+
- ⚡ Clean, curated, production-ready bundles
|
|
350
|
+
- 🎯 Short aliases (`fa`, `fl`, `dj`, `ml`, `ai`, `db`, …)
|
|
351
|
+
- 🧪 Works on Windows, Linux, macOS
|
|
352
|
+
- 🔐 Includes Security, Cryptography & Auth bundles
|
|
353
|
+
- ⚙️ Supports ML, AI, DL, CV, GUI, DevOps, Web, File, Testing
|
|
354
|
+
- 📦 Acts like a mini package manager (son of pip)
|
|
355
|
+
|
|
356
|
+
---
|
|
357
|
+
|
|
358
|
+
## 🆕 New Advanced CLI Features
|
|
359
|
+
|
|
360
|
+
### 🔧 Upgrade bundles
|
|
361
|
+
```
|
|
362
|
+
dompack upgrade <bundle>
|
|
363
|
+
```
|
|
364
|
+
|
|
365
|
+
### 🔍 Search inside bundles
|
|
366
|
+
```
|
|
367
|
+
dompack search <keyword>
|
|
368
|
+
```
|
|
369
|
+
|
|
370
|
+
### 🩺 Environment Doctor
|
|
371
|
+
```
|
|
372
|
+
dompack doctor
|
|
373
|
+
```
|
|
374
|
+
|
|
375
|
+
### 🔄 Self-update
|
|
376
|
+
```
|
|
377
|
+
dompack update-self
|
|
378
|
+
```
|
|
379
|
+
|
|
380
|
+
### 📝 Generate requirements.txt from bundle
|
|
381
|
+
```
|
|
382
|
+
dompack req <bundle>
|
|
383
|
+
```
|
|
384
|
+
|
|
385
|
+
### 🧱 Create custom bundles
|
|
386
|
+
```
|
|
387
|
+
dompack create-bundle <name> <pkg1> <pkg2> ...
|
|
388
|
+
```
|
|
389
|
+
|
|
390
|
+
---
|
|
391
|
+
|
|
392
|
+
## 📥 Installation
|
|
393
|
+
|
|
394
|
+
```
|
|
395
|
+
pip install dompack
|
|
396
|
+
```
|
|
397
|
+
|
|
398
|
+
Commands available after install:
|
|
399
|
+
|
|
400
|
+
```
|
|
401
|
+
dompack --version
|
|
402
|
+
dmk --version
|
|
403
|
+
```
|
|
404
|
+
|
|
405
|
+
Local development install:
|
|
406
|
+
|
|
407
|
+
```
|
|
408
|
+
pip install -e .
|
|
409
|
+
```
|
|
410
|
+
|
|
411
|
+
---
|
|
412
|
+
|
|
413
|
+
## 🧰 CLI Usage
|
|
414
|
+
|
|
415
|
+
### 🔍 List bundles
|
|
416
|
+
```
|
|
417
|
+
dompack list
|
|
418
|
+
dmk list
|
|
419
|
+
```
|
|
420
|
+
|
|
421
|
+
### 📦 Install a bundle
|
|
422
|
+
```
|
|
423
|
+
dompack install <bundle>
|
|
424
|
+
dmk install <bundle>
|
|
425
|
+
```
|
|
426
|
+
|
|
427
|
+
Single alias for full Python developer setup:
|
|
428
|
+
|
|
429
|
+
```
|
|
430
|
+
dompack install pydev
|
|
431
|
+
dmk install pydev
|
|
432
|
+
```
|
|
433
|
+
|
|
434
|
+
Use `uv pip` backend (instead of default auto/pip):
|
|
435
|
+
|
|
436
|
+
```
|
|
437
|
+
dompack --installer uv install <bundle>
|
|
438
|
+
dmk --installer uv install <bundle>
|
|
439
|
+
```
|
|
440
|
+
|
|
441
|
+
Use strict mode to stop on first package error (default is best-effort):
|
|
442
|
+
|
|
443
|
+
```
|
|
444
|
+
dompack --strict install pydev
|
|
445
|
+
dmk --strict install pydev
|
|
446
|
+
```
|
|
447
|
+
|
|
448
|
+
Linux note (Debian/RPM):
|
|
449
|
+
|
|
450
|
+
```
|
|
451
|
+
# If system Python is externally managed, dompack auto-retries in local .venv/.dompack-venv
|
|
452
|
+
dompack install web
|
|
453
|
+
|
|
454
|
+
# Optional: force system install (advanced)
|
|
455
|
+
dompack --break-system-packages install web
|
|
456
|
+
```
|
|
457
|
+
|
|
458
|
+
Examples:
|
|
459
|
+
|
|
460
|
+
```
|
|
461
|
+
dompack install fa
|
|
462
|
+
dompack install dj
|
|
463
|
+
dompack install flask
|
|
464
|
+
dompack install ml
|
|
465
|
+
dompack install ai
|
|
466
|
+
dompack install db
|
|
467
|
+
dompack install all
|
|
468
|
+
```
|
|
469
|
+
|
|
470
|
+
---
|
|
471
|
+
|
|
472
|
+
## 📚 Domain Bundles
|
|
473
|
+
|
|
474
|
+
| Alias | Domain | Description |
|
|
475
|
+
|-------|--------|-------------|
|
|
476
|
+
| `db`, `da` | Databases | PostgreSQL, MySQL, MongoDB, Redis |
|
|
477
|
+
| `ds` | Data Science | numpy, pandas, matplotlib, scipy |
|
|
478
|
+
| `ml` | Machine Learning | scikit-learn, joblib |
|
|
479
|
+
| `ai` | AI / NLP | transformers, tokenizers |
|
|
480
|
+
| `dl` | Deep Learning | torch, torchvision |
|
|
481
|
+
| `cv` | Computer Vision | opencv-python, scikit-image, pillow |
|
|
482
|
+
| `gui` | GUI | PyQt5, Kivy |
|
|
483
|
+
| `av` | Audio / Video | librosa, moviepy |
|
|
484
|
+
| `web` | Web Utils | requests, httpx, beautifulsoup4 |
|
|
485
|
+
| `bootstrap`, `boot`, `pytools` | Python Tooling | pip, setuptools, wheel, build, virtualenv |
|
|
486
|
+
| `fa`, `fastapi` | FastAPI Stack | fastapi, uvicorn, pydantic |
|
|
487
|
+
| `fl`, `flask` | Flask Stack | flask & extensions |
|
|
488
|
+
| `dj`, `django` | Django Stack | django, DRF, cors headers |
|
|
489
|
+
| `net` | Networking | aiohttp, websockets, paramiko |
|
|
490
|
+
| `security`, `sec`, `auth`, `cyber` | Security | JWT, cryptography, passlib |
|
|
491
|
+
| `devops` | DevOps | docker, ansible |
|
|
492
|
+
| `testing` | Testing | pytest, black, flake8 |
|
|
493
|
+
| `file` | File Processing | docx, pypdf2, openpyxl |
|
|
494
|
+
| `utils` | Utilities | dotenv, rich, loguru |
|
|
495
|
+
| `fullstack` | Mixed Stack | Django + FastAPI + Flask |
|
|
496
|
+
| `all` | Everything | All bundles combined |
|
|
497
|
+
|
|
498
|
+
---
|
|
499
|
+
|
|
500
|
+
## 🧭 Examples
|
|
501
|
+
|
|
502
|
+
### FastAPI install
|
|
503
|
+
```
|
|
504
|
+
dompack install fa
|
|
505
|
+
```
|
|
506
|
+
|
|
507
|
+
### Django install
|
|
508
|
+
```
|
|
509
|
+
dompack install dj
|
|
510
|
+
```
|
|
511
|
+
|
|
512
|
+
### Machine Learning setup
|
|
513
|
+
```
|
|
514
|
+
dompack install ml
|
|
515
|
+
```
|
|
516
|
+
|
|
517
|
+
### Install EVERYTHING
|
|
518
|
+
```
|
|
519
|
+
dompack install all
|
|
520
|
+
```
|
|
521
|
+
|
|
522
|
+
### Upgrade a bundle
|
|
523
|
+
```
|
|
524
|
+
dompack upgrade security
|
|
525
|
+
```
|
|
526
|
+
|
|
527
|
+
### Search packages
|
|
528
|
+
```
|
|
529
|
+
dompack search mongo
|
|
530
|
+
```
|
|
531
|
+
|
|
532
|
+
### Generate requirements.txt
|
|
533
|
+
```
|
|
534
|
+
dompack req ml
|
|
535
|
+
```
|
|
536
|
+
|
|
537
|
+
### Environment doctor
|
|
538
|
+
```
|
|
539
|
+
dompack doctor
|
|
540
|
+
```
|
|
541
|
+
|
|
542
|
+
---
|
|
543
|
+
|
|
544
|
+
## 📝 License
|
|
545
|
+
|
|
546
|
+
MIT License © 2025 Veeresh Hanni
|
|
547
|
+
|
|
548
|
+
---
|
|
549
|
+
|
|
550
|
+
## ⭐ Support
|
|
551
|
+
|
|
552
|
+
If Dompack helps you:
|
|
553
|
+
|
|
554
|
+
- ⭐ Star it on GitHub
|
|
555
|
+
- 🛠 Contribute new bundles
|
|
556
|
+
- 📦 Share it with the Python community
|