vega-framework 0.1.31__tar.gz → 0.1.34__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 (89) hide show
  1. {vega_framework-0.1.31 → vega_framework-0.1.34}/PKG-INFO +1 -1
  2. {vega_framework-0.1.31 → vega_framework-0.1.34}/pyproject.toml +1 -1
  3. {vega_framework-0.1.31 → vega_framework-0.1.34}/vega/cli/commands/generate.py +3 -3
  4. {vega_framework-0.1.31 → vega_framework-0.1.34}/vega/cli/scaffolds/fastapi.py +0 -23
  5. {vega_framework-0.1.31 → vega_framework-0.1.34}/vega/cli/templates/project/main.py.j2 +8 -0
  6. {vega_framework-0.1.31 → vega_framework-0.1.34}/vega/cli/templates/project/main_fastapi.py.j2 +8 -0
  7. {vega_framework-0.1.31 → vega_framework-0.1.34}/vega/cli/templates/project/main_standard.py.j2 +8 -0
  8. {vega_framework-0.1.31 → vega_framework-0.1.34}/vega/cli/templates/web/main.py.j2 +9 -0
  9. {vega_framework-0.1.31 → vega_framework-0.1.34}/LICENSE +0 -0
  10. {vega_framework-0.1.31 → vega_framework-0.1.34}/README.md +0 -0
  11. {vega_framework-0.1.31 → vega_framework-0.1.34}/vega/__init__.py +0 -0
  12. {vega_framework-0.1.31 → vega_framework-0.1.34}/vega/cli/__init__.py +0 -0
  13. {vega_framework-0.1.31 → vega_framework-0.1.34}/vega/cli/commands/__init__.py +0 -0
  14. {vega_framework-0.1.31 → vega_framework-0.1.34}/vega/cli/commands/add.py +0 -0
  15. {vega_framework-0.1.31 → vega_framework-0.1.34}/vega/cli/commands/init.py +0 -0
  16. {vega_framework-0.1.31 → vega_framework-0.1.34}/vega/cli/commands/migrate.py +0 -0
  17. {vega_framework-0.1.31 → vega_framework-0.1.34}/vega/cli/commands/update.py +0 -0
  18. {vega_framework-0.1.31 → vega_framework-0.1.34}/vega/cli/commands/web.py +0 -0
  19. {vega_framework-0.1.31 → vega_framework-0.1.34}/vega/cli/main.py +0 -0
  20. {vega_framework-0.1.31 → vega_framework-0.1.34}/vega/cli/scaffolds/__init__.py +0 -0
  21. {vega_framework-0.1.31 → vega_framework-0.1.34}/vega/cli/scaffolds/sqlalchemy.py +0 -0
  22. {vega_framework-0.1.31 → vega_framework-0.1.34}/vega/cli/templates/__init__.py +0 -0
  23. {vega_framework-0.1.31 → vega_framework-0.1.34}/vega/cli/templates/cli/command.py.j2 +0 -0
  24. {vega_framework-0.1.31 → vega_framework-0.1.34}/vega/cli/templates/cli/command_simple.py.j2 +0 -0
  25. {vega_framework-0.1.31 → vega_framework-0.1.34}/vega/cli/templates/cli/commands_init.py.j2 +0 -0
  26. {vega_framework-0.1.31 → vega_framework-0.1.34}/vega/cli/templates/components.py +0 -0
  27. {vega_framework-0.1.31 → vega_framework-0.1.34}/vega/cli/templates/domain/entity.py.j2 +0 -0
  28. {vega_framework-0.1.31 → vega_framework-0.1.34}/vega/cli/templates/domain/event.py.j2 +0 -0
  29. {vega_framework-0.1.31 → vega_framework-0.1.34}/vega/cli/templates/domain/event_handler.py.j2 +0 -0
  30. {vega_framework-0.1.31 → vega_framework-0.1.34}/vega/cli/templates/domain/interactor.py.j2 +0 -0
  31. {vega_framework-0.1.31 → vega_framework-0.1.34}/vega/cli/templates/domain/mediator.py.j2 +0 -0
  32. {vega_framework-0.1.31 → vega_framework-0.1.34}/vega/cli/templates/domain/repository_interface.py.j2 +0 -0
  33. {vega_framework-0.1.31 → vega_framework-0.1.34}/vega/cli/templates/domain/service_interface.py.j2 +0 -0
  34. {vega_framework-0.1.31 → vega_framework-0.1.34}/vega/cli/templates/infrastructure/model.py.j2 +0 -0
  35. {vega_framework-0.1.31 → vega_framework-0.1.34}/vega/cli/templates/infrastructure/repository_impl.py.j2 +0 -0
  36. {vega_framework-0.1.31 → vega_framework-0.1.34}/vega/cli/templates/infrastructure/service_impl.py.j2 +0 -0
  37. {vega_framework-0.1.31 → vega_framework-0.1.34}/vega/cli/templates/loader.py +0 -0
  38. {vega_framework-0.1.31 → vega_framework-0.1.34}/vega/cli/templates/project/.env.example +0 -0
  39. {vega_framework-0.1.31 → vega_framework-0.1.34}/vega/cli/templates/project/.gitignore +0 -0
  40. {vega_framework-0.1.31 → vega_framework-0.1.34}/vega/cli/templates/project/ARCHITECTURE.md.j2 +0 -0
  41. {vega_framework-0.1.31 → vega_framework-0.1.34}/vega/cli/templates/project/README.md.j2 +0 -0
  42. {vega_framework-0.1.31 → vega_framework-0.1.34}/vega/cli/templates/project/config.py.j2 +0 -0
  43. {vega_framework-0.1.31 → vega_framework-0.1.34}/vega/cli/templates/project/events_init.py.j2 +0 -0
  44. {vega_framework-0.1.31 → vega_framework-0.1.34}/vega/cli/templates/project/pyproject.toml.j2 +0 -0
  45. {vega_framework-0.1.31 → vega_framework-0.1.34}/vega/cli/templates/project/settings.py.j2 +0 -0
  46. {vega_framework-0.1.31 → vega_framework-0.1.34}/vega/cli/templates/sqlalchemy/alembic.ini.j2 +0 -0
  47. {vega_framework-0.1.31 → vega_framework-0.1.34}/vega/cli/templates/sqlalchemy/database_manager.py.j2 +0 -0
  48. {vega_framework-0.1.31 → vega_framework-0.1.34}/vega/cli/templates/sqlalchemy/env.py.j2 +0 -0
  49. {vega_framework-0.1.31 → vega_framework-0.1.34}/vega/cli/templates/sqlalchemy/script.py.mako +0 -0
  50. {vega_framework-0.1.31 → vega_framework-0.1.34}/vega/cli/templates/web/__init__.py.j2 +0 -0
  51. {vega_framework-0.1.31 → vega_framework-0.1.34}/vega/cli/templates/web/app.py.j2 +0 -0
  52. {vega_framework-0.1.31 → vega_framework-0.1.34}/vega/cli/templates/web/health_route.py.j2 +0 -0
  53. {vega_framework-0.1.31 → vega_framework-0.1.34}/vega/cli/templates/web/middleware.py.j2 +0 -0
  54. {vega_framework-0.1.31 → vega_framework-0.1.34}/vega/cli/templates/web/models_init.py.j2 +0 -0
  55. {vega_framework-0.1.31 → vega_framework-0.1.34}/vega/cli/templates/web/request_model.py.j2 +0 -0
  56. {vega_framework-0.1.31 → vega_framework-0.1.34}/vega/cli/templates/web/response_model.py.j2 +0 -0
  57. {vega_framework-0.1.31 → vega_framework-0.1.34}/vega/cli/templates/web/router.py.j2 +0 -0
  58. {vega_framework-0.1.31 → vega_framework-0.1.34}/vega/cli/templates/web/routes_init.py.j2 +0 -0
  59. {vega_framework-0.1.31 → vega_framework-0.1.34}/vega/cli/templates/web/routes_init_autodiscovery.py.j2 +0 -0
  60. {vega_framework-0.1.31 → vega_framework-0.1.34}/vega/cli/templates/web/user_models.py.j2 +0 -0
  61. {vega_framework-0.1.31 → vega_framework-0.1.34}/vega/cli/templates/web/users_route.py.j2 +0 -0
  62. {vega_framework-0.1.31 → vega_framework-0.1.34}/vega/cli/utils/__init__.py +0 -0
  63. {vega_framework-0.1.31 → vega_framework-0.1.34}/vega/cli/utils/async_support.py +0 -0
  64. {vega_framework-0.1.31 → vega_framework-0.1.34}/vega/cli/utils/messages.py +0 -0
  65. {vega_framework-0.1.31 → vega_framework-0.1.34}/vega/cli/utils/naming.py +0 -0
  66. {vega_framework-0.1.31 → vega_framework-0.1.34}/vega/cli/utils/validators.py +0 -0
  67. {vega_framework-0.1.31 → vega_framework-0.1.34}/vega/di/__init__.py +0 -0
  68. {vega_framework-0.1.31 → vega_framework-0.1.34}/vega/di/container.py +0 -0
  69. {vega_framework-0.1.31 → vega_framework-0.1.34}/vega/di/decorators.py +0 -0
  70. {vega_framework-0.1.31 → vega_framework-0.1.34}/vega/di/errors.py +0 -0
  71. {vega_framework-0.1.31 → vega_framework-0.1.34}/vega/di/scope.py +0 -0
  72. {vega_framework-0.1.31 → vega_framework-0.1.34}/vega/discovery/__init__.py +0 -0
  73. {vega_framework-0.1.31 → vega_framework-0.1.34}/vega/discovery/commands.py +0 -0
  74. {vega_framework-0.1.31 → vega_framework-0.1.34}/vega/discovery/events.py +0 -0
  75. {vega_framework-0.1.31 → vega_framework-0.1.34}/vega/discovery/routes.py +0 -0
  76. {vega_framework-0.1.31 → vega_framework-0.1.34}/vega/events/README.md +0 -0
  77. {vega_framework-0.1.31 → vega_framework-0.1.34}/vega/events/SYNTAX_GUIDE.md +0 -0
  78. {vega_framework-0.1.31 → vega_framework-0.1.34}/vega/events/__init__.py +0 -0
  79. {vega_framework-0.1.31 → vega_framework-0.1.34}/vega/events/bus.py +0 -0
  80. {vega_framework-0.1.31 → vega_framework-0.1.34}/vega/events/decorators.py +0 -0
  81. {vega_framework-0.1.31 → vega_framework-0.1.34}/vega/events/event.py +0 -0
  82. {vega_framework-0.1.31 → vega_framework-0.1.34}/vega/events/middleware.py +0 -0
  83. {vega_framework-0.1.31 → vega_framework-0.1.34}/vega/patterns/__init__.py +0 -0
  84. {vega_framework-0.1.31 → vega_framework-0.1.34}/vega/patterns/interactor.py +0 -0
  85. {vega_framework-0.1.31 → vega_framework-0.1.34}/vega/patterns/mediator.py +0 -0
  86. {vega_framework-0.1.31 → vega_framework-0.1.34}/vega/patterns/repository.py +0 -0
  87. {vega_framework-0.1.31 → vega_framework-0.1.34}/vega/patterns/service.py +0 -0
  88. {vega_framework-0.1.31 → vega_framework-0.1.34}/vega/settings/__init__.py +0 -0
  89. {vega_framework-0.1.31 → vega_framework-0.1.34}/vega/settings/base.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: vega-framework
