voodoo-framework 1.0.2__tar.gz → 1.0.3__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (31) hide show
  1. {voodoo_framework-1.0.2 → voodoo_framework-1.0.3}/PKG-INFO +1 -1
  2. {voodoo_framework-1.0.2 → voodoo_framework-1.0.3}/pyproject.toml +1 -1
  3. {voodoo_framework-1.0.2 → voodoo_framework-1.0.3}/voodoo/cli.py +30 -1
  4. {voodoo_framework-1.0.2 → voodoo_framework-1.0.3}/voodoo_framework.egg-info/PKG-INFO +1 -1
  5. {voodoo_framework-1.0.2 → voodoo_framework-1.0.3}/README.md +0 -0
  6. {voodoo_framework-1.0.2 → voodoo_framework-1.0.3}/setup.cfg +0 -0
  7. {voodoo_framework-1.0.2 → voodoo_framework-1.0.3}/tests/test_components.py +0 -0
  8. {voodoo_framework-1.0.2 → voodoo_framework-1.0.3}/tests/test_data.py +0 -0
  9. {voodoo_framework-1.0.2 → voodoo_framework-1.0.3}/tests/test_i18n.py +0 -0
  10. {voodoo_framework-1.0.2 → voodoo_framework-1.0.3}/tests/test_queue.py +0 -0
  11. {voodoo_framework-1.0.2 → voodoo_framework-1.0.3}/tests/test_theme.py +0 -0
  12. {voodoo_framework-1.0.2 → voodoo_framework-1.0.3}/tests/test_websocket.py +0 -0
  13. {voodoo_framework-1.0.2 → voodoo_framework-1.0.3}/voodoo/__init__.py +0 -0
  14. {voodoo_framework-1.0.2 → voodoo_framework-1.0.3}/voodoo/agent.py +0 -0
  15. {voodoo_framework-1.0.2 → voodoo_framework-1.0.3}/voodoo/api.py +0 -0
  16. {voodoo_framework-1.0.2 → voodoo_framework-1.0.3}/voodoo/components.py +0 -0
  17. {voodoo_framework-1.0.2 → voodoo_framework-1.0.3}/voodoo/config.py +0 -0
  18. {voodoo_framework-1.0.2 → voodoo_framework-1.0.3}/voodoo/core.py +0 -0
  19. {voodoo_framework-1.0.2 → voodoo_framework-1.0.3}/voodoo/data.py +0 -0
  20. {voodoo_framework-1.0.2 → voodoo_framework-1.0.3}/voodoo/i18n.py +0 -0
  21. {voodoo_framework-1.0.2 → voodoo_framework-1.0.3}/voodoo/mcp.py +0 -0
  22. {voodoo_framework-1.0.2 → voodoo_framework-1.0.3}/voodoo/queue.py +0 -0
  23. {voodoo_framework-1.0.2 → voodoo_framework-1.0.3}/voodoo/status.py +0 -0
  24. {voodoo_framework-1.0.2 → voodoo_framework-1.0.3}/voodoo/storage.py +0 -0
  25. {voodoo_framework-1.0.2 → voodoo_framework-1.0.3}/voodoo/telemetry.py +0 -0
  26. {voodoo_framework-1.0.2 → voodoo_framework-1.0.3}/voodoo/theme.py +0 -0
  27. {voodoo_framework-1.0.2 → voodoo_framework-1.0.3}/voodoo_framework.egg-info/SOURCES.txt +0 -0
  28. {voodoo_framework-1.0.2 → voodoo_framework-1.0.3}/voodoo_framework.egg-info/dependency_links.txt +0 -0
  29. {voodoo_framework-1.0.2 → voodoo_framework-1.0.3}/voodoo_framework.egg-info/entry_points.txt +0 -0
  30. {voodoo_framework-1.0.2 → voodoo_framework-1.0.3}/voodoo_framework.egg-info/requires.txt +0 -0
  31. {voodoo_framework-1.0.2 → voodoo_framework-1.0.3}/voodoo_framework.egg-info/top_level.txt +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: voodoo-framework
