aegis-stack 0.1.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.

Potentially problematic release.


This version of aegis-stack might be problematic. Click here for more details.

Files changed (118) hide show
  1. aegis_stack-0.1.0/.gitignore +130 -0
  2. aegis_stack-0.1.0/CHANGELOG.md +39 -0
  3. aegis_stack-0.1.0/PKG-INFO +114 -0
  4. aegis_stack-0.1.0/README.md +68 -0
  5. aegis_stack-0.1.0/aegis/__init__.py +5 -0
  6. aegis_stack-0.1.0/aegis/__main__.py +374 -0
  7. aegis_stack-0.1.0/aegis/core/CLAUDE.md +365 -0
  8. aegis_stack-0.1.0/aegis/core/__init__.py +6 -0
  9. aegis_stack-0.1.0/aegis/core/components.py +115 -0
  10. aegis_stack-0.1.0/aegis/core/dependency_resolver.py +119 -0
  11. aegis_stack-0.1.0/aegis/core/template_generator.py +163 -0
  12. aegis_stack-0.1.0/aegis/templates/CLAUDE.md +306 -0
  13. aegis_stack-0.1.0/aegis/templates/cookiecutter-aegis-project/cookiecutter.json +27 -0
  14. aegis_stack-0.1.0/aegis/templates/cookiecutter-aegis-project/hooks/post_gen_project.py +172 -0
  15. aegis_stack-0.1.0/aegis/templates/cookiecutter-aegis-project/{{cookiecutter.project_slug}}/.dockerignore +71 -0
  16. aegis_stack-0.1.0/aegis/templates/cookiecutter-aegis-project/{{cookiecutter.project_slug}}/.env.example.j2 +70 -0
  17. aegis_stack-0.1.0/aegis/templates/cookiecutter-aegis-project/{{cookiecutter.project_slug}}/.gitignore +127 -0
  18. aegis_stack-0.1.0/aegis/templates/cookiecutter-aegis-project/{{cookiecutter.project_slug}}/Dockerfile +53 -0
  19. aegis_stack-0.1.0/aegis/templates/cookiecutter-aegis-project/{{cookiecutter.project_slug}}/Makefile +211 -0
  20. aegis_stack-0.1.0/aegis/templates/cookiecutter-aegis-project/{{cookiecutter.project_slug}}/README.md.j2 +196 -0
  21. aegis_stack-0.1.0/aegis/templates/cookiecutter-aegis-project/{{cookiecutter.project_slug}}/app/__init__.py +5 -0
  22. aegis_stack-0.1.0/aegis/templates/cookiecutter-aegis-project/{{cookiecutter.project_slug}}/app/cli/__init__.py +6 -0
  23. aegis_stack-0.1.0/aegis/templates/cookiecutter-aegis-project/{{cookiecutter.project_slug}}/app/cli/health.py +321 -0
  24. aegis_stack-0.1.0/aegis/templates/cookiecutter-aegis-project/{{cookiecutter.project_slug}}/app/cli/load_test.py +638 -0
  25. aegis_stack-0.1.0/aegis/templates/cookiecutter-aegis-project/{{cookiecutter.project_slug}}/app/cli/main.py +41 -0
  26. aegis_stack-0.1.0/aegis/templates/cookiecutter-aegis-project/{{cookiecutter.project_slug}}/app/components/backend/__init__.py +0 -0
  27. aegis_stack-0.1.0/aegis/templates/cookiecutter-aegis-project/{{cookiecutter.project_slug}}/app/components/backend/api/__init__.py +0 -0
  28. aegis_stack-0.1.0/aegis/templates/cookiecutter-aegis-project/{{cookiecutter.project_slug}}/app/components/backend/api/health.py +134 -0
  29. aegis_stack-0.1.0/aegis/templates/cookiecutter-aegis-project/{{cookiecutter.project_slug}}/app/components/backend/api/models.py.j2 +247 -0
  30. aegis_stack-0.1.0/aegis/templates/cookiecutter-aegis-project/{{cookiecutter.project_slug}}/app/components/backend/api/routing.py.j2 +14 -0
  31. aegis_stack-0.1.0/aegis/templates/cookiecutter-aegis-project/{{cookiecutter.project_slug}}/app/components/backend/api/tasks.py.j2 +596 -0
  32. aegis_stack-0.1.0/aegis/templates/cookiecutter-aegis-project/{{cookiecutter.project_slug}}/app/components/backend/hooks.py +133 -0
  33. aegis_stack-0.1.0/aegis/templates/cookiecutter-aegis-project/{{cookiecutter.project_slug}}/app/components/backend/main.py +16 -0
  34. aegis_stack-0.1.0/aegis/templates/cookiecutter-aegis-project/{{cookiecutter.project_slug}}/app/components/backend/middleware/__init__.py +1 -0
  35. aegis_stack-0.1.0/aegis/templates/cookiecutter-aegis-project/{{cookiecutter.project_slug}}/app/components/backend/middleware/cors.py +20 -0
  36. aegis_stack-0.1.0/aegis/templates/cookiecutter-aegis-project/{{cookiecutter.project_slug}}/app/components/backend/shutdown/__init__.py +1 -0
  37. aegis_stack-0.1.0/aegis/templates/cookiecutter-aegis-project/{{cookiecutter.project_slug}}/app/components/backend/shutdown/cleanup.py +14 -0
  38. aegis_stack-0.1.0/aegis/templates/cookiecutter-aegis-project/{{cookiecutter.project_slug}}/app/components/backend/startup/__init__.py +1 -0
  39. aegis_stack-0.1.0/aegis/templates/cookiecutter-aegis-project/{{cookiecutter.project_slug}}/app/components/backend/startup/component_health.py.j2 +190 -0
  40. aegis_stack-0.1.0/aegis/templates/cookiecutter-aegis-project/{{cookiecutter.project_slug}}/app/components/frontend/__init__.py +0 -0
  41. aegis_stack-0.1.0/aegis/templates/cookiecutter-aegis-project/{{cookiecutter.project_slug}}/app/components/frontend/core/__init__.py +1 -0
  42. aegis_stack-0.1.0/aegis/templates/cookiecutter-aegis-project/{{cookiecutter.project_slug}}/app/components/frontend/core/theme.py +46 -0
  43. aegis_stack-0.1.0/aegis/templates/cookiecutter-aegis-project/{{cookiecutter.project_slug}}/app/components/frontend/main.py +687 -0
  44. aegis_stack-0.1.0/aegis/templates/cookiecutter-aegis-project/{{cookiecutter.project_slug}}/app/components/scheduler/__init__.py +1 -0
  45. aegis_stack-0.1.0/aegis/templates/cookiecutter-aegis-project/{{cookiecutter.project_slug}}/app/components/scheduler/main.py +138 -0
  46. aegis_stack-0.1.0/aegis/templates/cookiecutter-aegis-project/{{cookiecutter.project_slug}}/app/components/worker/CLAUDE.md +213 -0
  47. aegis_stack-0.1.0/aegis/templates/cookiecutter-aegis-project/{{cookiecutter.project_slug}}/app/components/worker/__init__.py +6 -0
  48. aegis_stack-0.1.0/aegis/templates/cookiecutter-aegis-project/{{cookiecutter.project_slug}}/app/components/worker/constants.py.j2 +30 -0
  49. aegis_stack-0.1.0/aegis/templates/cookiecutter-aegis-project/{{cookiecutter.project_slug}}/app/components/worker/pools.py +78 -0
  50. aegis_stack-0.1.0/aegis/templates/cookiecutter-aegis-project/{{cookiecutter.project_slug}}/app/components/worker/queues/__init__.py +1 -0
  51. aegis_stack-0.1.0/aegis/templates/cookiecutter-aegis-project/{{cookiecutter.project_slug}}/app/components/worker/queues/load_test.py +48 -0
  52. aegis_stack-0.1.0/aegis/templates/cookiecutter-aegis-project/{{cookiecutter.project_slug}}/app/components/worker/queues/media.py +41 -0
  53. aegis_stack-0.1.0/aegis/templates/cookiecutter-aegis-project/{{cookiecutter.project_slug}}/app/components/worker/queues/system.py +36 -0
  54. aegis_stack-0.1.0/aegis/templates/cookiecutter-aegis-project/{{cookiecutter.project_slug}}/app/components/worker/registry.py +139 -0
  55. aegis_stack-0.1.0/aegis/templates/cookiecutter-aegis-project/{{cookiecutter.project_slug}}/app/components/worker/tasks/__init__.py +119 -0
  56. aegis_stack-0.1.0/aegis/templates/cookiecutter-aegis-project/{{cookiecutter.project_slug}}/app/components/worker/tasks/load_tasks.py +526 -0
  57. aegis_stack-0.1.0/aegis/templates/cookiecutter-aegis-project/{{cookiecutter.project_slug}}/app/components/worker/tasks/simple_system_tasks.py +32 -0
  58. aegis_stack-0.1.0/aegis/templates/cookiecutter-aegis-project/{{cookiecutter.project_slug}}/app/components/worker/tasks/system_tasks.py +279 -0
  59. aegis_stack-0.1.0/aegis/templates/cookiecutter-aegis-project/{{cookiecutter.project_slug}}/app/core/config.py.j2 +119 -0
  60. aegis_stack-0.1.0/aegis/templates/cookiecutter-aegis-project/{{cookiecutter.project_slug}}/app/core/constants.py +60 -0
  61. aegis_stack-0.1.0/aegis/templates/cookiecutter-aegis-project/{{cookiecutter.project_slug}}/app/core/db.py +67 -0
  62. aegis_stack-0.1.0/aegis/templates/cookiecutter-aegis-project/{{cookiecutter.project_slug}}/app/core/log.py +85 -0
  63. aegis_stack-0.1.0/aegis/templates/cookiecutter-aegis-project/{{cookiecutter.project_slug}}/app/entrypoints/__init__.py +1 -0
  64. aegis_stack-0.1.0/aegis/templates/cookiecutter-aegis-project/{{cookiecutter.project_slug}}/app/entrypoints/webserver.py +40 -0
  65. aegis_stack-0.1.0/aegis/templates/cookiecutter-aegis-project/{{cookiecutter.project_slug}}/app/entrypoints/{% if cookiecutter.include_scheduler == /"yes/" %}scheduler.py{% endif %}" +21 -0
  66. aegis_stack-0.1.0/aegis/templates/cookiecutter-aegis-project/{{cookiecutter.project_slug}}/app/integrations/__init__.py +0 -0
  67. aegis_stack-0.1.0/aegis/templates/cookiecutter-aegis-project/{{cookiecutter.project_slug}}/app/integrations/main.py +61 -0
  68. aegis_stack-0.1.0/aegis/templates/cookiecutter-aegis-project/{{cookiecutter.project_slug}}/app/py.typed +0 -0
  69. aegis_stack-0.1.0/aegis/templates/cookiecutter-aegis-project/{{cookiecutter.project_slug}}/app/services/__init__.py +1 -0
  70. aegis_stack-0.1.0/aegis/templates/cookiecutter-aegis-project/{{cookiecutter.project_slug}}/app/services/load_test.py +661 -0
  71. aegis_stack-0.1.0/aegis/templates/cookiecutter-aegis-project/{{cookiecutter.project_slug}}/app/services/load_test_models.py +269 -0
  72. aegis_stack-0.1.0/aegis/templates/cookiecutter-aegis-project/{{cookiecutter.project_slug}}/app/services/shared/__init__.py +15 -0
  73. aegis_stack-0.1.0/aegis/templates/cookiecutter-aegis-project/{{cookiecutter.project_slug}}/app/services/shared/models.py +26 -0
  74. aegis_stack-0.1.0/aegis/templates/cookiecutter-aegis-project/{{cookiecutter.project_slug}}/app/services/system/__init__.py +52 -0
  75. aegis_stack-0.1.0/aegis/templates/cookiecutter-aegis-project/{{cookiecutter.project_slug}}/app/services/system/alerts.py +94 -0
  76. aegis_stack-0.1.0/aegis/templates/cookiecutter-aegis-project/{{cookiecutter.project_slug}}/app/services/system/health.py.j2 +1105 -0
  77. aegis_stack-0.1.0/aegis/templates/cookiecutter-aegis-project/{{cookiecutter.project_slug}}/app/services/system/models.py +169 -0
  78. aegis_stack-0.1.0/aegis/templates/cookiecutter-aegis-project/{{cookiecutter.project_slug}}/app/services/system/ui.py +52 -0
  79. aegis_stack-0.1.0/aegis/templates/cookiecutter-aegis-project/{{cookiecutter.project_slug}}/docker-compose.yml.j2 +195 -0
  80. aegis_stack-0.1.0/aegis/templates/cookiecutter-aegis-project/{{cookiecutter.project_slug}}/docs/api.md +191 -0
  81. aegis_stack-0.1.0/aegis/templates/cookiecutter-aegis-project/{{cookiecutter.project_slug}}/docs/components/scheduler.md +414 -0
  82. aegis_stack-0.1.0/aegis/templates/cookiecutter-aegis-project/{{cookiecutter.project_slug}}/docs/development.md +215 -0
  83. aegis_stack-0.1.0/aegis/templates/cookiecutter-aegis-project/{{cookiecutter.project_slug}}/docs/health.md +240 -0
  84. aegis_stack-0.1.0/aegis/templates/cookiecutter-aegis-project/{{cookiecutter.project_slug}}/docs/javascripts/mermaid-config.js +62 -0
  85. aegis_stack-0.1.0/aegis/templates/cookiecutter-aegis-project/{{cookiecutter.project_slug}}/docs/stylesheets/mermaid.css +95 -0
  86. aegis_stack-0.1.0/aegis/templates/cookiecutter-aegis-project/{{cookiecutter.project_slug}}/mkdocs.yml.j2 +62 -0
  87. aegis_stack-0.1.0/aegis/templates/cookiecutter-aegis-project/{{cookiecutter.project_slug}}/pyproject.toml.j2 +156 -0
  88. aegis_stack-0.1.0/aegis/templates/cookiecutter-aegis-project/{{cookiecutter.project_slug}}/scripts/entrypoint.sh +87 -0
  89. aegis_stack-0.1.0/aegis/templates/cookiecutter-aegis-project/{{cookiecutter.project_slug}}/scripts/entrypoint.sh.j2 +104 -0
  90. aegis_stack-0.1.0/aegis/templates/cookiecutter-aegis-project/{{cookiecutter.project_slug}}/scripts/gen_docs.py +16 -0
  91. aegis_stack-0.1.0/aegis/templates/cookiecutter-aegis-project/{{cookiecutter.project_slug}}/tests/api/__init__.py +1 -0
  92. aegis_stack-0.1.0/aegis/templates/cookiecutter-aegis-project/{{cookiecutter.project_slug}}/tests/api/test_health_endpoints.py.j2 +239 -0
  93. aegis_stack-0.1.0/aegis/templates/cookiecutter-aegis-project/{{cookiecutter.project_slug}}/tests/components/test_scheduler.py +76 -0
  94. aegis_stack-0.1.0/aegis/templates/cookiecutter-aegis-project/{{cookiecutter.project_slug}}/tests/conftest.py.j2 +81 -0
  95. aegis_stack-0.1.0/aegis/templates/cookiecutter-aegis-project/{{cookiecutter.project_slug}}/tests/services/__init__.py +1 -0
  96. aegis_stack-0.1.0/aegis/templates/cookiecutter-aegis-project/{{cookiecutter.project_slug}}/tests/services/test_component_integration.py.j2 +376 -0
  97. aegis_stack-0.1.0/aegis/templates/cookiecutter-aegis-project/{{cookiecutter.project_slug}}/tests/services/test_health_logic.py.j2 +633 -0
  98. aegis_stack-0.1.0/aegis/templates/cookiecutter-aegis-project/{{cookiecutter.project_slug}}/tests/services/test_load_test_models.py +665 -0
  99. aegis_stack-0.1.0/aegis/templates/cookiecutter-aegis-project/{{cookiecutter.project_slug}}/tests/services/test_load_test_service.py +602 -0
  100. aegis_stack-0.1.0/aegis/templates/cookiecutter-aegis-project/{{cookiecutter.project_slug}}/tests/services/test_system_service.py +96 -0
  101. aegis_stack-0.1.0/aegis/templates/cookiecutter-aegis-project/{{cookiecutter.project_slug}}/tests/services/test_worker_health_registration.py.j2 +224 -0
  102. aegis_stack-0.1.0/aegis/templates/cookiecutter-aegis-project/{{cookiecutter.project_slug}}/tests/test_core.py +50 -0
  103. aegis_stack-0.1.0/aegis/templates/cookiecutter-aegis-project/{{cookiecutter.project_slug}}/uv.lock +1673 -0
  104. aegis_stack-0.1.0/pyproject.toml +153 -0
  105. aegis_stack-0.1.0/tests/CLAUDE.md +221 -0
  106. aegis_stack-0.1.0/tests/__init__.py +0 -0
  107. aegis_stack-0.1.0/tests/cli/__init__.py +0 -0
  108. aegis_stack-0.1.0/tests/cli/conftest.py +211 -0
  109. aegis_stack-0.1.0/tests/cli/test_cli_basic.py +128 -0
  110. aegis_stack-0.1.0/tests/cli/test_cli_init.py +425 -0
  111. aegis_stack-0.1.0/tests/cli/test_component_dependencies.py +466 -0
  112. aegis_stack-0.1.0/tests/cli/test_database_config.py +132 -0
  113. aegis_stack-0.1.0/tests/cli/test_database_runtime.py +264 -0
  114. aegis_stack-0.1.0/tests/cli/test_error_handling.py +362 -0
  115. aegis_stack-0.1.0/tests/cli/test_stack_generation.py +307 -0
  116. aegis_stack-0.1.0/tests/cli/test_stack_validation.py +311 -0
  117. aegis_stack-0.1.0/tests/cli/test_utils.py +542 -0
  118. aegis_stack-0.1.0/tests/conftest.py +21 -0
