aquilia 0.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.
- aquilia-0.2.0/LICENSE +21 -0
- aquilia-0.2.0/PKG-INFO +41 -0
- aquilia-0.2.0/aquilia/__init__.py +604 -0
- aquilia-0.2.0/aquilia/_datastructures.py +429 -0
- aquilia-0.2.0/aquilia/_uploads.py +468 -0
- aquilia-0.2.0/aquilia/aquilary/__init__.py +89 -0
- aquilia-0.2.0/aquilia/aquilary/cli.py +500 -0
- aquilia-0.2.0/aquilia/aquilary/core.py +1198 -0
- aquilia-0.2.0/aquilia/aquilary/errors.py +469 -0
- aquilia-0.2.0/aquilia/aquilary/fingerprint.py +428 -0
- aquilia-0.2.0/aquilia/aquilary/graph.py +334 -0
- aquilia-0.2.0/aquilia/aquilary/handler_wrapper.py +202 -0
- aquilia-0.2.0/aquilia/aquilary/loader.py +430 -0
- aquilia-0.2.0/aquilia/aquilary/route_compiler.py +236 -0
- aquilia-0.2.0/aquilia/aquilary/validator.py +399 -0
- aquilia-0.2.0/aquilia/asgi.py +297 -0
- aquilia-0.2.0/aquilia/auth/__init__.py +233 -0
- aquilia-0.2.0/aquilia/auth/authz.py +566 -0
- aquilia-0.2.0/aquilia/auth/core.py +596 -0
- aquilia-0.2.0/aquilia/auth/crous.py +394 -0
- aquilia-0.2.0/aquilia/auth/faults.py +450 -0
- aquilia-0.2.0/aquilia/auth/guards.py +472 -0
- aquilia-0.2.0/aquilia/auth/hashing.py +365 -0
- aquilia-0.2.0/aquilia/auth/integration/__init__.py +1 -0
- aquilia-0.2.0/aquilia/auth/integration/aquila_sessions.py +464 -0
- aquilia-0.2.0/aquilia/auth/integration/di_providers.py +544 -0
- aquilia-0.2.0/aquilia/auth/integration/flow_guards.py +750 -0
- aquilia-0.2.0/aquilia/auth/integration/middleware.py +531 -0
- aquilia-0.2.0/aquilia/auth/integration/sessions.py +368 -0
- aquilia-0.2.0/aquilia/auth/manager.py +446 -0
- aquilia-0.2.0/aquilia/auth/mfa.py +570 -0
- aquilia-0.2.0/aquilia/auth/oauth.py +555 -0
- aquilia-0.2.0/aquilia/auth/policy/__init__.py +188 -0
- aquilia-0.2.0/aquilia/auth/stores.py +623 -0
- aquilia-0.2.0/aquilia/auth/tokens.py +608 -0
- aquilia-0.2.0/aquilia/cli/__init__.py +34 -0
- aquilia-0.2.0/aquilia/cli/__main__.py +764 -0
- aquilia-0.2.0/aquilia/cli/commands/__init__.py +37 -0
- aquilia-0.2.0/aquilia/cli/commands/add.py +122 -0
- aquilia-0.2.0/aquilia/cli/commands/analytics.py +276 -0
- aquilia-0.2.0/aquilia/cli/commands/compile.py +45 -0
- aquilia-0.2.0/aquilia/cli/commands/discover.py +156 -0
- aquilia-0.2.0/aquilia/cli/commands/doctor.py +179 -0
- aquilia-0.2.0/aquilia/cli/commands/freeze.py +75 -0
- aquilia-0.2.0/aquilia/cli/commands/init.py +62 -0
- aquilia-0.2.0/aquilia/cli/commands/inspect.py +403 -0
- aquilia-0.2.0/aquilia/cli/commands/manifest.py +259 -0
- aquilia-0.2.0/aquilia/cli/commands/migrate.py +166 -0
- aquilia-0.2.0/aquilia/cli/commands/model_cmds.py +413 -0
- aquilia-0.2.0/aquilia/cli/commands/run.py +874 -0
- aquilia-0.2.0/aquilia/cli/commands/serve.py +78 -0
- aquilia-0.2.0/aquilia/cli/commands/validate.py +133 -0
- aquilia-0.2.0/aquilia/cli/commands/ws.py +360 -0
- aquilia-0.2.0/aquilia/cli/compilers/__init__.py +7 -0
- aquilia-0.2.0/aquilia/cli/compilers/workspace.py +312 -0
- aquilia-0.2.0/aquilia/cli/discovery_cli.py +160 -0
- aquilia-0.2.0/aquilia/cli/discovery_utils.py +712 -0
- aquilia-0.2.0/aquilia/cli/generators/__init__.py +11 -0
- aquilia-0.2.0/aquilia/cli/generators/controller.py +193 -0
- aquilia-0.2.0/aquilia/cli/generators/module.py +496 -0
- aquilia-0.2.0/aquilia/cli/generators/workspace.py +808 -0
- aquilia-0.2.0/aquilia/cli/parsers/__init__.py +9 -0
- aquilia-0.2.0/aquilia/cli/parsers/module.py +43 -0
- aquilia-0.2.0/aquilia/cli/parsers/workspace.py +65 -0
- aquilia-0.2.0/aquilia/cli/utils/__init__.py +33 -0
- aquilia-0.2.0/aquilia/cli/utils/colors.py +33 -0
- aquilia-0.2.0/aquilia/cli/utils/workspace.py +82 -0
- aquilia-0.2.0/aquilia/config.py +550 -0
- aquilia-0.2.0/aquilia/config_builders.py +810 -0
- aquilia-0.2.0/aquilia/controller/__init__.py +88 -0
- aquilia-0.2.0/aquilia/controller/base.py +216 -0
- aquilia-0.2.0/aquilia/controller/compiler.py +379 -0
- aquilia-0.2.0/aquilia/controller/decorators.py +194 -0
- aquilia-0.2.0/aquilia/controller/engine.py +455 -0
- aquilia-0.2.0/aquilia/controller/factory.py +360 -0
- aquilia-0.2.0/aquilia/controller/metadata.py +387 -0
- aquilia-0.2.0/aquilia/controller/openapi.py +87 -0
- aquilia-0.2.0/aquilia/controller/router.py +242 -0
- aquilia-0.2.0/aquilia/db/__init__.py +35 -0
- aquilia-0.2.0/aquilia/db/engine.py +456 -0
- aquilia-0.2.0/aquilia/debug/__init__.py +29 -0
- aquilia-0.2.0/aquilia/debug/pages.py +1225 -0
- aquilia-0.2.0/aquilia/di/__init__.py +131 -0
- aquilia-0.2.0/aquilia/di/cli.py +458 -0
- aquilia-0.2.0/aquilia/di/compat.py +103 -0
- aquilia-0.2.0/aquilia/di/core.py +824 -0
- aquilia-0.2.0/aquilia/di/decorators.py +224 -0
- aquilia-0.2.0/aquilia/di/diagnostics.py +106 -0
- aquilia-0.2.0/aquilia/di/errors.py +241 -0
- aquilia-0.2.0/aquilia/di/graph.py +241 -0
- aquilia-0.2.0/aquilia/di/lifecycle.py +217 -0
- aquilia-0.2.0/aquilia/di/providers.py +561 -0
- aquilia-0.2.0/aquilia/di/scopes.py +100 -0
- aquilia-0.2.0/aquilia/di/testing.py +183 -0
- aquilia-0.2.0/aquilia/discovery/__init__.py +27 -0
- aquilia-0.2.0/aquilia/effects.py +265 -0
- aquilia-0.2.0/aquilia/engine.py +22 -0
- aquilia-0.2.0/aquilia/faults/__init__.py +109 -0
- aquilia-0.2.0/aquilia/faults/core.py +467 -0
- aquilia-0.2.0/aquilia/faults/default_handlers.py +487 -0
- aquilia-0.2.0/aquilia/faults/domains.py +625 -0
- aquilia-0.2.0/aquilia/faults/engine.py +513 -0
- aquilia-0.2.0/aquilia/faults/handlers.py +193 -0
- aquilia-0.2.0/aquilia/faults/integrations/__init__.py +136 -0
- aquilia-0.2.0/aquilia/faults/integrations/di.py +185 -0
- aquilia-0.2.0/aquilia/faults/integrations/flow.py +349 -0
- aquilia-0.2.0/aquilia/faults/integrations/models.py +250 -0
- aquilia-0.2.0/aquilia/faults/integrations/registry.py +153 -0
- aquilia-0.2.0/aquilia/faults/integrations/routing.py +211 -0
- aquilia-0.2.0/aquilia/flow.py +20 -0
- aquilia-0.2.0/aquilia/lifecycle.py +315 -0
- aquilia-0.2.0/aquilia/manifest.py +547 -0
- aquilia-0.2.0/aquilia/middleware.py +433 -0
- aquilia-0.2.0/aquilia/middleware_ext/__init__.py +17 -0
- aquilia-0.2.0/aquilia/middleware_ext/request_scope.py +171 -0
- aquilia-0.2.0/aquilia/middleware_ext/session_middleware.py +209 -0
- aquilia-0.2.0/aquilia/models/__init__.py +255 -0
- aquilia-0.2.0/aquilia/models/__init__old.py +101 -0
- aquilia-0.2.0/aquilia/models/ast_nodes.py +213 -0
- aquilia-0.2.0/aquilia/models/base.py +1127 -0
- aquilia-0.2.0/aquilia/models/fields.py +1591 -0
- aquilia-0.2.0/aquilia/models/migrations.py +529 -0
- aquilia-0.2.0/aquilia/models/parser.py +409 -0
- aquilia-0.2.0/aquilia/models/runtime.py +791 -0
- aquilia-0.2.0/aquilia/patterns/__init__.py +90 -0
- aquilia-0.2.0/aquilia/patterns/autofix.py +446 -0
- aquilia-0.2.0/aquilia/patterns/cache.py +334 -0
- aquilia-0.2.0/aquilia/patterns/compiler/__init__.py +15 -0
- aquilia-0.2.0/aquilia/patterns/compiler/ast_nodes.py +212 -0
- aquilia-0.2.0/aquilia/patterns/compiler/compiler.py +382 -0
- aquilia-0.2.0/aquilia/patterns/compiler/parser.py +679 -0
- aquilia-0.2.0/aquilia/patterns/compiler/specificity.py +70 -0
- aquilia-0.2.0/aquilia/patterns/diagnostics/__init__.py +15 -0
- aquilia-0.2.0/aquilia/patterns/diagnostics/errors.py +85 -0
- aquilia-0.2.0/aquilia/patterns/grammar.py +128 -0
- aquilia-0.2.0/aquilia/patterns/lsp/__init__.py +17 -0
- aquilia-0.2.0/aquilia/patterns/lsp/metadata.py +212 -0
- aquilia-0.2.0/aquilia/patterns/matcher.py +236 -0
- aquilia-0.2.0/aquilia/patterns/openapi.py +132 -0
- aquilia-0.2.0/aquilia/patterns/transforms/__init__.py +5 -0
- aquilia-0.2.0/aquilia/patterns/transforms/registry.py +43 -0
- aquilia-0.2.0/aquilia/patterns/types/__init__.py +5 -0
- aquilia-0.2.0/aquilia/patterns/types/registry.py +82 -0
- aquilia-0.2.0/aquilia/patterns/validators/__init__.py +5 -0
- aquilia-0.2.0/aquilia/patterns/validators/registry.py +37 -0
- aquilia-0.2.0/aquilia/request.py +1646 -0
- aquilia-0.2.0/aquilia/response.py +1527 -0
- aquilia-0.2.0/aquilia/server.py +1610 -0
- aquilia-0.2.0/aquilia/sessions/__init__.py +130 -0
- aquilia-0.2.0/aquilia/sessions/core.py +549 -0
- aquilia-0.2.0/aquilia/sessions/decorators.py +395 -0
- aquilia-0.2.0/aquilia/sessions/engine.py +511 -0
- aquilia-0.2.0/aquilia/sessions/enhanced.py +289 -0
- aquilia-0.2.0/aquilia/sessions/faults.py +317 -0
- aquilia-0.2.0/aquilia/sessions/policy.py +571 -0
- aquilia-0.2.0/aquilia/sessions/state.py +185 -0
- aquilia-0.2.0/aquilia/sessions/store.py +543 -0
- aquilia-0.2.0/aquilia/sessions/transport.py +507 -0
- aquilia-0.2.0/aquilia/sockets/__init__.py +145 -0
- aquilia-0.2.0/aquilia/sockets/adapters/__init__.py +14 -0
- aquilia-0.2.0/aquilia/sockets/adapters/base.py +200 -0
- aquilia-0.2.0/aquilia/sockets/adapters/inmemory.py +236 -0
- aquilia-0.2.0/aquilia/sockets/adapters/redis.py +346 -0
- aquilia-0.2.0/aquilia/sockets/compile.py +273 -0
- aquilia-0.2.0/aquilia/sockets/connection.py +313 -0
- aquilia-0.2.0/aquilia/sockets/controller.py +209 -0
- aquilia-0.2.0/aquilia/sockets/decorators.py +304 -0
- aquilia-0.2.0/aquilia/sockets/envelope.py +253 -0
- aquilia-0.2.0/aquilia/sockets/faults.py +163 -0
- aquilia-0.2.0/aquilia/sockets/guards.py +271 -0
- aquilia-0.2.0/aquilia/sockets/middleware.py +244 -0
- aquilia-0.2.0/aquilia/sockets/runtime.py +571 -0
- aquilia-0.2.0/aquilia/templates/__init__.py +109 -0
- aquilia-0.2.0/aquilia/templates/auth_integration.py +450 -0
- aquilia-0.2.0/aquilia/templates/bytecode_cache.py +346 -0
- aquilia-0.2.0/aquilia/templates/cli.py +396 -0
- aquilia-0.2.0/aquilia/templates/context.py +195 -0
- aquilia-0.2.0/aquilia/templates/di_providers.py +385 -0
- aquilia-0.2.0/aquilia/templates/engine.py +388 -0
- aquilia-0.2.0/aquilia/templates/loader.py +208 -0
- aquilia-0.2.0/aquilia/templates/manager.py +407 -0
- aquilia-0.2.0/aquilia/templates/manifest_integration.py +368 -0
- aquilia-0.2.0/aquilia/templates/middleware.py +116 -0
- aquilia-0.2.0/aquilia/templates/security.py +325 -0
- aquilia-0.2.0/aquilia/templates/sessions_integration.py +377 -0
- aquilia-0.2.0/aquilia/utils/__init__.py +16 -0
- aquilia-0.2.0/aquilia/utils/scanner.py +208 -0
- aquilia-0.2.0/aquilia/utils/urls.py +48 -0
- aquilia-0.2.0/aquilia.egg-info/PKG-INFO +41 -0
- aquilia-0.2.0/aquilia.egg-info/SOURCES.txt +227 -0
- aquilia-0.2.0/aquilia.egg-info/dependency_links.txt +1 -0
- aquilia-0.2.0/aquilia.egg-info/entry_points.txt +2 -0
- aquilia-0.2.0/aquilia.egg-info/requires.txt +14 -0
- aquilia-0.2.0/aquilia.egg-info/top_level.txt +1 -0
- aquilia-0.2.0/pyproject.toml +80 -0
- aquilia-0.2.0/setup.cfg +4 -0
- aquilia-0.2.0/setup.py +73 -0
- aquilia-0.2.0/tests/test_aquilary.py +171 -0
- aquilia-0.2.0/tests/test_auth.py +234 -0
- aquilia-0.2.0/tests/test_config.py +226 -0
- aquilia-0.2.0/tests/test_config_builders.py +280 -0
- aquilia-0.2.0/tests/test_controller.py +359 -0
- aquilia-0.2.0/tests/test_datastructures.py +292 -0
- aquilia-0.2.0/tests/test_db_integration.py +170 -0
- aquilia-0.2.0/tests/test_debug_pages.py +673 -0
- aquilia-0.2.0/tests/test_di.py +386 -0
- aquilia-0.2.0/tests/test_effects.py +194 -0
- aquilia-0.2.0/tests/test_exports.py +109 -0
- aquilia-0.2.0/tests/test_fault_engine.py +291 -0
- aquilia-0.2.0/tests/test_fault_integration_deep.py +561 -0
- aquilia-0.2.0/tests/test_faults.py +197 -0
- aquilia-0.2.0/tests/test_flow.py +105 -0
- aquilia-0.2.0/tests/test_lifecycle.py +211 -0
- aquilia-0.2.0/tests/test_manifest.py +328 -0
- aquilia-0.2.0/tests/test_middleware.py +225 -0
- aquilia-0.2.0/tests/test_models_integration.py +546 -0
- aquilia-0.2.0/tests/test_models_migrations.py +219 -0
- aquilia-0.2.0/tests/test_models_orm.py +1376 -0
- aquilia-0.2.0/tests/test_models_parser.py +386 -0
- aquilia-0.2.0/tests/test_models_relations.py +181 -0
- aquilia-0.2.0/tests/test_models_runtime.py +407 -0
- aquilia-0.2.0/tests/test_patterns.py +254 -0
- aquilia-0.2.0/tests/test_request.py +391 -0
- aquilia-0.2.0/tests/test_response.py +210 -0
- aquilia-0.2.0/tests/test_sessions.py +124 -0
- aquilia-0.2.0/tests/test_sockets.py +169 -0
- aquilia-0.2.0/tests/test_templates.py +113 -0
- aquilia-0.2.0/tests/test_uploads.py +100 -0
- aquilia-0.2.0/tests/test_utils.py +81 -0
aquilia-0.2.0/LICENSE
ADDED
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
MIT License
|
|
2
|
+
|
|
3
|
+
Copyright (c) 2026 Aquilia Contributors
|
|
4
|
+
|
|
5
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
6
|
+
of this software and associated documentation files (the "Software"), to deal
|
|
7
|
+
in the Software without restriction, including without limitation the rights
|
|
8
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
9
|
+
copies of the Software, and to permit persons to whom the Software is
|
|
10
|
+
furnished to do so, subject to the following conditions:
|
|
11
|
+
|
|
12
|
+
The above copyright notice and this permission notice shall be included in all
|
|
13
|
+
copies or substantial portions of the Software.
|
|
14
|
+
|
|
15
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
16
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
17
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
18
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
19
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
20
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
21
|
+
SOFTWARE.
|
aquilia-0.2.0/PKG-INFO
ADDED
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
Metadata-Version: 2.4
|
|
2
|
+
Name: aquilia
|
|
3
|
+
Version: 0.2.0
|
|
4
|
+
Summary: Async-native Python web framework with flow-first routing
|
|
5
|
+
Home-page: https://github.com/yourusername/aquilia
|
|
6
|
+
Author: Aquilia Contributors
|
|
7
|
+
License: MIT
|
|
8
|
+
Project-URL: Homepage, https://github.com/yourusername/aquilia
|
|
9
|
+
Project-URL: Documentation, https://github.com/yourusername/aquilia/docs
|
|
10
|
+
Project-URL: Repository, https://github.com/yourusername/aquilia
|
|
11
|
+
Project-URL: Issues, https://github.com/yourusername/aquilia/issues
|
|
12
|
+
Keywords: web,framework,async,asgi,http,api
|
|
13
|
+
Classifier: Development Status :: 3 - Alpha
|
|
14
|
+
Classifier: Intended Audience :: Developers
|
|
15
|
+
Classifier: License :: OSI Approved :: MIT License
|
|
16
|
+
Classifier: Programming Language :: Python :: 3
|
|
17
|
+
Classifier: Programming Language :: Python :: 3.10
|
|
18
|
+
Classifier: Programming Language :: Python :: 3.11
|
|
19
|
+
Classifier: Programming Language :: Python :: 3.12
|
|
20
|
+
Classifier: Topic :: Internet :: WWW/HTTP
|
|
21
|
+
Classifier: Topic :: Internet :: WWW/HTTP :: HTTP Servers
|
|
22
|
+
Classifier: Topic :: Software Development :: Libraries :: Application Frameworks
|
|
23
|
+
Requires-Python: >=3.10
|
|
24
|
+
Description-Content-Type: text/markdown
|
|
25
|
+
License-File: LICENSE
|
|
26
|
+
Requires-Dist: uvicorn>=0.30.0
|
|
27
|
+
Requires-Dist: python-dotenv>=1.0.0
|
|
28
|
+
Requires-Dist: jinja2>=3.1.0
|
|
29
|
+
Requires-Dist: cryptography>=41.0.0
|
|
30
|
+
Requires-Dist: argon2-cffi>=23.1.0
|
|
31
|
+
Requires-Dist: passlib>=1.7.4
|
|
32
|
+
Requires-Dist: aiosqlite>=0.19.0
|
|
33
|
+
Provides-Extra: dev
|
|
34
|
+
Requires-Dist: pytest>=7.4.0; extra == "dev"
|
|
35
|
+
Requires-Dist: pytest-asyncio>=0.21.0; extra == "dev"
|
|
36
|
+
Requires-Dist: pytest-cov>=4.1.0; extra == "dev"
|
|
37
|
+
Requires-Dist: httpx>=0.24.0; extra == "dev"
|
|
38
|
+
Requires-Dist: aiosqlite>=0.19.0; extra == "dev"
|
|
39
|
+
Dynamic: home-page
|
|
40
|
+
Dynamic: license-file
|
|
41
|
+
Dynamic: requires-python
|
|
@@ -0,0 +1,604 @@
|
|
|
1
|
+
"""
|
|
2
|
+
Aquilia - Production-ready async Python web framework
|
|
3
|
+
|
|
4
|
+
Complete integration of:
|
|
5
|
+
- Aquilary: Manifest-driven app registry with dependency resolution
|
|
6
|
+
- Flow: Typed flow-first routing with composable pipelines
|
|
7
|
+
- DI: Scoped dependency injection with lifecycle management
|
|
8
|
+
- Sessions: Cryptographic session management with policies
|
|
9
|
+
- Auth: OAuth2/OIDC, MFA, RBAC/ABAC authorization
|
|
10
|
+
- Faults: Structured error handling with fault domains
|
|
11
|
+
- Middleware: Composable middleware with effect awareness
|
|
12
|
+
- Patterns: Auto-fix, retry, circuit breaker patterns
|
|
13
|
+
|
|
14
|
+
Everything deeply integrated for seamless developer experience.
|
|
15
|
+
"""
|
|
16
|
+
|
|
17
|
+
__version__ = "0.2.0"
|
|
18
|
+
|
|
19
|
+
# ============================================================================
|
|
20
|
+
# Core Framework
|
|
21
|
+
# ============================================================================
|
|
22
|
+
|
|
23
|
+
from .manifest import AppManifest, DatabaseConfig
|
|
24
|
+
from .config import Config, ConfigLoader
|
|
25
|
+
from .config_builders import Workspace, Module, Integration
|
|
26
|
+
from .request import Request
|
|
27
|
+
from .response import Response
|
|
28
|
+
from .server import AquiliaServer
|
|
29
|
+
|
|
30
|
+
# Request data structures
|
|
31
|
+
from ._datastructures import (
|
|
32
|
+
MultiDict,
|
|
33
|
+
Headers,
|
|
34
|
+
URL,
|
|
35
|
+
ParsedContentType,
|
|
36
|
+
Range,
|
|
37
|
+
)
|
|
38
|
+
|
|
39
|
+
# Upload handling
|
|
40
|
+
from ._uploads import (
|
|
41
|
+
UploadFile,
|
|
42
|
+
FormData,
|
|
43
|
+
UploadStore,
|
|
44
|
+
LocalUploadStore,
|
|
45
|
+
)
|
|
46
|
+
|
|
47
|
+
# ============================================================================
|
|
48
|
+
# Aquilary Registry (Replaces Legacy Registry)
|
|
49
|
+
# ============================================================================
|
|
50
|
+
|
|
51
|
+
from .aquilary import (
|
|
52
|
+
Aquilary,
|
|
53
|
+
AquilaryRegistry,
|
|
54
|
+
RuntimeRegistry,
|
|
55
|
+
AppContext,
|
|
56
|
+
RegistryMode,
|
|
57
|
+
RegistryFingerprint,
|
|
58
|
+
RegistryError,
|
|
59
|
+
DependencyCycleError,
|
|
60
|
+
RouteConflictError,
|
|
61
|
+
ManifestValidationError,
|
|
62
|
+
)
|
|
63
|
+
|
|
64
|
+
# ============================================================================
|
|
65
|
+
# Controller System (NEW - First-class controllers)
|
|
66
|
+
# ============================================================================
|
|
67
|
+
|
|
68
|
+
from .controller import (
|
|
69
|
+
Controller,
|
|
70
|
+
RequestCtx,
|
|
71
|
+
GET, POST, PUT, PATCH, DELETE,
|
|
72
|
+
HEAD, OPTIONS, WS,
|
|
73
|
+
route,
|
|
74
|
+
ControllerMetadata,
|
|
75
|
+
RouteMetadata,
|
|
76
|
+
ParameterMetadata,
|
|
77
|
+
extract_controller_metadata,
|
|
78
|
+
ControllerFactory,
|
|
79
|
+
InstantiationMode,
|
|
80
|
+
)
|
|
81
|
+
|
|
82
|
+
# ============================================================================
|
|
83
|
+
# Engine
|
|
84
|
+
# ============================================================================
|
|
85
|
+
|
|
86
|
+
# Note: RequestCtx is imported from .controller above; do not re-import
|
|
87
|
+
# from .engine to avoid shadowing.
|
|
88
|
+
|
|
89
|
+
# ============================================================================
|
|
90
|
+
# DI System (Complete)
|
|
91
|
+
# ============================================================================
|
|
92
|
+
|
|
93
|
+
from .di import (
|
|
94
|
+
Container,
|
|
95
|
+
Registry as DIRegistry,
|
|
96
|
+
Provider,
|
|
97
|
+
ProviderMeta,
|
|
98
|
+
ClassProvider,
|
|
99
|
+
FactoryProvider,
|
|
100
|
+
ValueProvider,
|
|
101
|
+
service,
|
|
102
|
+
factory,
|
|
103
|
+
inject,
|
|
104
|
+
Inject,
|
|
105
|
+
)
|
|
106
|
+
|
|
107
|
+
# ============================================================================
|
|
108
|
+
# Sessions System
|
|
109
|
+
# ============================================================================
|
|
110
|
+
|
|
111
|
+
from .sessions import (
|
|
112
|
+
Session,
|
|
113
|
+
SessionID,
|
|
114
|
+
SessionPolicy,
|
|
115
|
+
SessionEngine,
|
|
116
|
+
SessionPrincipal,
|
|
117
|
+
MemoryStore as SessionMemoryStore,
|
|
118
|
+
CookieTransport,
|
|
119
|
+
SessionFault,
|
|
120
|
+
SessionExpiredFault,
|
|
121
|
+
)
|
|
122
|
+
|
|
123
|
+
# Session decorators and state (NEW - Unique Aquilia syntax)
|
|
124
|
+
from .sessions.decorators import (
|
|
125
|
+
session,
|
|
126
|
+
authenticated,
|
|
127
|
+
stateful,
|
|
128
|
+
SessionRequiredFault,
|
|
129
|
+
AuthenticationRequiredFault,
|
|
130
|
+
)
|
|
131
|
+
|
|
132
|
+
from .sessions.state import (
|
|
133
|
+
SessionState,
|
|
134
|
+
Field as SessionField,
|
|
135
|
+
CartState,
|
|
136
|
+
UserPreferencesState,
|
|
137
|
+
)
|
|
138
|
+
|
|
139
|
+
# Enhanced session features (NEW - Advanced patterns)
|
|
140
|
+
from .sessions.enhanced import (
|
|
141
|
+
SessionContext,
|
|
142
|
+
SessionGuard,
|
|
143
|
+
requires,
|
|
144
|
+
AdminGuard,
|
|
145
|
+
VerifiedEmailGuard,
|
|
146
|
+
)
|
|
147
|
+
|
|
148
|
+
# ============================================================================
|
|
149
|
+
# Auth System (Complete Integration)
|
|
150
|
+
# ============================================================================
|
|
151
|
+
|
|
152
|
+
from .auth.core import (
|
|
153
|
+
Identity,
|
|
154
|
+
IdentityStatus,
|
|
155
|
+
TokenClaims,
|
|
156
|
+
)
|
|
157
|
+
|
|
158
|
+
from .auth.manager import AuthManager
|
|
159
|
+
from .auth.tokens import TokenManager, KeyRing
|
|
160
|
+
from .auth.hashing import PasswordHasher
|
|
161
|
+
from .auth.authz import AuthzEngine, RBACEngine, ABACEngine
|
|
162
|
+
|
|
163
|
+
# Auth Integration
|
|
164
|
+
from .auth.integration.aquila_sessions import (
|
|
165
|
+
AuthPrincipal,
|
|
166
|
+
SessionAuthBridge,
|
|
167
|
+
bind_identity,
|
|
168
|
+
user_session_policy,
|
|
169
|
+
api_session_policy,
|
|
170
|
+
)
|
|
171
|
+
|
|
172
|
+
from .auth.integration.di_providers import (
|
|
173
|
+
register_auth_providers,
|
|
174
|
+
create_auth_container,
|
|
175
|
+
AuthConfig,
|
|
176
|
+
)
|
|
177
|
+
|
|
178
|
+
from .auth.integration.middleware import (
|
|
179
|
+
AquilAuthMiddleware,
|
|
180
|
+
create_auth_middleware_stack,
|
|
181
|
+
)
|
|
182
|
+
|
|
183
|
+
# Note: Flow guards removed - use controller-based auth with middleware
|
|
184
|
+
# from .auth.integration.flow_guards import (
|
|
185
|
+
# require_auth,
|
|
186
|
+
# require_scopes,
|
|
187
|
+
# require_roles,
|
|
188
|
+
# )
|
|
189
|
+
|
|
190
|
+
# ============================================================================
|
|
191
|
+
# Faults System
|
|
192
|
+
# ============================================================================
|
|
193
|
+
|
|
194
|
+
from .faults import (
|
|
195
|
+
Fault,
|
|
196
|
+
FaultContext,
|
|
197
|
+
FaultEngine,
|
|
198
|
+
FaultHandler,
|
|
199
|
+
RecoveryStrategy,
|
|
200
|
+
# Model faults
|
|
201
|
+
ModelFault,
|
|
202
|
+
AMDLParseFault,
|
|
203
|
+
ModelNotFoundFault,
|
|
204
|
+
ModelRegistrationFault,
|
|
205
|
+
MigrationFault,
|
|
206
|
+
MigrationConflictFault,
|
|
207
|
+
QueryFault,
|
|
208
|
+
DatabaseConnectionFault,
|
|
209
|
+
SchemaFault,
|
|
210
|
+
)
|
|
211
|
+
|
|
212
|
+
# ============================================================================
|
|
213
|
+
# Middleware System
|
|
214
|
+
# ============================================================================
|
|
215
|
+
|
|
216
|
+
from .middleware import (
|
|
217
|
+
Middleware,
|
|
218
|
+
Handler,
|
|
219
|
+
MiddlewareStack,
|
|
220
|
+
RequestIdMiddleware,
|
|
221
|
+
LoggingMiddleware,
|
|
222
|
+
)
|
|
223
|
+
|
|
224
|
+
# ============================================================================
|
|
225
|
+
# Debug Pages
|
|
226
|
+
# ============================================================================
|
|
227
|
+
|
|
228
|
+
from .debug import (
|
|
229
|
+
DebugPageRenderer,
|
|
230
|
+
render_debug_exception_page,
|
|
231
|
+
render_http_error_page,
|
|
232
|
+
render_welcome_page,
|
|
233
|
+
)
|
|
234
|
+
|
|
235
|
+
# ============================================================================
|
|
236
|
+
# Effects & Patterns
|
|
237
|
+
# ============================================================================
|
|
238
|
+
|
|
239
|
+
from .effects import Effect, EffectProvider, EffectRegistry
|
|
240
|
+
|
|
241
|
+
# ============================================================================
|
|
242
|
+
# Sockets (WebSockets)
|
|
243
|
+
# ============================================================================
|
|
244
|
+
|
|
245
|
+
from .sockets import (
|
|
246
|
+
SocketController,
|
|
247
|
+
Socket,
|
|
248
|
+
OnConnect,
|
|
249
|
+
OnDisconnect,
|
|
250
|
+
Event,
|
|
251
|
+
AquilaSockets,
|
|
252
|
+
SocketRouter,
|
|
253
|
+
SocketGuard,
|
|
254
|
+
)
|
|
255
|
+
|
|
256
|
+
# ============================================================================
|
|
257
|
+
# Templates
|
|
258
|
+
# ============================================================================
|
|
259
|
+
|
|
260
|
+
from .templates import (
|
|
261
|
+
TemplateEngine,
|
|
262
|
+
TemplateMiddleware,
|
|
263
|
+
)
|
|
264
|
+
|
|
265
|
+
# ============================================================================
|
|
266
|
+
# Patterns
|
|
267
|
+
# ============================================================================
|
|
268
|
+
|
|
269
|
+
from .patterns import (
|
|
270
|
+
PatternCompiler,
|
|
271
|
+
PatternMatcher,
|
|
272
|
+
CompiledPattern,
|
|
273
|
+
TypeRegistry as PatternTypeRegistry,
|
|
274
|
+
)
|
|
275
|
+
|
|
276
|
+
# ============================================================================
|
|
277
|
+
# Discovery
|
|
278
|
+
# ============================================================================
|
|
279
|
+
|
|
280
|
+
from .discovery import PackageScanner
|
|
281
|
+
|
|
282
|
+
# ============================================================================
|
|
283
|
+
# Lifecycle
|
|
284
|
+
# ============================================================================
|
|
285
|
+
|
|
286
|
+
from .lifecycle import (
|
|
287
|
+
LifecycleCoordinator,
|
|
288
|
+
LifecyclePhase,
|
|
289
|
+
LifecycleError,
|
|
290
|
+
)
|
|
291
|
+
|
|
292
|
+
# ============================================================================
|
|
293
|
+
# Model System (Pure Python ORM)
|
|
294
|
+
# ============================================================================
|
|
295
|
+
|
|
296
|
+
from .models import (
|
|
297
|
+
# New pure-Python model system
|
|
298
|
+
Model,
|
|
299
|
+
ModelMeta,
|
|
300
|
+
ModelRegistry,
|
|
301
|
+
Q,
|
|
302
|
+
# Fields
|
|
303
|
+
Field,
|
|
304
|
+
FieldValidationError,
|
|
305
|
+
Index,
|
|
306
|
+
UniqueConstraint,
|
|
307
|
+
AutoField,
|
|
308
|
+
BigAutoField,
|
|
309
|
+
IntegerField,
|
|
310
|
+
BigIntegerField,
|
|
311
|
+
SmallIntegerField,
|
|
312
|
+
PositiveIntegerField,
|
|
313
|
+
PositiveSmallIntegerField,
|
|
314
|
+
FloatField,
|
|
315
|
+
DecimalField,
|
|
316
|
+
CharField,
|
|
317
|
+
TextField,
|
|
318
|
+
SlugField,
|
|
319
|
+
EmailField,
|
|
320
|
+
URLField,
|
|
321
|
+
UUIDField,
|
|
322
|
+
FilePathField,
|
|
323
|
+
DateField,
|
|
324
|
+
TimeField,
|
|
325
|
+
DateTimeField,
|
|
326
|
+
DurationField,
|
|
327
|
+
BooleanField,
|
|
328
|
+
BinaryField,
|
|
329
|
+
JSONField,
|
|
330
|
+
ForeignKey,
|
|
331
|
+
OneToOneField,
|
|
332
|
+
ManyToManyField,
|
|
333
|
+
GenericIPAddressField,
|
|
334
|
+
FileField,
|
|
335
|
+
ImageField,
|
|
336
|
+
ArrayField,
|
|
337
|
+
HStoreField,
|
|
338
|
+
GeneratedField,
|
|
339
|
+
# Legacy AMDL (backward compat)
|
|
340
|
+
ModelNode,
|
|
341
|
+
SlotNode,
|
|
342
|
+
LinkNode,
|
|
343
|
+
IndexNode as LegacyIndexNode,
|
|
344
|
+
HookNode,
|
|
345
|
+
MetaNode,
|
|
346
|
+
NoteNode,
|
|
347
|
+
AMDLFile,
|
|
348
|
+
FieldType,
|
|
349
|
+
LinkKind,
|
|
350
|
+
parse_amdl,
|
|
351
|
+
parse_amdl_file,
|
|
352
|
+
parse_amdl_directory,
|
|
353
|
+
AMDLParseError,
|
|
354
|
+
ModelProxy,
|
|
355
|
+
# Migrations
|
|
356
|
+
MigrationRunner,
|
|
357
|
+
MigrationOps,
|
|
358
|
+
generate_migration_file,
|
|
359
|
+
)
|
|
360
|
+
|
|
361
|
+
from .db import (
|
|
362
|
+
AquiliaDatabase,
|
|
363
|
+
configure_database,
|
|
364
|
+
get_database,
|
|
365
|
+
set_database,
|
|
366
|
+
DatabaseError,
|
|
367
|
+
)
|
|
368
|
+
|
|
369
|
+
# ============================================================================
|
|
370
|
+
# Exports
|
|
371
|
+
# ============================================================================
|
|
372
|
+
|
|
373
|
+
__all__ = [
|
|
374
|
+
# Core
|
|
375
|
+
"AquiliaServer",
|
|
376
|
+
"AppManifest",
|
|
377
|
+
"DatabaseConfig",
|
|
378
|
+
"Config",
|
|
379
|
+
"ConfigLoader",
|
|
380
|
+
"Request",
|
|
381
|
+
"Response",
|
|
382
|
+
|
|
383
|
+
# Request data structures
|
|
384
|
+
"MultiDict",
|
|
385
|
+
"Headers",
|
|
386
|
+
"URL",
|
|
387
|
+
"ParsedContentType",
|
|
388
|
+
"Range",
|
|
389
|
+
|
|
390
|
+
# Upload handling
|
|
391
|
+
"UploadFile",
|
|
392
|
+
"FormData",
|
|
393
|
+
"UploadStore",
|
|
394
|
+
"LocalUploadStore",
|
|
395
|
+
|
|
396
|
+
# Aquilary
|
|
397
|
+
"Aquilary",
|
|
398
|
+
"AquilaryRegistry",
|
|
399
|
+
"RuntimeRegistry",
|
|
400
|
+
"AppContext",
|
|
401
|
+
"RegistryMode",
|
|
402
|
+
|
|
403
|
+
# Controller (NEW - First-class)
|
|
404
|
+
"Controller",
|
|
405
|
+
"RequestCtx",
|
|
406
|
+
"GET", "POST", "PUT", "PATCH", "DELETE",
|
|
407
|
+
"HEAD", "OPTIONS", "WS",
|
|
408
|
+
"route",
|
|
409
|
+
"ControllerMetadata",
|
|
410
|
+
"extract_controller_metadata",
|
|
411
|
+
"ControllerFactory",
|
|
412
|
+
"InstantiationMode",
|
|
413
|
+
|
|
414
|
+
|
|
415
|
+
# DI
|
|
416
|
+
"Container",
|
|
417
|
+
"DIRegistry",
|
|
418
|
+
"Provider",
|
|
419
|
+
"ProviderMeta",
|
|
420
|
+
"ClassProvider",
|
|
421
|
+
"FactoryProvider",
|
|
422
|
+
"ValueProvider",
|
|
423
|
+
"service",
|
|
424
|
+
"factory",
|
|
425
|
+
"inject",
|
|
426
|
+
"Inject",
|
|
427
|
+
|
|
428
|
+
# Sessions
|
|
429
|
+
"Session",
|
|
430
|
+
"SessionID",
|
|
431
|
+
"SessionPolicy",
|
|
432
|
+
"SessionEngine",
|
|
433
|
+
"SessionPrincipal",
|
|
434
|
+
"SessionMemoryStore",
|
|
435
|
+
"CookieTransport",
|
|
436
|
+
|
|
437
|
+
# Session decorators (NEW - Unique syntax)
|
|
438
|
+
"session",
|
|
439
|
+
"authenticated",
|
|
440
|
+
"stateful",
|
|
441
|
+
"SessionState",
|
|
442
|
+
"SessionField",
|
|
443
|
+
"CartState",
|
|
444
|
+
"UserPreferencesState",
|
|
445
|
+
|
|
446
|
+
# Enhanced session features (NEW - Advanced patterns)
|
|
447
|
+
"SessionContext",
|
|
448
|
+
"SessionGuard",
|
|
449
|
+
"requires",
|
|
450
|
+
"AdminGuard",
|
|
451
|
+
"VerifiedEmailGuard",
|
|
452
|
+
|
|
453
|
+
# Config builders (NEW - Python config)
|
|
454
|
+
"Workspace",
|
|
455
|
+
"Module",
|
|
456
|
+
"Integration",
|
|
457
|
+
|
|
458
|
+
# Auth - Core
|
|
459
|
+
"Identity",
|
|
460
|
+
"AuthManager",
|
|
461
|
+
"TokenManager",
|
|
462
|
+
"KeyRing",
|
|
463
|
+
"PasswordHasher",
|
|
464
|
+
"AuthzEngine",
|
|
465
|
+
|
|
466
|
+
# Auth - Integration
|
|
467
|
+
"AuthPrincipal",
|
|
468
|
+
"SessionAuthBridge",
|
|
469
|
+
"bind_identity",
|
|
470
|
+
"user_session_policy",
|
|
471
|
+
"api_session_policy",
|
|
472
|
+
"register_auth_providers",
|
|
473
|
+
"create_auth_container",
|
|
474
|
+
"AuthConfig",
|
|
475
|
+
"AquilAuthMiddleware",
|
|
476
|
+
"create_auth_middleware_stack",
|
|
477
|
+
|
|
478
|
+
# Faults
|
|
479
|
+
"Fault",
|
|
480
|
+
"FaultContext",
|
|
481
|
+
"FaultEngine",
|
|
482
|
+
"FaultHandler",
|
|
483
|
+
"RecoveryStrategy",
|
|
484
|
+
"ModelFault",
|
|
485
|
+
"AMDLParseFault",
|
|
486
|
+
"ModelNotFoundFault",
|
|
487
|
+
"ModelRegistrationFault",
|
|
488
|
+
"MigrationFault",
|
|
489
|
+
"MigrationConflictFault",
|
|
490
|
+
"QueryFault",
|
|
491
|
+
"DatabaseConnectionFault",
|
|
492
|
+
"SchemaFault",
|
|
493
|
+
|
|
494
|
+
# Middleware
|
|
495
|
+
"Middleware",
|
|
496
|
+
"Handler",
|
|
497
|
+
"MiddlewareStack",
|
|
498
|
+
|
|
499
|
+
# Debug Pages
|
|
500
|
+
"DebugPageRenderer",
|
|
501
|
+
"render_debug_exception_page",
|
|
502
|
+
"render_http_error_page",
|
|
503
|
+
"render_welcome_page",
|
|
504
|
+
|
|
505
|
+
# Effects
|
|
506
|
+
"Effect",
|
|
507
|
+
"EffectProvider",
|
|
508
|
+
"EffectRegistry",
|
|
509
|
+
|
|
510
|
+
# Sockets (WebSockets)
|
|
511
|
+
"SocketController",
|
|
512
|
+
"Socket",
|
|
513
|
+
"OnConnect",
|
|
514
|
+
"OnDisconnect",
|
|
515
|
+
"Event",
|
|
516
|
+
"AquilaSockets",
|
|
517
|
+
"SocketRouter",
|
|
518
|
+
"SocketGuard",
|
|
519
|
+
|
|
520
|
+
# Templates
|
|
521
|
+
"TemplateEngine",
|
|
522
|
+
"TemplateMiddleware",
|
|
523
|
+
|
|
524
|
+
# Patterns
|
|
525
|
+
"PatternCompiler",
|
|
526
|
+
"PatternMatcher",
|
|
527
|
+
"CompiledPattern",
|
|
528
|
+
"PatternTypeRegistry",
|
|
529
|
+
|
|
530
|
+
# Discovery
|
|
531
|
+
"PackageScanner",
|
|
532
|
+
|
|
533
|
+
# Lifecycle
|
|
534
|
+
"LifecycleCoordinator",
|
|
535
|
+
|
|
536
|
+
# Model System (Pure Python ORM)
|
|
537
|
+
"Model",
|
|
538
|
+
"ModelMeta",
|
|
539
|
+
"ModelRegistry",
|
|
540
|
+
"Q",
|
|
541
|
+
"Field",
|
|
542
|
+
"FieldValidationError",
|
|
543
|
+
"Index",
|
|
544
|
+
"UniqueConstraint",
|
|
545
|
+
"AutoField",
|
|
546
|
+
"BigAutoField",
|
|
547
|
+
"IntegerField",
|
|
548
|
+
"BigIntegerField",
|
|
549
|
+
"SmallIntegerField",
|
|
550
|
+
"PositiveIntegerField",
|
|
551
|
+
"PositiveSmallIntegerField",
|
|
552
|
+
"FloatField",
|
|
553
|
+
"DecimalField",
|
|
554
|
+
"CharField",
|
|
555
|
+
"TextField",
|
|
556
|
+
"SlugField",
|
|
557
|
+
"EmailField",
|
|
558
|
+
"URLField",
|
|
559
|
+
"UUIDField",
|
|
560
|
+
"FilePathField",
|
|
561
|
+
"DateField",
|
|
562
|
+
"TimeField",
|
|
563
|
+
"DateTimeField",
|
|
564
|
+
"DurationField",
|
|
565
|
+
"BooleanField",
|
|
566
|
+
"BinaryField",
|
|
567
|
+
"JSONField",
|
|
568
|
+
"ForeignKey",
|
|
569
|
+
"OneToOneField",
|
|
570
|
+
"ManyToManyField",
|
|
571
|
+
"GenericIPAddressField",
|
|
572
|
+
"FileField",
|
|
573
|
+
"ImageField",
|
|
574
|
+
"ArrayField",
|
|
575
|
+
"HStoreField",
|
|
576
|
+
"GeneratedField",
|
|
577
|
+
# Legacy AMDL (backward compat)
|
|
578
|
+
"ModelNode",
|
|
579
|
+
"SlotNode",
|
|
580
|
+
"LinkNode",
|
|
581
|
+
"LegacyIndexNode",
|
|
582
|
+
"HookNode",
|
|
583
|
+
"MetaNode",
|
|
584
|
+
"NoteNode",
|
|
585
|
+
"AMDLFile",
|
|
586
|
+
"FieldType",
|
|
587
|
+
"LinkKind",
|
|
588
|
+
"parse_amdl",
|
|
589
|
+
"parse_amdl_file",
|
|
590
|
+
"parse_amdl_directory",
|
|
591
|
+
"AMDLParseError",
|
|
592
|
+
"ModelProxy",
|
|
593
|
+
# Migrations
|
|
594
|
+
"MigrationRunner",
|
|
595
|
+
"MigrationOps",
|
|
596
|
+
"generate_migration_file",
|
|
597
|
+
|
|
598
|
+
# Database
|
|
599
|
+
"AquiliaDatabase",
|
|
600
|
+
"configure_database",
|
|
601
|
+
"get_database",
|
|
602
|
+
"set_database",
|
|
603
|
+
"DatabaseError",
|
|
604
|
+
]
|