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 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