3
- Version: 0.1.31
3
+ Version: 0.1.34
4
4
  Summary: Enterprise-ready Python framework that enforces Clean Architecture for building maintainable and scalable applications.
5
5
  License: MIT
6
6
  License-File: LICENSE
@@ -1,6 +1,6 @@
1
1
  [tool.poetry]
2
2
  name = "vega-framework"
3
- version = "0.1.31"
3
+ version = "0.1.34"
4
4
  description = "Enterprise-ready Python framework that enforces Clean Architecture for building maintainable and scalable applications."
5
5
  authors = ["Roberto Ferro"]
6
6
  license = "MIT"
@@ -933,9 +933,9 @@ def _generate_event(project_root: Path, project_name: str, class_name: str, file
933
933
 
934
934
 
935
935
  def _generate_event_handler(project_root: Path, project_name: str, class_name: str, file_name: str):
936
- """Generate an application-level event handler/subscriber."""
936
+ """Generate an application-level event handler/subscriber in events/ for auto-discovery."""
937
937
 
938
- handlers_path = project_root / "application" / "events"
938
+ handlers_path = project_root / "events"
939
939
  handlers_path.mkdir(parents=True, exist_ok=True)
940
940
 
941
941
  init_file = handlers_path / "__init__.py"
@@ -987,5 +987,5 @@ def _generate_event_handler(project_root: Path, project_name: str, class_name: s
987
987
 
988
988
  click.echo("\nNext steps:")
989
989
  click.echo(f" 1. Implement your handler in {handler_file.relative_to(project_root)}")
990
- click.echo(" 2. Ensure the module is imported during application bootstrap (autodiscovery or manual import).")
990
+ click.echo(" 2. Call events.register_all_handlers() during startup so auto-discovery loads it.")
991
991
  click.echo(" 3. Run your workflow and verify the subscriber reacts to the event.")
@@ -64,35 +64,12 @@ def create_fastapi_scaffold(
64
64
  created.append(rel_path)
65
65
  echo(f"+ Created {click.style(str(rel_path), fg='green')}")
66
66
 
67
- if _ensure_fastapi_dependencies(project_root):
68
- echo(f"+ Updated {click.style('pyproject.toml', fg='green')} with FastAPI dependencies")
69
-
70
67
  echo("\n[TIP] FastAPI scaffold ready:")
71
68
  echo(" 1. poetry install # sync dependencies (or poetry update)")
72
69
  echo(" 2. poetry run uvicorn presentation.web.main:app --reload")
73
70
 
74
71
  return created
75
72
 
76
-
77
- def _ensure_fastapi_dependencies(project_root: Path) -> bool:
78
- """Ensure FastAPI dependencies exist in pyproject.toml; return True if modified."""
79
- pyproject_path = project_root / "pyproject.toml"
80
- if not pyproject_path.exists():
81
- return False
82
-
83
- content = pyproject_path.read_text(encoding="utf-8")
84
- lines = content.splitlines(keepends=True)
85
-
86
- changed = False
87
- changed |= _ensure_dependency_line(lines, "fastapi", "^0.111")
88
- changed |= _ensure_dependency_line(lines, "uvicorn", "^0.30")
89
-
90
- if changed:
91
- pyproject_path.write_text("".join(lines), encoding="utf-8")
92
-
93
- return changed
94
-
95
-
96
73
  def _ensure_dependency_line(lines: list[str], name: str, spec: str) -> bool:
97
74
  """Insert dependency assignment into [tool.poetry.dependencies] if missing."""
98
75
  header = "[tool.poetry.dependencies]"
@@ -2,6 +2,14 @@
2
2
  import click
3
3
  import config # noqa: F401 - Import to initialize DI container
4
4
 
5
+ # Auto-discover event subscribers so @subscribe handlers are ready
6
+ try:
7
+ from events import register_all_handlers
8
+ except ImportError:
9
+ pass
10
+ else:
11
+ register_all_handlers()
12
+
5
13
  # Import your use cases here
6
14
  # from domain.interactors.create_user import CreateUser
7
15
 
@@ -3,6 +3,14 @@ import click
3
3
  from vega.cli.utils import async_command
4
4
  import config # noqa: F401 - Import to initialize DI container
5
5
 
6
+ # Auto-discover event subscribers so @subscribe handlers are ready
7
+ try:
8
+ from events import register_all_handlers
9
+ except ImportError:
10
+ pass
11
+ else:
12
+ register_all_handlers()
13
+
6
14
  # Import your use cases here
7
15
  # from domain.interactors.create_user import CreateUser
8
16
 
@@ -3,6 +3,14 @@ import click
3
3
  from vega.cli.utils import async_command
4
4
  import config # noqa: F401 - Import to initialize DI container
5
5
 
6
+ # Auto-discover event subscribers so @subscribe handlers are ready
7
+ try:
8
+ from events import register_all_handlers
9
+ except ImportError:
10
+ pass
11
+ else:
12
+ register_all_handlers()
13
+
6
14
  # Import your use cases here
7
15
  # from domain.interactors.create_user import CreateUser
8
16
 
@@ -1,5 +1,14 @@
1
1
  """FastAPI ASGI entrypoint for {{ project_name }}"""
2
2
  from fastapi import FastAPI
3
+ import config # noqa: F401 - Import to initialize DI container
4
+
5
+ # Auto-discover event subscribers so @subscribe handlers are ready
6
+ try:
7
+ from events import register_all_handlers
8
+ except ImportError:
9
+ pass
10
+ else:
11
+ register_all_handlers()
3
12
 
4
13
  from .app import create_app
5
14
 
File without changes