3
- Version: 1.0.2
3
+ Version: 1.0.3
4
4
  Summary: Voodoo Framework
5
5
  Requires-Python: >=3.12
6
6
  Requires-Dist: starlette
@@ -4,7 +4,7 @@ build-backend = "setuptools.build_meta"
4
4
 
5
5
  [project]
6
6
  name = "voodoo-framework"
7
- version = "1.0.2"
7
+ version = "1.0.3"
8
8
  description = "Voodoo Framework"
9
9
  requires-python = ">=3.12"
10
10
  dependencies = [
@@ -141,6 +141,26 @@ app = create_app()
141
141
  if __name__ == "__main__":
142
142
  uvicorn.run("main:app", host=config.host, port=config.port, reload=True, ws_max_size=16777216, ws_max_queue=32)
143
143
  """)
144
+
145
+ # Set up local virtual environment and install dependencies
146
+ if (project_dir / "pyproject.toml").exists():
147
+ task = progress.add_task(description="Setting up local virtual environment (.venv)...", total=None)
148
+ import shutil
149
+ has_uv = shutil.which("uv") is not None
150
+ try:
151
+ if has_uv:
152
+ subprocess.run(["uv", "venv"], cwd=project_dir, check=True, capture_output=True)
153
+ progress.update(task, description="Installing dependencies with uv...")
154
+ subprocess.run(["uv", "pip", "install", "-e", "."], cwd=project_dir, check=True, capture_output=True)
155
+ else:
156
+ subprocess.run([sys.executable, "-m", "venv", ".venv"], cwd=project_dir, check=True, capture_output=True)
157
+ progress.update(task, description="Installing dependencies with pip...")
158
+ pip_exe = ".venv/bin/pip" if os.name != "nt" else ".venv\\Scripts\\pip.exe"
159
+ subprocess.run([str(project_dir / pip_exe), "install", "-e", "."], cwd=project_dir, check=True, capture_output=True)
160
+ except subprocess.CalledProcessError as e:
161
+ console.print(f"\n[bold yellow]Warning:[/bold yellow] Failed to set up local environment or install dependencies.")
162
+ if e.stderr:
163
+ console.print(f"[dim]{e.stderr.decode()}[/dim]")
144
164
 
145
165
  console.print("[bold green]✓ Project scaffolded successfully![/bold green]")
146
166
  console.print(f"\nNext steps:\n [cyan]cd {project_name}[/cyan]\n [cyan]voodoo dev[/cyan]\n")
@@ -171,13 +191,22 @@ def dev(
171
191
  import sys
172
192
  import os
173
193
 
194
+ local_venv_python = Path(".venv/bin/python") if os.name != "nt" else Path(".venv/Scripts/python.exe")
195
+
196
+ if local_venv_python.exists():
197
+ python_exe = str(local_venv_python.absolute())
198
+ console.print("[dim]Using local virtual environment.[/dim]")
199
+ else:
200
+ python_exe = sys.executable
201
+ console.print("[dim]Using global environment.[/dim]")
202
+
174
203
  env = os.environ.copy()
175
204
  env["PYTHONPATH"] = os.pathsep.join(sys.path)
176
205
 
177
206
  try:
178
207
  # We let uvicorn take over the terminal output
179
208
  subprocess.run(
180
- [sys.executable, "-m", "uvicorn", app_str, "--reload", "--port", str(port)],
209
+ [python_exe, "-m", "uvicorn", app_str, "--reload", "--port", str(port)],
181
210
  env=env
182
211
  )
183
212
  except KeyboardInterrupt:
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: voodoo-framework
3
- Version: 1.0.2
3
+ Version: 1.0.3
4
4
  Summary: Voodoo Framework
5
5
  Requires-Python: >=3.12
6
6
  Requires-Dist: starlette