@@ -0,0 +1,130 @@
1
+ # Byte-compiled / optimized / DLL files
2
+ __pycache__/
3
+ *.py[cod]
4
+ *.so
5
+
6
+ # C extensions
7
+ *.so
8
+
9
+ # Distribution / packaging
10
+ .Python
11
+ build/
12
+ develop-eggs/
13
+ dist/
14
+ downloads/
15
+ eggs/
16
+ .eggs/
17
+ lib/
18
+ lib64/
19
+ parts/
20
+ sdist/
21
+ var/
22
+ wheels/
23
+ *.egg-info/
24
+ .installed.cfg
25
+ *.egg
26
+ MANIFEST
27
+
28
+ # PyInstaller
29
+ # Usually these files are written by a python script from a template
30
+ # before PyInstaller builds the exe, so as to inject date/other infos into it.
31
+ *.manifest
32
+ *.spec
33
+
34
+ # Installer logs
35
+ pip-log.txt
36
+ pip-delete-this-directory.txt
37
+
38
+ # Unit test / coverage reports
39
+ htmlcov/
40
+ .tox/
41
+ .nox/
42
+ .coverage
43
+ .coverage.*
44
+ .cache
45
+ nosetests.xml
46
+ coverage.xml
47
+ *.cover
48
+ .hypothesis/
49
+ .pytest_cache/
50
+
51
+ # Translations
52
+ *.mo
53
+ *.pot
54
+
55
+ # Django stuff:
56
+ *.log
57
+ local_settings.py
58
+ db.sqlite3
59
+
60
+ # Flask stuff:
61
+ instance/
62
+ .webassets-cache
63
+
64
+ # Scrapy stuff:
65
+ .scrapy
66
+
67
+ # Sphinx documentation
68
+ docs/_build/
69
+
70
+ # PyBuilder
71
+ target/
72
+
73
+ # Jupyter Notebook
74
+ .ipynb_checkpoints
75
+
76
+ # IPython
77
+ profile_default/
78
+ ipython_config.py
79
+
80
+ # pyenv
81
+ .python-version
82
+
83
+ # celery beat schedule file
84
+ celerybeat-schedule
85
+
86
+ # SageMath parsed files
87
+ *.sage.py
88
+
89
+ # Environments
90
+ .env
91
+ .venv
92
+ env/
93
+ venv/
94
+ ENV/
95
+ env.bak/
96
+ venv.bak/
97
+
98
+ # Spyder project settings
99
+ .spyderproject
100
+ .spyproject
101
+
102
+ # Rope project settings
103
+ .ropeproject
104
+
105
+ # mkdocs documentation
106
+ /site
107
+
108
+ # mypy
109
+ .mypy_cache/
110
+ .dmypy.json
111
+ dmypy.json
112
+
113
+ # IDE
114
+ .vscode/
115
+ .idea/
116
+ *.swp
117
+ *.swo
118
+ *~
119
+
120
+ # OS generated files
121
+ .DS_Store
122
+ .DS_Store?
123
+ ._*
124
+ .Spotlight-V100
125
+ .Trashes
126
+ ehthumbs.db
127
+ Thumbs.db
128
+
129
+ # Data
130
+ data/
@@ -0,0 +1,39 @@
1
+ # Changelog
2
+
3
+ All notable changes to this project will be documented in this file.
4
+
5
+ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
6
+ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
7
+
8
+ ## [0.1.0] - 2025-08-27
9
+
10
+ ### Added
11
+ - Initial release of Aegis Stack CLI tool
12
+ - Database component with SQLite/SQLModel ORM integration
13
+ - FastAPI backend with health monitoring system
14
+ - Flet frontend for web and desktop applications
15
+ - Worker component with arq/Redis for background tasks
16
+ - Scheduler component with APScheduler
17
+ - Docker containerization support
18
+ - Comprehensive testing infrastructure with pytest
19
+ - Type checking with mypy and pydantic plugin
20
+ - Auto-formatting with ruff
21
+ - Project generation via `aegis init` command
22
+ - Component dependency resolution system
23
+ - Database health checks with detailed metrics
24
+ - Transaction rollback testing fixtures
25
+ - Template validation system
26
+
27
+ ### Fixed
28
+ - Database test isolation issues
29
+ - Type checking for Pydantic models with mypy plugin
30
+ - Template linting issues in generated projects
31
+
32
+ ### Components
33
+ - Backend (FastAPI) - Always included
34
+ - Frontend (Flet) - Always included
35
+ - Database (SQLite/SQLModel) - Optional
36
+ - Worker (arq/Redis) - Optional
37
+ - Scheduler (APScheduler) - Optional
38
+
39
+ [0.1.0]: https://github.com/lbedner/aegis-stack/releases/tag/v0.1.0
@@ -0,0 +1,114 @@
1
+ Metadata-Version: 2.4
2
+ Name: aegis-stack
3
+ Version: 0.1.0
4
+ Summary: A production-ready Python foundation for builders who refuse to wait
5
+ Project-URL: Homepage, https://github.com/lbedner/aegis-stack
6
+ Project-URL: Documentation, https://github.com/lbedner/aegis-stack#readme
7
+ Project-URL: Repository, https://github.com/lbedner/aegis-stack
8
+ Project-URL: Issues, https://github.com/lbedner/aegis-stack/issues
9
+ Project-URL: Changelog, https://github.com/lbedner/aegis-stack/blob/main/CHANGELOG.md
10
+ Author-email: Leonard Bedner <gamecoder99@gmail.com>
11
+ License: MIT
12
+ Keywords: boilerplate,cli,cookiecutter,database,fastapi,generator,python,scaffold,scheduler,stack,template,worker
13
+ Classifier: Development Status :: 4 - Beta
14
+ Classifier: Environment :: Console
15
+ Classifier: Intended Audience :: Developers
16
+ Classifier: License :: OSI Approved :: MIT License
17
+ Classifier: Natural Language :: English
18
+ Classifier: Operating System :: OS Independent
19
+ Classifier: Programming Language :: Python :: 3
20
+ Classifier: Programming Language :: Python :: 3.11
21
+ Classifier: Programming Language :: Python :: 3.12
22
+ Classifier: Programming Language :: Python :: 3.13
23
+ Classifier: Topic :: Internet :: WWW/HTTP :: HTTP Servers
24
+ Classifier: Topic :: Software Development :: Code Generators
25
+ Classifier: Topic :: Software Development :: Libraries :: Application Frameworks
26
+ Classifier: Typing :: Typed
27
+ Requires-Python: >=3.11
28
+ Requires-Dist: cookiecutter>=2.6.0
29
+ Requires-Dist: rich>=13.0.0
30
+ Requires-Dist: typer>=0.9.0
31
+ Provides-Extra: dev
32
+ Requires-Dist: mypy>=1.8.0; extra == 'dev'
33
+ Requires-Dist: pip-audit>=2.6.0; extra == 'dev'
34
+ Requires-Dist: pre-commit>=3.7.0; extra == 'dev'
35
+ Requires-Dist: pytest-asyncio>=0.23.0; extra == 'dev'
36
+ Requires-Dist: pytest>=8.0.0; extra == 'dev'
37
+ Requires-Dist: ruff>=0.1.0; extra == 'dev'
38
+ Provides-Extra: docs
39
+ Requires-Dist: mkdocs-gen-files>=0.5.0; extra == 'docs'
40
+ Requires-Dist: mkdocs-material>=9.5.0; extra == 'docs'
41
+ Requires-Dist: mkdocs-mermaid2-plugin>=1.1.0; extra == 'docs'
42
+ Requires-Dist: mkdocs>=1.5.0; extra == 'docs'
43
+ Requires-Dist: mkdocstrings[python]>=0.24.0; extra == 'docs'
44
+ Requires-Dist: pymdown-extensions>=10.0.0; extra == 'docs'
45
+ Description-Content-Type: text/markdown
46
+
47
+ # Aegis Stack 🛡️
48
+
49
+ [![CI](https://github.com/lbedner/aegis-stack/workflows/CI/badge.svg)](https://github.com/lbedner/aegis-stack/actions/workflows/ci.yml)
50
+ [![Documentation](https://github.com/lbedner/aegis-stack/workflows/Deploy%20Documentation/badge.svg)](https://github.com/lbedner/aegis-stack/actions/workflows/docs.yml)
51
+ [![Python 3.11+](https://img.shields.io/badge/python-3.11+-blue.svg)](https://www.python.org/downloads/)
52
+
53
+ **Build production-ready Python applications with your chosen components.**
54
+
55
+ Aegis Stack is a CLI-driven framework for creating custom Python applications. Select exactly the components you need - no bloat, no unused dependencies.
56
+
57
+ ## 🚀 Quick Start
58
+
59
+ ```bash
60
+ # Install
61
+ pip install aegis-stack
62
+
63
+ # Create a simple API
64
+ aegis init my-api
65
+
66
+ # Create with background processing
67
+ aegis init task-processor --components scheduler,worker
68
+
69
+ # Start building
70
+ cd my-project && uv sync && source .venv/bin/activate && make run-local
71
+ ```
72
+
73
+ ## 🧩 Available Components
74
+
75
+ | Component | Purpose | Status |
76
+ |-----------|---------|--------|
77
+ | **Core** (FastAPI + Flet) | Web API + Frontend | ✅ **Included** |
78
+ | **Scheduler** | Background tasks, cron jobs | ✅ **Available** |
79
+ | **Worker** | Async task queues, job processing | ✅ **Available** |
80
+ | **Database** | PostgreSQL + SQLAlchemy + Alembic | 🚧 **Coming Soon** |
81
+ | **Cache** | Redis caching and sessions | 🚧 **Coming Soon** |
82
+
83
+ ## What You Get
84
+
85
+ - **FastAPI backend** with automatic API documentation
86
+ - **Flet frontend** with health dashboard
87
+ - **CLI management** with health monitoring commands
88
+ - **Worker queues** with async task processing and load testing
89
+ - **Production ready** with structured logging and containerization
90
+ - **Async-first** architecture for high-concurrency workloads
91
+
92
+ ## 📱 System Health Dashboard
93
+
94
+ ![System Health Dashboard](docs/images/dashboard-light.png#only-light)
95
+ ![System Health Dashboard](docs/images/dashboard-dark.png#only-dark)
96
+
97
+ Real-time monitoring with component status, health percentages, and cross-platform deployment (web, desktop, mobile).
98
+
99
+ ## 📚 Learn More
100
+
101
+ - **[📖 CLI Reference](docs/cli-reference.md)** - Complete command reference
102
+ - **[🏗️ Components](docs/components/index.md)** - Deep dive into available components
103
+ - **[🧠 Philosophy](docs/philosophy.md)** - Architecture and design principles
104
+
105
+ ## Development Commands
106
+
107
+ ```bash
108
+ make run-local # Start development server
109
+ make test # Run test suite
110
+ make check # Run all quality checks
111
+ make docs-serve # Serve documentation
112
+ ```
113
+
114
+ Built on FastAPI, Flet, Typer, and other open-source tools.
@@ -0,0 +1,68 @@
1
+ # Aegis Stack 🛡️
2
+
3
+ [![CI](https://github.com/lbedner/aegis-stack/workflows/CI/badge.svg)](https://github.com/lbedner/aegis-stack/actions/workflows/ci.yml)
4
+ [![Documentation](https://github.com/lbedner/aegis-stack/workflows/Deploy%20Documentation/badge.svg)](https://github.com/lbedner/aegis-stack/actions/workflows/docs.yml)
5
+ [![Python 3.11+](https://img.shields.io/badge/python-3.11+-blue.svg)](https://www.python.org/downloads/)
6
+
7
+ **Build production-ready Python applications with your chosen components.**
8
+
9
+ Aegis Stack is a CLI-driven framework for creating custom Python applications. Select exactly the components you need - no bloat, no unused dependencies.
10
+
11
+ ## 🚀 Quick Start
12
+
13
+ ```bash
14
+ # Install
15
+ pip install aegis-stack
16
+
17
+ # Create a simple API
18
+ aegis init my-api
19
+
20
+ # Create with background processing
21
+ aegis init task-processor --components scheduler,worker
22
+
23
+ # Start building
24
+ cd my-project && uv sync && source .venv/bin/activate && make run-local
25
+ ```
26
+
27
+ ## 🧩 Available Components
28
+
29
+ | Component | Purpose | Status |
30
+ |-----------|---------|--------|
31
+ | **Core** (FastAPI + Flet) | Web API + Frontend | ✅ **Included** |
32
+ | **Scheduler** | Background tasks, cron jobs | ✅ **Available** |
33
+ | **Worker** | Async task queues, job processing | ✅ **Available** |
34
+ | **Database** | PostgreSQL + SQLAlchemy + Alembic | 🚧 **Coming Soon** |
35
+ | **Cache** | Redis caching and sessions | 🚧 **Coming Soon** |
36
+
37
+ ## What You Get
38
+
39
+ - **FastAPI backend** with automatic API documentation
40
+ - **Flet frontend** with health dashboard
41
+ - **CLI management** with health monitoring commands
42
+ - **Worker queues** with async task processing and load testing
43
+ - **Production ready** with structured logging and containerization
44
+ - **Async-first** architecture for high-concurrency workloads
45
+
46
+ ## 📱 System Health Dashboard
47
+
48
+ ![System Health Dashboard](docs/images/dashboard-light.png#only-light)
49
+ ![System Health Dashboard](docs/images/dashboard-dark.png#only-dark)
50
+
51
+ Real-time monitoring with component status, health percentages, and cross-platform deployment (web, desktop, mobile).
52
+
53
+ ## 📚 Learn More
54
+
55
+ - **[📖 CLI Reference](docs/cli-reference.md)** - Complete command reference
56
+ - **[🏗️ Components](docs/components/index.md)** - Deep dive into available components
57
+ - **[🧠 Philosophy](docs/philosophy.md)** - Architecture and design principles
58
+
59
+ ## Development Commands
60
+
61
+ ```bash
62
+ make run-local # Start development server
63
+ make test # Run test suite
64
+ make check # Run all quality checks
65
+ make docs-serve # Serve documentation
66
+ ```
67
+
68
+ Built on FastAPI, Flet, Typer, and other open-source tools.
@@ -0,0 +1,5 @@
1
+ """
2
+ Aegis Stack CLI - Component generation and project management tools.
3
+ """
4
+
5
+ __version__ = "0.1.0"