init-app 0.2.5__tar.gz → 1.2.0__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.
- {init_app-0.2.5 → init_app-1.2.0}/MANIFEST.in +9 -5
- init_app-1.2.0/PKG-INFO +163 -0
- init_app-1.2.0/README.md +130 -0
- init_app-1.2.0/create_app/__init__.py +55 -0
- init_app-1.2.0/create_app/common/static/scripts/script.js.tpl +45 -0
- init_app-1.2.0/create_app/constants.py +152 -0
- init_app-1.2.0/create_app/engine/cli.py +219 -0
- init_app-1.2.0/create_app/engine/prompts.py +113 -0
- init_app-0.2.5/create_app/ui/loader.py → init_app-1.2.0/create_app/engine/ui/spinner.py +1 -1
- init_app-1.2.0/create_app/engine/ui/ui_config.py +44 -0
- init_app-1.2.0/create_app/engine/ui/user_interface.py +259 -0
- init_app-1.2.0/create_app/framework/bundler.py +194 -0
- init_app-1.2.0/create_app/initializer/controller.py +228 -0
- init_app-1.2.0/create_app/initializer/generator.py +157 -0
- init_app-1.2.0/create_app/logger.py +25 -0
- init_app-1.2.0/create_app/rules/auto_rules.py +89 -0
- init_app-1.2.0/create_app/rules/django_rules.py +65 -0
- init_app-1.2.0/create_app/rules/global_rules.py +51 -0
- init_app-1.2.0/create_app/rules/others_rules.py +82 -0
- init_app-1.2.0/create_app/rules/production_rules.py +104 -0
- init_app-1.2.0/create_app/rules/standard_rules.py +60 -0
- init_app-1.2.0/docs/COMMAND_LINE.md +133 -0
- init_app-1.2.0/docs/prerequisite.py +55 -0
- init_app-1.2.0/docs/requirements.txt +7 -0
- init_app-1.2.0/init_app.egg-info/PKG-INFO +163 -0
- init_app-1.2.0/init_app.egg-info/SOURCES.txt +50 -0
- init_app-1.2.0/init_app.egg-info/entry_points.txt +2 -0
- {init_app-0.2.5 → init_app-1.2.0}/init_app.egg-info/requires.txt +1 -0
- {init_app-0.2.5 → init_app-1.2.0}/init_app.egg-info/top_level.txt +2 -0
- {init_app-0.2.5 → init_app-1.2.0}/pyproject.toml +27 -6
- init_app-1.2.0/scripts/build.py +19 -0
- init_app-1.2.0/scripts/build.sh +13 -0
- init_app-1.2.0/scripts/bump_version.py +34 -0
- init_app-1.2.0/scripts/bump_version.sh +16 -0
- init_app-1.2.0/scripts/clean.py +21 -0
- init_app-1.2.0/scripts/clean.sh +14 -0
- init_app-1.2.0/scripts/dev_setup.py +20 -0
- init_app-1.2.0/scripts/dev_setup.sh +12 -0
- init_app-1.2.0/scripts/release.py +20 -0
- init_app-1.2.0/scripts/release.sh +14 -0
- {init_app-0.2.5 → init_app-1.2.0}/setup.py +18 -7
- init_app-1.2.0/tests/test_full_matrix.py +87 -0
- init_app-1.2.0/tests/test_logic.py +41 -0
- init_app-0.2.5/PKG-INFO +0 -240
- init_app-0.2.5/README.md +0 -208
- init_app-0.2.5/create_app/__init__.py +0 -21
- init_app-0.2.5/create_app/cli/engine.py +0 -239
- init_app-0.2.5/create_app/constants.py +0 -62
- init_app-0.2.5/create_app/generator/database.py +0 -23
- init_app-0.2.5/create_app/generator/engine.py +0 -63
- init_app-0.2.5/create_app/generator/generator.py +0 -193
- init_app-0.2.5/create_app/generator/prerequisites.py +0 -77
- init_app-0.2.5/create_app/generator/renderer.py +0 -62
- init_app-0.2.5/create_app/generator/venv.py +0 -83
- init_app-0.2.5/create_app/templates/bottle/minimal/entry.py.tpl +0 -26
- init_app-0.2.5/create_app/templates/bottle/minimal/requirements.txt +0 -2
- init_app-0.2.5/create_app/templates/bottle/minimal/structure.py +0 -60
- init_app-0.2.5/create_app/templates/bottle/production/entry.py.tpl +0 -44
- init_app-0.2.5/create_app/templates/bottle/production/requirements.txt +0 -2
- init_app-0.2.5/create_app/templates/bottle/production/structure.py +0 -174
- init_app-0.2.5/create_app/templates/common/.env.tpl +0 -11
- init_app-0.2.5/create_app/templates/common/README.md.tpl +0 -69
- init_app-0.2.5/create_app/templates/common/__init__.py.tpl +0 -0
- init_app-0.2.5/create_app/templates/common/gitignore.tpl +0 -27
- init_app-0.2.5/create_app/templates/common/requirements.txt.tpl +0 -1
- init_app-0.2.5/create_app/templates/common/static/script.js +0 -39
- init_app-0.2.5/create_app/templates/common/static/style.css +0 -420
- init_app-0.2.5/create_app/templates/common/template/bottle/index.tpl +0 -90
- init_app-0.2.5/create_app/templates/common/template/django/base.html +0 -48
- init_app-0.2.5/create_app/templates/common/template/django/index.html +0 -54
- init_app-0.2.5/create_app/templates/common/template/flask/base.html +0 -51
- init_app-0.2.5/create_app/templates/common/template/flask/index.html +0 -48
- init_app-0.2.5/create_app/templates/common/template/pyramid/base.jinja2 +0 -42
- init_app-0.2.5/create_app/templates/common/template/pyramid/index.jinja2 +0 -53
- init_app-0.2.5/create_app/templates/common/template/tornado/index.html +0 -90
- init_app-0.2.5/create_app/templates/common/venv.txt.tpl +0 -4
- init_app-0.2.5/create_app/templates/common/work.txt.tpl +0 -11
- init_app-0.2.5/create_app/templates/django/__init__.py +0 -0
- init_app-0.2.5/create_app/templates/django/drf/__init__.py +0 -0
- init_app-0.2.5/create_app/templates/django/drf/apps.py.tpl +0 -4
- init_app-0.2.5/create_app/templates/django/drf/requirements.txt +0 -9
- init_app-0.2.5/create_app/templates/django/drf/rf.py.tpl +0 -22
- init_app-0.2.5/create_app/templates/django/drf/secret.tpl +0 -3
- init_app-0.2.5/create_app/templates/django/drf/structure.py +0 -157
- init_app-0.2.5/create_app/templates/django/drf/urls.tpl +0 -11
- init_app-0.2.5/create_app/templates/django/minimal/__init__.py +0 -0
- init_app-0.2.5/create_app/templates/django/minimal/requirements.txt +0 -2
- init_app-0.2.5/create_app/templates/django/minimal/structure.py +0 -145
- init_app-0.2.5/create_app/templates/falcon/minimal/__init__.py +0 -0
- init_app-0.2.5/create_app/templates/falcon/minimal/entry.py.tpl +0 -46
- init_app-0.2.5/create_app/templates/falcon/minimal/requirements.txt +0 -2
- init_app-0.2.5/create_app/templates/falcon/minimal/structure.py +0 -60
- init_app-0.2.5/create_app/templates/falcon/production/__init__.py +0 -0
- init_app-0.2.5/create_app/templates/falcon/production/entry.py.tpl +0 -23
- init_app-0.2.5/create_app/templates/falcon/production/requirements.txt +0 -2
- init_app-0.2.5/create_app/templates/falcon/production/structure.py +0 -153
- init_app-0.2.5/create_app/templates/fastapi/minimal/__init__.py +0 -0
- init_app-0.2.5/create_app/templates/fastapi/minimal/entry.py.tpl +0 -36
- init_app-0.2.5/create_app/templates/fastapi/minimal/requirements.txt +0 -2
- init_app-0.2.5/create_app/templates/fastapi/minimal/structure.py +0 -52
- init_app-0.2.5/create_app/templates/fastapi/production/__init__.py +0 -0
- init_app-0.2.5/create_app/templates/fastapi/production/entry.py.tpl +0 -30
- init_app-0.2.5/create_app/templates/fastapi/production/requirements.txt +0 -2
- init_app-0.2.5/create_app/templates/fastapi/production/structure.py +0 -176
- init_app-0.2.5/create_app/templates/flask/minimal/__init__.py +0 -0
- init_app-0.2.5/create_app/templates/flask/minimal/entry.py.tpl +0 -45
- init_app-0.2.5/create_app/templates/flask/minimal/requirements.txt +0 -2
- init_app-0.2.5/create_app/templates/flask/minimal/structure.py +0 -64
- init_app-0.2.5/create_app/templates/flask/production/__init__.py +0 -0
- init_app-0.2.5/create_app/templates/flask/production/entry.py.tpl +0 -29
- init_app-0.2.5/create_app/templates/flask/production/requirements.txt +0 -4
- init_app-0.2.5/create_app/templates/flask/production/structure.py +0 -166
- init_app-0.2.5/create_app/templates/pyramid/__init__.py +0 -0
- init_app-0.2.5/create_app/templates/pyramid/minimal/__init__.py +0 -0
- init_app-0.2.5/create_app/templates/pyramid/minimal/entry.py.tpl +0 -50
- init_app-0.2.5/create_app/templates/pyramid/minimal/requirements.txt +0 -16
- init_app-0.2.5/create_app/templates/pyramid/minimal/structure.py +0 -60
- init_app-0.2.5/create_app/templates/pyramid/production/__init__.py +0 -0
- init_app-0.2.5/create_app/templates/pyramid/production/entry.py.tpl +0 -30
- init_app-0.2.5/create_app/templates/pyramid/production/requirements.txt +0 -16
- init_app-0.2.5/create_app/templates/pyramid/production/structure.py +0 -169
- init_app-0.2.5/create_app/templates/python/cli/__init__.py +0 -0
- init_app-0.2.5/create_app/templates/python/cli/main.py.tpl +0 -4
- init_app-0.2.5/create_app/templates/python/cli/structure.py +0 -56
- init_app-0.2.5/create_app/templates/python/library/__init__.py +0 -0
- init_app-0.2.5/create_app/templates/python/library/structure.py +0 -85
- init_app-0.2.5/create_app/templates/python/minimal/__init__.py +0 -0
- init_app-0.2.5/create_app/templates/python/minimal/structure.py +0 -36
- init_app-0.2.5/create_app/templates/python/mllabs/__init__.py +0 -0
- init_app-0.2.5/create_app/templates/python/mllabs/structure.py +0 -108
- init_app-0.2.5/create_app/templates/sanic/minimal/__init__.py +0 -0
- init_app-0.2.5/create_app/templates/sanic/minimal/entry.py.tpl +0 -27
- init_app-0.2.5/create_app/templates/sanic/minimal/requirements.txt +0 -2
- init_app-0.2.5/create_app/templates/sanic/minimal/structure.py +0 -60
- init_app-0.2.5/create_app/templates/sanic/production/__init__.py +0 -0
- init_app-0.2.5/create_app/templates/sanic/production/entry.py.tpl +0 -26
- init_app-0.2.5/create_app/templates/sanic/production/requirements.txt +0 -2
- init_app-0.2.5/create_app/templates/sanic/production/structure.py +0 -161
- init_app-0.2.5/create_app/templates/tornado/__init__.py +0 -0
- init_app-0.2.5/create_app/templates/tornado/minimal/__init__.py +0 -0
- init_app-0.2.5/create_app/templates/tornado/minimal/entry.py.tpl +0 -45
- init_app-0.2.5/create_app/templates/tornado/minimal/requirements.txt +0 -2
- init_app-0.2.5/create_app/templates/tornado/minimal/structure.py +0 -70
- init_app-0.2.5/create_app/templates/tornado/production/__init__.py +0 -0
- init_app-0.2.5/create_app/templates/tornado/production/entry.py.tpl +0 -23
- init_app-0.2.5/create_app/templates/tornado/production/requirements.txt +0 -2
- init_app-0.2.5/create_app/templates/tornado/production/structure.py +0 -144
- init_app-0.2.5/create_app/ui/__init__.py +0 -0
- init_app-0.2.5/create_app/ui/interface.py +0 -72
- init_app-0.2.5/create_app/ui/logger.py +0 -47
- init_app-0.2.5/create_app/ui/prompts.py +0 -39
- init_app-0.2.5/init_app.egg-info/PKG-INFO +0 -240
- init_app-0.2.5/init_app.egg-info/SOURCES.txt +0 -127
- init_app-0.2.5/init_app.egg-info/entry_points.txt +0 -2
- init_app-0.2.5/tests/__init__.py +0 -0
- init_app-0.2.5/tests/test_full_matrix.py +0 -83
- init_app-0.2.5/tests/test_logic.py +0 -39
- {init_app-0.2.5 → init_app-1.2.0}/LICENSE +0 -0
- {init_app-0.2.5/create_app/cli → init_app-1.2.0/create_app/engine}/__init__.py +0 -0
- {init_app-0.2.5/create_app/generator → init_app-1.2.0/create_app/engine/ui}/__init__.py +0 -0
- {init_app-0.2.5/create_app/templates → init_app-1.2.0/create_app/framework}/__init__.py +0 -0
- {init_app-0.2.5/create_app/templates/bottle → init_app-1.2.0/create_app/initializer}/__init__.py +0 -0
- {init_app-0.2.5/create_app/templates/bottle/minimal → init_app-1.2.0/create_app/rules}/__init__.py +0 -0
- {init_app-0.2.5 → init_app-1.2.0}/init_app.egg-info/dependency_links.txt +0 -0
- {init_app-0.2.5 → init_app-1.2.0}/setup.cfg +0 -0
- {init_app-0.2.5/create_app/templates/bottle/production → init_app-1.2.0/tests}/__init__.py +0 -0
|
@@ -4,18 +4,22 @@ include README.md
|
|
|
4
4
|
include setup.py
|
|
5
5
|
include pyproject.toml
|
|
6
6
|
|
|
7
|
-
#
|
|
7
|
+
# ⚡ GRAFT ensures the entire folder and all sub-folders are included
|
|
8
|
+
graft docs
|
|
9
|
+
graft scripts
|
|
10
|
+
graft tests
|
|
11
|
+
|
|
12
|
+
# Include ALL files inside the core library (Templates & Static)
|
|
8
13
|
recursive-include create_app/templates *
|
|
9
14
|
recursive-include create_app/static *
|
|
10
15
|
|
|
11
16
|
# Specifically ensure common templates and assets are grabbed
|
|
12
17
|
recursive-include create_app/templates/common *
|
|
13
|
-
recursive-include create_app/templates/common/static *
|
|
14
|
-
recursive-include create_app/templates/common/template *
|
|
15
18
|
|
|
16
|
-
# Exclude all Python cache and
|
|
19
|
+
# Exclude all Python cache and junk files
|
|
17
20
|
global-exclude __pycache__
|
|
18
21
|
global-exclude *.py[cod]
|
|
19
22
|
global-exclude *.so
|
|
20
23
|
global-exclude .DS_Store
|
|
21
|
-
global-exclude .env
|
|
24
|
+
global-exclude .env
|
|
25
|
+
global-exclude *.log
|
init_app-1.2.0/PKG-INFO
ADDED
|
@@ -0,0 +1,163 @@
|
|
|
1
|
+
Metadata-Version: 2.4
|
|
2
|
+
Name: init-app
|
|
3
|
+
Version: 1.2.0
|
|
4
|
+
Summary: Interactive Python CLI for scaffolding backend projects (Flask, Django, FastAPI, etc.)
|
|
5
|
+
Author-email: TechQuanta <techquanta.community@gmail.com>, Ashmeet Singh <ashmeetsingh0123@gmail.com>
|
|
6
|
+
License-Expression: MIT
|
|
7
|
+
Project-URL: Homepage, https://github.com/TechQuanta/init-app
|
|
8
|
+
Project-URL: Documentation, https://github.com/TechQuanta/init-app#readme
|
|
9
|
+
Project-URL: Source, https://github.com/TechQuanta/init-app
|
|
10
|
+
Project-URL: Tracker, https://github.com/TechQuanta/init-app/issues
|
|
11
|
+
Classifier: Development Status :: 4 - Beta
|
|
12
|
+
Classifier: Environment :: Console
|
|
13
|
+
Classifier: Intended Audience :: Developers
|
|
14
|
+
Classifier: Programming Language :: Python :: 3
|
|
15
|
+
Classifier: Programming Language :: Python :: 3.10
|
|
16
|
+
Classifier: Programming Language :: Python :: 3.11
|
|
17
|
+
Classifier: Programming Language :: Python :: 3.12
|
|
18
|
+
Classifier: Topic :: Software Development :: Libraries :: Application Frameworks
|
|
19
|
+
Classifier: Topic :: Software Development :: Build Tools
|
|
20
|
+
Requires-Python: >=3.10
|
|
21
|
+
Description-Content-Type: text/markdown
|
|
22
|
+
License-File: LICENSE
|
|
23
|
+
Requires-Dist: colorama>=0.4.6
|
|
24
|
+
Requires-Dist: pyfiglet>=1.0.4
|
|
25
|
+
Requires-Dist: readchar>=4.2.1
|
|
26
|
+
Requires-Dist: python-dotenv>=1.2.1
|
|
27
|
+
Requires-Dist: jinja2>=3.1.0
|
|
28
|
+
Provides-Extra: dev
|
|
29
|
+
Requires-Dist: pytest>=7.0.0; extra == "dev"
|
|
30
|
+
Requires-Dist: black>=24.0.0; extra == "dev"
|
|
31
|
+
Requires-Dist: isort>=6.0.0; extra == "dev"
|
|
32
|
+
Dynamic: license-file
|
|
33
|
+
|
|
34
|
+
# 🌌 [init-app](https://github.com/TechQuanta/init-app)
|
|
35
|
+
|
|
36
|
+
This is the "Source of Truth" document for your engine. I’ve designed this `COMMANDLINE.md` to look professional, high-tech, and crystal clear, exposing every feature from the **Architect** logic to the **Infrastructure Forge**.
|
|
37
|
+
|
|
38
|
+
---
|
|
39
|
+
<div align="center" >
|
|
40
|
+
<img width="750" height="350" alt="image" src="https://github.com/user-attachments/assets/7b78c8eb-c14d-4f97-aa2c-f3677b845132" />
|
|
41
|
+
</div>
|
|
42
|
+
<img width="500" height="221" alt="image" src="https://github.com/user-attachments/assets/a5977fc8-78c8-4226-902a-4511a7eb1fe2" /> <img width="500" height="221" alt="image" src="https://github.com/user-attachments/assets/cab5ba61-62e5-4407-ae42-2fd5dfc06b31" />
|
|
43
|
+
|
|
44
|
+
<img width="571" height="517" alt="image" src="https://github.com/user-attachments/assets/dc9a31af-6e72-4396-89bd-cd22940a49fe" /> <img width="400" height="236" alt="image" src="https://github.com/user-attachments/assets/6b7a6992-4172-4178-aa7d-961d2180181c" /> <img width="252" height="236" alt="image" src="https://github.com/user-attachments/assets/71d28576-42c7-4f3f-8c53-1599d8105e75" /> <img width="252" height="236" alt="image" src="https://github.com/user-attachments/assets/99fb4345-2e1d-4594-b7f6-96360542b260" /> <img width="252" height="236" alt="image" src="https://github.com/user-attachments/assets/4a1d5a74-fe58-4a92-b632-bed4fd3e3f2c" /> <img width="252" height="236" alt="image" src="https://github.com/user-attachments/assets/bef658ad-b15f-4a4a-9813-7040aae3015f" /> <img width="252" height="236" alt="image" src="https://github.com/user-attachments/assets/fa9e6caf-c76c-4cba-ae50-cc3cdd949365" />
|
|
45
|
+
|
|
46
|
+
|
|
47
|
+
|
|
48
|
+
|
|
49
|
+
|
|
50
|
+
|
|
51
|
+
**Version:** `1.2.0`
|
|
52
|
+
|
|
53
|
+
**Engineer:** `Ashmeet Singh`
|
|
54
|
+
|
|
55
|
+
This document outlines the full capabilities of the Project Engine. The engine supports two primary flows: **Interactive UI** (Menu-driven) and **Headless CLI** (Flag-driven).
|
|
56
|
+
|
|
57
|
+
---
|
|
58
|
+
|
|
59
|
+
## 🕹️ 1. Build Strategies
|
|
60
|
+
|
|
61
|
+
The engine behaves differently based on the `-t` (type) flag:
|
|
62
|
+
|
|
63
|
+
| Strategy | Behavior |
|
|
64
|
+
| --- | --- |
|
|
65
|
+
| `auto_config` | **Zero-Config.** Uses smart defaults for the chosen framework. Best for rapid prototyping. |
|
|
66
|
+
| `standard` | **The Balanced Build.** Generates common folder structures (routes, models, schemas). |
|
|
67
|
+
| `production` | **Enterprise Ready.** Includes full infrastructure suites (Docker, K8s) and strict folder separation. |
|
|
68
|
+
| `custom` | **Total Control.** Enables manual folder selection and individual `__init__.py` configuration. |
|
|
69
|
+
|
|
70
|
+
---
|
|
71
|
+
|
|
72
|
+
## 🛠️ 2. CLI Flag Reference
|
|
73
|
+
|
|
74
|
+
Use these flags to bypass menus and automate your workflow.
|
|
75
|
+
|
|
76
|
+
### Core Identity
|
|
77
|
+
|
|
78
|
+
* `name`: The name of your project folder.
|
|
79
|
+
* `-f, --framework`: `fastapi`, `flask`, `django`, `others`.
|
|
80
|
+
* `-s, --server`: Specify the runner (e.g., `uvicorn`, `gunicorn`, `hypercorn`).
|
|
81
|
+
* `-t, --type`: The build strategy (`auto_config`, `standard`, `production`, `custom`).
|
|
82
|
+
|
|
83
|
+
### Architecture & Packages (Custom Mode)
|
|
84
|
+
|
|
85
|
+
* `--folders`: Manually define every directory to be created.
|
|
86
|
+
* `--packages`: Define which of those folders should be Python packages (adds `__init__.py`).
|
|
87
|
+
|
|
88
|
+
### Data & Environment
|
|
89
|
+
|
|
90
|
+
* `--db`: Set the database engine (`sqlite`, `postgres`, `mysql`, `mongodb`).
|
|
91
|
+
* `--venv`: Enable virtual environment creation (`y` or `n`).
|
|
92
|
+
|
|
93
|
+
### Infrastructure Forge
|
|
94
|
+
|
|
95
|
+
* `--docker`: `dockerfile`, `docker-compose`, `.dockerignore`.
|
|
96
|
+
* `--github`: `main.yml`, `ci.yml`, `cd.yml`.
|
|
97
|
+
* `--k8s`: `deployment.yml`, `service.yml`, `ingress.yml`.
|
|
98
|
+
* `--jenkins`: `Jenkinsfile`.
|
|
99
|
+
|
|
100
|
+
---
|
|
101
|
+
|
|
102
|
+
## 🚀 3. Usage Examples
|
|
103
|
+
|
|
104
|
+
### A. The "Speed Demon" (Auto-Config)
|
|
105
|
+
|
|
106
|
+
Builds a FastAPI project with SQLite and a VENV instantly.
|
|
107
|
+
|
|
108
|
+
```bash
|
|
109
|
+
init-app quick_api -f fastapi -t auto_config --venv y
|
|
110
|
+
|
|
111
|
+
```
|
|
112
|
+
|
|
113
|
+
### B. The "Full Stack Pro" (Production)
|
|
114
|
+
|
|
115
|
+
Builds a Django + Postgres app with Docker and GitHub Actions.
|
|
116
|
+
|
|
117
|
+
```bash
|
|
118
|
+
init-app pro_backend -f django -t production --db postgres --docker dockerfile docker-compose --github main.yml
|
|
119
|
+
|
|
120
|
+
```
|
|
121
|
+
|
|
122
|
+
### C. The "Architect" (Deep Customization)
|
|
123
|
+
|
|
124
|
+
The most powerful command. Manually define folders and only make `src` and `app` Python packages.
|
|
125
|
+
|
|
126
|
+
```bash
|
|
127
|
+
init-app bespoke_engine -f fastapi -t custom \
|
|
128
|
+
--folders src app docs tests logs \
|
|
129
|
+
--packages src app \
|
|
130
|
+
--db mongodb --venv y
|
|
131
|
+
|
|
132
|
+
```
|
|
133
|
+
|
|
134
|
+
---
|
|
135
|
+
|
|
136
|
+
## 🧠 4. Internal Logic & Features
|
|
137
|
+
|
|
138
|
+
### 🐍 Selective Package Initialization
|
|
139
|
+
|
|
140
|
+
Unlike standard generators that put `__init__.py` everywhere, this engine uses an `init_strategy` map. It only converts a folder into a Python package if explicitly told to or if the framework requires it.
|
|
141
|
+
|
|
142
|
+
### 💉 Snippet Injection (Django)
|
|
143
|
+
|
|
144
|
+
When building Django, the engine performs "surgical" regex injections:
|
|
145
|
+
|
|
146
|
+
* **Settings Patching**: Automatically adds your App to `INSTALLED_APPS`.
|
|
147
|
+
* **Security Injection**: Moves `SECRET_KEY` to environment variable logic.
|
|
148
|
+
* **DRF Integration**: If DRF is detected, it injects the `REST_FRAMEWORK` configuration block automatically.
|
|
149
|
+
|
|
150
|
+
### 🛡️ UI Folder Guard
|
|
151
|
+
|
|
152
|
+
The engine contains a security layer that prevents any template rendering from writing into the `ui/` directory, protecting the engine's core interface assets during a project build.
|
|
153
|
+
|
|
154
|
+
---
|
|
155
|
+
|
|
156
|
+
## 🏗️ 5. Directory Structure Example (Production)
|
|
157
|
+
|
|
158
|
+
<img width="500" height="552" alt="image" src="https://github.com/user-attachments/assets/75f44825-f486-40df-9100-015be74d9877" />
|
|
159
|
+
|
|
160
|
+
<img width="400" height="452" alt="image" src="https://github.com/user-attachments/assets/7dfda372-7ecf-4b3b-9d88-765c4ddc04c7" />
|
|
161
|
+
|
|
162
|
+
|
|
163
|
+
# **Contributors are welcome to this to enhance the optimisation of this repository**
|
init_app-1.2.0/README.md
ADDED
|
@@ -0,0 +1,130 @@
|
|
|
1
|
+
# 🌌 [init-app](https://github.com/TechQuanta/init-app)
|
|
2
|
+
|
|
3
|
+
This is the "Source of Truth" document for your engine. I’ve designed this `COMMANDLINE.md` to look professional, high-tech, and crystal clear, exposing every feature from the **Architect** logic to the **Infrastructure Forge**.
|
|
4
|
+
|
|
5
|
+
---
|
|
6
|
+
<div align="center" >
|
|
7
|
+
<img width="750" height="350" alt="image" src="https://github.com/user-attachments/assets/7b78c8eb-c14d-4f97-aa2c-f3677b845132" />
|
|
8
|
+
</div>
|
|
9
|
+
<img width="500" height="221" alt="image" src="https://github.com/user-attachments/assets/a5977fc8-78c8-4226-902a-4511a7eb1fe2" /> <img width="500" height="221" alt="image" src="https://github.com/user-attachments/assets/cab5ba61-62e5-4407-ae42-2fd5dfc06b31" />
|
|
10
|
+
|
|
11
|
+
<img width="571" height="517" alt="image" src="https://github.com/user-attachments/assets/dc9a31af-6e72-4396-89bd-cd22940a49fe" /> <img width="400" height="236" alt="image" src="https://github.com/user-attachments/assets/6b7a6992-4172-4178-aa7d-961d2180181c" /> <img width="252" height="236" alt="image" src="https://github.com/user-attachments/assets/71d28576-42c7-4f3f-8c53-1599d8105e75" /> <img width="252" height="236" alt="image" src="https://github.com/user-attachments/assets/99fb4345-2e1d-4594-b7f6-96360542b260" /> <img width="252" height="236" alt="image" src="https://github.com/user-attachments/assets/4a1d5a74-fe58-4a92-b632-bed4fd3e3f2c" /> <img width="252" height="236" alt="image" src="https://github.com/user-attachments/assets/bef658ad-b15f-4a4a-9813-7040aae3015f" /> <img width="252" height="236" alt="image" src="https://github.com/user-attachments/assets/fa9e6caf-c76c-4cba-ae50-cc3cdd949365" />
|
|
12
|
+
|
|
13
|
+
|
|
14
|
+
|
|
15
|
+
|
|
16
|
+
|
|
17
|
+
|
|
18
|
+
**Version:** `1.2.0`
|
|
19
|
+
|
|
20
|
+
**Engineer:** `Ashmeet Singh`
|
|
21
|
+
|
|
22
|
+
This document outlines the full capabilities of the Project Engine. The engine supports two primary flows: **Interactive UI** (Menu-driven) and **Headless CLI** (Flag-driven).
|
|
23
|
+
|
|
24
|
+
---
|
|
25
|
+
|
|
26
|
+
## 🕹️ 1. Build Strategies
|
|
27
|
+
|
|
28
|
+
The engine behaves differently based on the `-t` (type) flag:
|
|
29
|
+
|
|
30
|
+
| Strategy | Behavior |
|
|
31
|
+
| --- | --- |
|
|
32
|
+
| `auto_config` | **Zero-Config.** Uses smart defaults for the chosen framework. Best for rapid prototyping. |
|
|
33
|
+
| `standard` | **The Balanced Build.** Generates common folder structures (routes, models, schemas). |
|
|
34
|
+
| `production` | **Enterprise Ready.** Includes full infrastructure suites (Docker, K8s) and strict folder separation. |
|
|
35
|
+
| `custom` | **Total Control.** Enables manual folder selection and individual `__init__.py` configuration. |
|
|
36
|
+
|
|
37
|
+
---
|
|
38
|
+
|
|
39
|
+
## 🛠️ 2. CLI Flag Reference
|
|
40
|
+
|
|
41
|
+
Use these flags to bypass menus and automate your workflow.
|
|
42
|
+
|
|
43
|
+
### Core Identity
|
|
44
|
+
|
|
45
|
+
* `name`: The name of your project folder.
|
|
46
|
+
* `-f, --framework`: `fastapi`, `flask`, `django`, `others`.
|
|
47
|
+
* `-s, --server`: Specify the runner (e.g., `uvicorn`, `gunicorn`, `hypercorn`).
|
|
48
|
+
* `-t, --type`: The build strategy (`auto_config`, `standard`, `production`, `custom`).
|
|
49
|
+
|
|
50
|
+
### Architecture & Packages (Custom Mode)
|
|
51
|
+
|
|
52
|
+
* `--folders`: Manually define every directory to be created.
|
|
53
|
+
* `--packages`: Define which of those folders should be Python packages (adds `__init__.py`).
|
|
54
|
+
|
|
55
|
+
### Data & Environment
|
|
56
|
+
|
|
57
|
+
* `--db`: Set the database engine (`sqlite`, `postgres`, `mysql`, `mongodb`).
|
|
58
|
+
* `--venv`: Enable virtual environment creation (`y` or `n`).
|
|
59
|
+
|
|
60
|
+
### Infrastructure Forge
|
|
61
|
+
|
|
62
|
+
* `--docker`: `dockerfile`, `docker-compose`, `.dockerignore`.
|
|
63
|
+
* `--github`: `main.yml`, `ci.yml`, `cd.yml`.
|
|
64
|
+
* `--k8s`: `deployment.yml`, `service.yml`, `ingress.yml`.
|
|
65
|
+
* `--jenkins`: `Jenkinsfile`.
|
|
66
|
+
|
|
67
|
+
---
|
|
68
|
+
|
|
69
|
+
## 🚀 3. Usage Examples
|
|
70
|
+
|
|
71
|
+
### A. The "Speed Demon" (Auto-Config)
|
|
72
|
+
|
|
73
|
+
Builds a FastAPI project with SQLite and a VENV instantly.
|
|
74
|
+
|
|
75
|
+
```bash
|
|
76
|
+
init-app quick_api -f fastapi -t auto_config --venv y
|
|
77
|
+
|
|
78
|
+
```
|
|
79
|
+
|
|
80
|
+
### B. The "Full Stack Pro" (Production)
|
|
81
|
+
|
|
82
|
+
Builds a Django + Postgres app with Docker and GitHub Actions.
|
|
83
|
+
|
|
84
|
+
```bash
|
|
85
|
+
init-app pro_backend -f django -t production --db postgres --docker dockerfile docker-compose --github main.yml
|
|
86
|
+
|
|
87
|
+
```
|
|
88
|
+
|
|
89
|
+
### C. The "Architect" (Deep Customization)
|
|
90
|
+
|
|
91
|
+
The most powerful command. Manually define folders and only make `src` and `app` Python packages.
|
|
92
|
+
|
|
93
|
+
```bash
|
|
94
|
+
init-app bespoke_engine -f fastapi -t custom \
|
|
95
|
+
--folders src app docs tests logs \
|
|
96
|
+
--packages src app \
|
|
97
|
+
--db mongodb --venv y
|
|
98
|
+
|
|
99
|
+
```
|
|
100
|
+
|
|
101
|
+
---
|
|
102
|
+
|
|
103
|
+
## 🧠 4. Internal Logic & Features
|
|
104
|
+
|
|
105
|
+
### 🐍 Selective Package Initialization
|
|
106
|
+
|
|
107
|
+
Unlike standard generators that put `__init__.py` everywhere, this engine uses an `init_strategy` map. It only converts a folder into a Python package if explicitly told to or if the framework requires it.
|
|
108
|
+
|
|
109
|
+
### 💉 Snippet Injection (Django)
|
|
110
|
+
|
|
111
|
+
When building Django, the engine performs "surgical" regex injections:
|
|
112
|
+
|
|
113
|
+
* **Settings Patching**: Automatically adds your App to `INSTALLED_APPS`.
|
|
114
|
+
* **Security Injection**: Moves `SECRET_KEY` to environment variable logic.
|
|
115
|
+
* **DRF Integration**: If DRF is detected, it injects the `REST_FRAMEWORK` configuration block automatically.
|
|
116
|
+
|
|
117
|
+
### 🛡️ UI Folder Guard
|
|
118
|
+
|
|
119
|
+
The engine contains a security layer that prevents any template rendering from writing into the `ui/` directory, protecting the engine's core interface assets during a project build.
|
|
120
|
+
|
|
121
|
+
---
|
|
122
|
+
|
|
123
|
+
## 🏗️ 5. Directory Structure Example (Production)
|
|
124
|
+
|
|
125
|
+
<img width="500" height="552" alt="image" src="https://github.com/user-attachments/assets/75f44825-f486-40df-9100-015be74d9877" />
|
|
126
|
+
|
|
127
|
+
<img width="400" height="452" alt="image" src="https://github.com/user-attachments/assets/7dfda372-7ecf-4b3b-9d88-765c4ddc04c7" />
|
|
128
|
+
|
|
129
|
+
|
|
130
|
+
# **Contributors are welcome to this to enhance the optimisation of this repository**
|
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
# create_app/__init__.py
|
|
2
|
+
|
|
3
|
+
from create_app.constants import (
|
|
4
|
+
__version__,
|
|
5
|
+
APP_NAME,
|
|
6
|
+
APP_TAGLINE,
|
|
7
|
+
FRAMEWORKS,
|
|
8
|
+
OTHERS_PROJECT_TYPES,
|
|
9
|
+
PROJECT_MODES,
|
|
10
|
+
DESCRIPTIONS,
|
|
11
|
+
DB_ENGINES,
|
|
12
|
+
DB_STRUCTURE,
|
|
13
|
+
ORM_MAPPING,
|
|
14
|
+
SERVER_OPTIONS,
|
|
15
|
+
FRAMEWORK_SERVER_MAPPING,
|
|
16
|
+
DEFAULT_PORTS,
|
|
17
|
+
JENKINS_SUITE,
|
|
18
|
+
DOCKER_SUITE,
|
|
19
|
+
K8S_FILES,
|
|
20
|
+
GITHUB_SUITE,
|
|
21
|
+
RAG_LAYERS,
|
|
22
|
+
DATA_LAYERS,
|
|
23
|
+
ALL_CUSTOM_FOLDERS,
|
|
24
|
+
GLOBAL_DEFAULTS,
|
|
25
|
+
COMMUNITY_CORE,
|
|
26
|
+
PACKAGE_FILES,
|
|
27
|
+
UI_MAPPING,
|
|
28
|
+
)
|
|
29
|
+
|
|
30
|
+
__all__ = [
|
|
31
|
+
"__version__",
|
|
32
|
+
"APP_NAME",
|
|
33
|
+
"APP_TAGLINE",
|
|
34
|
+
"FRAMEWORKS",
|
|
35
|
+
"OTHERS_PROJECT_TYPES",
|
|
36
|
+
"PROJECT_MODES",
|
|
37
|
+
"DESCRIPTIONS",
|
|
38
|
+
"DB_ENGINES",
|
|
39
|
+
"DB_STRUCTURE",
|
|
40
|
+
"ORM_MAPPING",
|
|
41
|
+
"SERVER_OPTIONS",
|
|
42
|
+
"FRAMEWORK_SERVER_MAPPING",
|
|
43
|
+
"DEFAULT_PORTS",
|
|
44
|
+
"JENKINS_SUITE",
|
|
45
|
+
"DOCKER_SUITE",
|
|
46
|
+
"K8S_FILES",
|
|
47
|
+
"GITHUB_SUITE",
|
|
48
|
+
"RAG_LAYERS",
|
|
49
|
+
"DATA_LAYERS",
|
|
50
|
+
"ALL_CUSTOM_FOLDERS",
|
|
51
|
+
"GLOBAL_DEFAULTS",
|
|
52
|
+
"COMMUNITY_CORE",
|
|
53
|
+
"PACKAGE_FILES",
|
|
54
|
+
"UI_MAPPING",
|
|
55
|
+
]
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* 🚀 {{ project_name | capitalize }} Interaction System
|
|
3
|
+
* Generated by {{ APP_NAME }}
|
|
4
|
+
*/
|
|
5
|
+
|
|
6
|
+
console.log("🚀 {{ project_name }} UI Engine loaded");
|
|
7
|
+
|
|
8
|
+
document.addEventListener('DOMContentLoaded', () => {
|
|
9
|
+
// 1. Initial Page Load Animation
|
|
10
|
+
document.body.classList.add("loaded");
|
|
11
|
+
|
|
12
|
+
// 2. Theme Orchestration
|
|
13
|
+
const themeToggle = document.getElementById('theme-toggle');
|
|
14
|
+
const storageKey = '{{ project_name | lower }}-theme';
|
|
15
|
+
|
|
16
|
+
if (themeToggle) {
|
|
17
|
+
themeToggle.addEventListener('click', () => {
|
|
18
|
+
// Get current state from the <html> attribute
|
|
19
|
+
const currentTheme = document.documentElement.getAttribute('data-theme');
|
|
20
|
+
|
|
21
|
+
// Toggle logic
|
|
22
|
+
const newTheme = currentTheme === 'dark' ? 'light' : 'dark';
|
|
23
|
+
|
|
24
|
+
// Apply to DOM
|
|
25
|
+
document.documentElement.setAttribute('data-theme', newTheme);
|
|
26
|
+
|
|
27
|
+
// Persist preference
|
|
28
|
+
localStorage.setItem(storageKey, newTheme);
|
|
29
|
+
|
|
30
|
+
// Log with Framework-specific style
|
|
31
|
+
const accentColor = getComputedStyle(document.body).getPropertyValue('--accent').trim();
|
|
32
|
+
console.log(
|
|
33
|
+
`%c {{ project_name | upper }} %c ${newTheme.toUpperCase()} MODE `,
|
|
34
|
+
`background: ${accentColor}; color: #fff; font-weight: bold; border-radius: 3px 0 0 3px;`,
|
|
35
|
+
`background: #222; color: ${accentColor}; font-weight: bold; border-radius: 0 3px 3px 0;`
|
|
36
|
+
);
|
|
37
|
+
});
|
|
38
|
+
}
|
|
39
|
+
|
|
40
|
+
// 3. Handle Framework Specific Tooltips or Effects
|
|
41
|
+
const framework = "{{ framework }}";
|
|
42
|
+
if (framework === 'fastapi') {
|
|
43
|
+
console.log("⚡ Async Engine: FastAPI detected");
|
|
44
|
+
}
|
|
45
|
+
});
|
|
@@ -0,0 +1,152 @@
|
|
|
1
|
+
"""
|
|
2
|
+
UNIFIED ARCHITECTURAL CONSTANTS (v0.6.1)
|
|
3
|
+
Project: init-app Engine
|
|
4
|
+
Focus: Base, RAG AI, Data Engineering, and Enterprise DevOps.
|
|
5
|
+
Standardization: Atomic Base-IDs for High-Performance Routing.
|
|
6
|
+
"""
|
|
7
|
+
|
|
8
|
+
__version__ = "1.2.0"
|
|
9
|
+
|
|
10
|
+
# --- 1. BRANDING & IDENTITY ---
|
|
11
|
+
APP_NAME = "init-app"
|
|
12
|
+
APP_TAGLINE = "High-Performance System & Native Extension Generator"
|
|
13
|
+
|
|
14
|
+
# --- 2. CORE ENGINE BLUEPRINTS (Base Slugs) ---
|
|
15
|
+
FRAMEWORKS = [
|
|
16
|
+
"fastapi", "flask", "django", "bottle",
|
|
17
|
+
"sanic", "falcon", "tornado", "pyramid", "others"
|
|
18
|
+
]
|
|
19
|
+
|
|
20
|
+
OTHERS_PROJECT_TYPES = [
|
|
21
|
+
"base",
|
|
22
|
+
"hp_cli",
|
|
23
|
+
"data_pipeline",
|
|
24
|
+
"dbt_analytics",
|
|
25
|
+
"mlops_core",
|
|
26
|
+
"rag_ai"
|
|
27
|
+
]
|
|
28
|
+
|
|
29
|
+
PROJECT_MODES = ["standard", "production", "auto_config", "custom"]
|
|
30
|
+
|
|
31
|
+
# --- 3. INTELLIGENT DESCRIPTIONS (Mapping Base to Display) ---
|
|
32
|
+
DESCRIPTIONS = {
|
|
33
|
+
# Base Slugs : Display Description
|
|
34
|
+
"fastapi": "High-performance Async API with OpenAPI support.",
|
|
35
|
+
"flask": "Flexible and lightweight WSGI micro-framework.",
|
|
36
|
+
"django": "Feature-rich 'batteries-included' web framework.",
|
|
37
|
+
"bottle": "Ultra-lightweight single-file WSGI micro-framework.",
|
|
38
|
+
"sanic": "Next-gen Async Python web server & framework.",
|
|
39
|
+
"falcon": "Minimalist ASGI/WSGI framework for high-performance APIs.",
|
|
40
|
+
"tornado": "Asynchronous networking library and web framework.",
|
|
41
|
+
"pyramid": "Small, fast, down-to-earth Python web framework.",
|
|
42
|
+
"others": "Specialized Python system and data engineering engines.",
|
|
43
|
+
|
|
44
|
+
# Specialized Base Engines
|
|
45
|
+
"base": "Python Base Project",
|
|
46
|
+
"rag_ai": "LLM-powered Retrieval Augmented Generation engine.",
|
|
47
|
+
"mlops_core": "Machine Learning lifecycle and model serving core.",
|
|
48
|
+
"hp_cli": "Optimized Command Line Interface with Click/Typer.",
|
|
49
|
+
"data_pipeline": "Workflow orchestration for complex data task graphs.",
|
|
50
|
+
"dbt_analytics": "Data transformation and documentation for SQL warehouses.",
|
|
51
|
+
|
|
52
|
+
# Architectural Base Modes
|
|
53
|
+
"standard": "Clean architecture with basic configuration layers.",
|
|
54
|
+
"production": "Enterprise-ready setup with Docker, K8s, and Jenkins folders.",
|
|
55
|
+
"auto_config": "One-click deployment using optimized system defaults.",
|
|
56
|
+
"custom": "Full manual control over architectural components.",
|
|
57
|
+
|
|
58
|
+
# Data & Storage
|
|
59
|
+
"postgresql": "Robust, production-grade relational database.",
|
|
60
|
+
"sqlite": "Portable, serverless file-based database.",
|
|
61
|
+
"mongodb": "NoSQL document store for flexible data schemas."
|
|
62
|
+
}
|
|
63
|
+
|
|
64
|
+
# --- 4. DATA NEXUS & ORM SUITE ---
|
|
65
|
+
DB_ENGINES = ["postgresql", "mysql", "sqlite", "mongodb", "none"]
|
|
66
|
+
|
|
67
|
+
DB_STRUCTURE = [
|
|
68
|
+
"db/migrations", "db/seeds", "db/schemas", "db/scripts"
|
|
69
|
+
]
|
|
70
|
+
|
|
71
|
+
ORM_MAPPING = {
|
|
72
|
+
"fastapi": ["sqlalchemy", "tortoise_orm", "beanie"],
|
|
73
|
+
"flask": ["flask_sqlalchemy", "mongoengine"],
|
|
74
|
+
"django": ["django_orm"],
|
|
75
|
+
"others": ["sqlalchemy", "peewee", "na"]
|
|
76
|
+
}
|
|
77
|
+
|
|
78
|
+
# --- 5. RUNTIME & SERVER ORCHESTRATION ---
|
|
79
|
+
SERVER_OPTIONS = ["uvicorn", "gunicorn", "waitress", "gevent", "wsgiref", "na"]
|
|
80
|
+
|
|
81
|
+
FRAMEWORK_SERVER_MAPPING = {
|
|
82
|
+
"fastapi": ["uvicorn", "gunicorn"],
|
|
83
|
+
"flask": ["gunicorn", "waitress", "gevent", "wsgiref", "na"],
|
|
84
|
+
"django": ["gunicorn", "waitress", "wsgiref"],
|
|
85
|
+
"bottle": ["waitress", "gevent", "wsgiref", "na"],
|
|
86
|
+
"sanic": ["na"],
|
|
87
|
+
"falcon": ["gunicorn", "waitress", "wsgiref"],
|
|
88
|
+
"tornado": ["na"],
|
|
89
|
+
"pyramid": ["waitress", "gunicorn", "wsgiref"],
|
|
90
|
+
"others": ["na"]
|
|
91
|
+
}
|
|
92
|
+
|
|
93
|
+
DEFAULT_PORTS = {
|
|
94
|
+
"fastapi": "8000", "flask": "5000", "django": "8000",
|
|
95
|
+
"bottle": "8080", "sanic": "8000", "falcon": "8000",
|
|
96
|
+
"tornado": "8888", "pyramid": "6543", "others": "na"
|
|
97
|
+
}
|
|
98
|
+
|
|
99
|
+
# --- 6. DEVOPS & CI/CD SUITES ---
|
|
100
|
+
JENKINS_SUITE = [
|
|
101
|
+
"jenkins/Jenkinsfile",
|
|
102
|
+
"jenkins/pipelines/build.groovy",
|
|
103
|
+
"jenkins/pipelines/deploy.groovy",
|
|
104
|
+
"jenkins/scripts/notify.sh"
|
|
105
|
+
]
|
|
106
|
+
|
|
107
|
+
DOCKER_SUITE = [
|
|
108
|
+
"docker/Dockerfile",
|
|
109
|
+
"docker/docker-compose.yml",
|
|
110
|
+
"docker/docker-compose.prod.yml",
|
|
111
|
+
"docker/.dockerignore",
|
|
112
|
+
"docker/DOCKER.md"
|
|
113
|
+
]
|
|
114
|
+
|
|
115
|
+
K8S_FILES = [
|
|
116
|
+
"k8s/deployment.yml", "k8s/service.yml", "k8s/ingress.yml",
|
|
117
|
+
"k8s/hpa.yml", "k8s/pvc.yml", "k8s/configmap.yml", "k8s/secret.yml"
|
|
118
|
+
]
|
|
119
|
+
|
|
120
|
+
GITHUB_SUITE = [
|
|
121
|
+
".github/workflows/ci.yml", ".github/workflows/security.yml",
|
|
122
|
+
".github/ISSUE_TEMPLATE/bug_report.md", ".github/ISSUE_TEMPLATE/feature_request.md",
|
|
123
|
+
".github/PULL_REQUEST_TEMPLATE.md"
|
|
124
|
+
]
|
|
125
|
+
|
|
126
|
+
# --- 7. ARCHITECTURAL LAYERS ---
|
|
127
|
+
RAG_LAYERS = ["vectordb", "embeddings", "knowledge", "prompts", "retrievers", "chains"]
|
|
128
|
+
DATA_LAYERS = ["dags", "transformers", "staging", "analysis", "artifacts"]
|
|
129
|
+
|
|
130
|
+
ALL_CUSTOM_FOLDERS = [
|
|
131
|
+
"config", "routes", "services", "models", "schemas", "middleware", "utils",
|
|
132
|
+
"templates", "static", "assets", "logs", "tests", "docs", "scripts",
|
|
133
|
+
"src", "include", "k8s", ".github", "db", "docker", "jenkins"
|
|
134
|
+
] + RAG_LAYERS + DATA_LAYERS
|
|
135
|
+
|
|
136
|
+
# --- 8. SYSTEM DEFAULTS & ASSETS ---
|
|
137
|
+
GLOBAL_DEFAULTS = [
|
|
138
|
+
".env.example", "Makefile", "README.md", ".gitignore", ".editorconfig", "alembic.ini"
|
|
139
|
+
]
|
|
140
|
+
|
|
141
|
+
COMMUNITY_CORE = [
|
|
142
|
+
"CONTRIBUTING.md", "CODE_OF_CONDUCT.md", "SECURITY.md", "CHANGELOG.md"
|
|
143
|
+
]
|
|
144
|
+
|
|
145
|
+
PACKAGE_FILES = [
|
|
146
|
+
"MANIFEST.in", "setup.py", "pyproject.toml", "requirements.txt", "package.json"
|
|
147
|
+
]
|
|
148
|
+
|
|
149
|
+
UI_MAPPING = {
|
|
150
|
+
"bottle": "views", "flask": "templates", "fastapi": "templates",
|
|
151
|
+
"django": "templates", "others": "assets"
|
|
152
|
+
}
|