django-cfg 1.4.7__py3-none-any.whl → 1.4.8__py3-none-any.whl
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.
- django_cfg/cli/commands/create_project.py +30 -19
- django_cfg/pyproject.toml +1 -1
- {django_cfg-1.4.7.dist-info → django_cfg-1.4.8.dist-info}/METADATA +1 -1
- {django_cfg-1.4.7.dist-info → django_cfg-1.4.8.dist-info}/RECORD +7 -7
- {django_cfg-1.4.7.dist-info → django_cfg-1.4.8.dist-info}/WHEEL +0 -0
- {django_cfg-1.4.7.dist-info → django_cfg-1.4.8.dist-info}/entry_points.txt +0 -0
- {django_cfg-1.4.7.dist-info → django_cfg-1.4.8.dist-info}/licenses/LICENSE +0 -0
@@ -63,27 +63,31 @@ def extract_template(archive_path: Path, target_path: Path) -> None:
|
|
63
63
|
if not root_folder:
|
64
64
|
raise ValueError("Archive structure is invalid")
|
65
65
|
|
66
|
-
# Path to
|
67
|
-
|
66
|
+
# Path to examples directory: django-cfg-main/examples/
|
67
|
+
examples_prefix = f"{root_folder}/examples/"
|
68
68
|
|
69
|
-
# Extract
|
69
|
+
# Extract files from examples/ folder (preserving django/ and docker/ subdirectories)
|
70
70
|
extracted_files = 0
|
71
71
|
for member in members:
|
72
|
-
# Skip if not in
|
73
|
-
if not member.startswith(
|
72
|
+
# Skip if not in examples path
|
73
|
+
if not member.startswith(examples_prefix):
|
74
74
|
continue
|
75
75
|
|
76
|
-
#
|
77
|
-
|
78
|
-
continue
|
79
|
-
|
80
|
-
# Calculate relative path (remove template_prefix)
|
81
|
-
relative_path = member[len(template_prefix):]
|
76
|
+
# Calculate relative path (remove examples_prefix, keep django/ and docker/)
|
77
|
+
relative_path = member[len(examples_prefix):]
|
82
78
|
|
83
79
|
# Skip empty paths (directory markers)
|
84
80
|
if not relative_path:
|
85
81
|
continue
|
86
82
|
|
83
|
+
# Skip docker volumes directory
|
84
|
+
if relative_path.startswith("docker/volumes/"):
|
85
|
+
continue
|
86
|
+
|
87
|
+
# Skip .gitignore files
|
88
|
+
if relative_path.endswith(".gitignore"):
|
89
|
+
continue
|
90
|
+
|
87
91
|
# Target file path
|
88
92
|
target_file = target_path / relative_path
|
89
93
|
|
@@ -142,16 +146,20 @@ def create_project(path: str, force: bool):
|
|
142
146
|
django-cfg create-project --force
|
143
147
|
"""
|
144
148
|
|
145
|
-
# Determine
|
146
|
-
|
149
|
+
# Determine parent path and project folder name
|
150
|
+
parent_path = Path(path).resolve()
|
147
151
|
|
148
|
-
#
|
149
|
-
|
152
|
+
# Create django-project folder inside the specified path
|
153
|
+
target_path = parent_path / "django-project"
|
154
|
+
|
155
|
+
# Check if django-project directory already exists
|
156
|
+
if target_path.exists():
|
150
157
|
if not force:
|
151
|
-
click.echo(f"❌ Directory '{target_path}'
|
158
|
+
click.echo(f"❌ Directory '{target_path}' already exists. Use --force to overwrite.", err=True)
|
152
159
|
return
|
153
160
|
else:
|
154
|
-
click.echo(f"⚠️ Directory
|
161
|
+
click.echo(f"⚠️ Directory '{target_path}' exists and will be overwritten...")
|
162
|
+
shutil.rmtree(target_path)
|
155
163
|
|
156
164
|
temp_archive = None
|
157
165
|
|
@@ -176,12 +184,15 @@ def create_project(path: str, force: bool):
|
|
176
184
|
# Show next steps
|
177
185
|
click.echo()
|
178
186
|
click.echo("📋 Next steps:")
|
179
|
-
|
180
|
-
click.echo(f" cd {target_path}")
|
187
|
+
click.echo(f" cd {target_path}/django")
|
181
188
|
click.echo(" poetry install # or: pip install -r requirements.txt")
|
182
189
|
click.echo(" python manage.py migrate")
|
183
190
|
click.echo(" python manage.py createsuperuser")
|
184
191
|
click.echo(" python manage.py runserver")
|
192
|
+
click.echo()
|
193
|
+
click.echo("🐳 Docker deployment:")
|
194
|
+
click.echo(f" cd {target_path}/docker")
|
195
|
+
click.echo(" docker-compose up -d")
|
185
196
|
|
186
197
|
click.echo()
|
187
198
|
click.echo("💡 Features included:")
|
django_cfg/pyproject.toml
CHANGED
@@ -4,7 +4,7 @@ build-backend = "hatchling.build"
|
|
4
4
|
|
5
5
|
[project]
|
6
6
|
name = "django-cfg"
|
7
|
-
version = "1.4.
|
7
|
+
version = "1.4.8"
|
8
8
|
description = "Django AI framework with built-in agents, type-safe Pydantic v2 configuration, and 8 enterprise apps. Replace settings.py, validate at startup, 90% less code. Production-ready AI workflows for Django."
|
9
9
|
readme = "README.md"
|
10
10
|
keywords = [ "django", "configuration", "pydantic", "settings", "type-safety", "pydantic-settings", "django-environ", "startup-validation", "ide-autocomplete", "ai-agents", "enterprise-django", "django-settings", "type-safe-config",]
|
@@ -1,6 +1,6 @@
|
|
1
1
|
Metadata-Version: 2.4
|
2
2
|
Name: django-cfg
|
3
|
-
Version: 1.4.
|
3
|
+
Version: 1.4.8
|
4
4
|
Summary: Django AI framework with built-in agents, type-safe Pydantic v2 configuration, and 8 enterprise apps. Replace settings.py, validate at startup, 90% less code. Production-ready AI workflows for Django.
|
5
5
|
Project-URL: Homepage, https://djangocfg.com
|
6
6
|
Project-URL: Documentation, https://djangocfg.com
|
@@ -544,7 +544,7 @@ django_cfg/cli/__init__.py,sha256=i3ksFngCqZCBvaimQcBD1P2_gr5PiM--4efLScCjvvU,15
|
|
544
544
|
django_cfg/cli/main.py,sha256=GOmMubPoMpcA0XcRJn4VG2cX9tuhE0i_ioy_d3ujzRQ,883
|
545
545
|
django_cfg/cli/utils.py,sha256=YGXWw7MjX-zAUDKrbJ4q_sxH54at2Oqhrcm7udVozU4,5810
|
546
546
|
django_cfg/cli/commands/__init__.py,sha256=EKLXDAx-QttnGmdjsmVANAfhxWplxl2V_2I0SZaJOoI,98
|
547
|
-
django_cfg/cli/commands/create_project.py,sha256=
|
547
|
+
django_cfg/cli/commands/create_project.py,sha256=A1LImURJY6GUq5PUM3L0vCgBsPFLYJE8-M91tkrptQg,7578
|
548
548
|
django_cfg/cli/commands/info.py,sha256=AaLbFFOjHwqiIzZChPxfD3ASZZs1IAD-0RJQaLo2PC0,4925
|
549
549
|
django_cfg/core/__init__.py,sha256=Gooxx3nhVT53LcCF_nburLh1r2ZC3iFv9Bf4wiVK6dI,1784
|
550
550
|
django_cfg/core/config.py,sha256=CWYqlXONdyLE71OSVMg_Htglsa9tTzankMrm_1PhnOo,679
|
@@ -950,9 +950,9 @@ django_cfg/utils/version_check.py,sha256=jI4v3YMdQriUEeb_TvRl511sDghy6I75iKRDUaN
|
|
950
950
|
django_cfg/CHANGELOG.md,sha256=jtT3EprqEJkqSUh7IraP73vQ8PmKUMdRtznQsEnqDZk,2052
|
951
951
|
django_cfg/CONTRIBUTING.md,sha256=DU2kyQ6PU0Z24ob7O_OqKWEYHcZmJDgzw-lQCmu6uBg,3041
|
952
952
|
django_cfg/LICENSE,sha256=xHuytiUkSZCRG3N11nk1X6q1_EGQtv6aL5O9cqNRhKE,1071
|
953
|
-
django_cfg/pyproject.toml,sha256=
|
954
|
-
django_cfg-1.4.
|
955
|
-
django_cfg-1.4.
|
956
|
-
django_cfg-1.4.
|
957
|
-
django_cfg-1.4.
|
958
|
-
django_cfg-1.4.
|
953
|
+
django_cfg/pyproject.toml,sha256=uWYBJ80rrhJ9oyJnQboOMe-WSoTd8D1Es1AbNCaY3Gw,8329
|
954
|
+
django_cfg-1.4.8.dist-info/METADATA,sha256=gW5wIlTOK9GnPUWX8PVC5SI9kdii5DXizX4HReJwI4o,22542
|
955
|
+
django_cfg-1.4.8.dist-info/WHEEL,sha256=qtCwoSJWgHk21S1Kb4ihdzI2rlJ1ZKaIurTj_ngOhyQ,87
|
956
|
+
django_cfg-1.4.8.dist-info/entry_points.txt,sha256=Ucmde4Z2wEzgb4AggxxZ0zaYDb9HpyE5blM3uJ0_VNg,56
|
957
|
+
django_cfg-1.4.8.dist-info/licenses/LICENSE,sha256=xHuytiUkSZCRG3N11nk1X6q1_EGQtv6aL5O9cqNRhKE,1071
|
958
|
+
django_cfg-1.4.8.dist-info/RECORD,,
|
File without changes
|
File without changes
|
File without changes
|