sillo-framework 0.3.2.dev1__tar.gz → 1.0.0a2__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.
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a2}/CHANGELOG.md +109 -0
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a2}/PKG-INFO +241 -43
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a2}/README.md +240 -42
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a2}/pyproject.toml +23 -2
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a2}/sillo/__init__.py +1 -1
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a2}/sillo/application.py +246 -157
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a2}/sillo/core/converters.py +117 -0
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a2}/sillo/core/dependencies/base.py +83 -12
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a2}/sillo/core/error/handler.py +42 -32
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a2}/sillo/core/http/context.py +11 -2
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a2}/sillo/core/routing/__init__.py +5 -0
- sillo_framework-1.0.0a2/sillo/core/routing/_utils.py +193 -0
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a2}/sillo/core/routing/grouping.py +27 -8
- sillo_framework-1.0.0a2/sillo/core/routing/introspect.py +131 -0
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a2}/sillo/core/routing/router.py +382 -67
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a2}/sillo/core/routing/websocket.py +12 -2
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a2}/sillo/events/types.py +2 -2
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a2}/sillo/exception_handler.py +8 -1
- sillo_framework-1.0.0a2/sillo/handlers/error_report.py +445 -0
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a2}/sillo/handlers/not_found.py +55 -25
- sillo_framework-1.0.0a2/sillo/middleware/define.py +264 -0
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a2}/sillo/security/csrf/_middleware.py +12 -6
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a2}/sillo/storage/drivers/local.py +3 -3
- sillo_framework-1.0.0a2/tests/test_auth/test_apikey_backend_manager_mode.py +101 -0
- sillo_framework-1.0.0a2/tests/test_auth/test_apikey_user_mixin.py +104 -0
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a2}/tests/test_auth/test_session_guard.py +91 -0
- sillo_framework-1.0.0a2/tests/test_auth/test_session_user_mixin.py +147 -0
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a2}/tests/test_console/test_cli.py +15 -1
- sillo_framework-1.0.0a2/tests/test_dependencies/test_dependency_overrides.py +238 -0
- sillo_framework-1.0.0a2/tests/test_exception_handlers/test_error_report.py +375 -0
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a2}/tests/test_exception_handlers/test_not_found_handler.py +10 -5
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a2}/tests/test_http/test_http_client.py +10 -0
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a2}/tests/test_middleware/test_asgi_middleware.py +36 -53
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a2}/tests/test_middleware/test_raw_asgi_layers.py +124 -8
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a2}/tests/test_middleware/test_security_middleware.py +6 -0
- sillo_framework-1.0.0a2/tests/test_objects/test_common.py +70 -0
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a2}/tests/test_record/test_backend_config.py +63 -1
- sillo_framework-1.0.0a2/tests/test_record/test_manager_lifecycle.py +215 -0
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a2}/tests/test_record/test_savepoints.py +20 -1
- sillo_framework-1.0.0a2/tests/test_record/test_scopes.py +117 -0
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a2}/tests/test_responses/test_abort_not_found.py +6 -4
- sillo_framework-1.0.0a2/tests/test_routing/test_grouping_coverage.py +213 -0
- sillo_framework-1.0.0a2/tests/test_routing/test_route_ordering.py +292 -0
- sillo_framework-1.0.0a2/tests/test_routing/test_router_app_options.py +592 -0
- sillo_framework-1.0.0a2/tests/test_routing/test_router_use_raw_asgi.py +149 -0
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a2}/tests/test_security/test_backends.py +6 -0
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a2}/tests/test_security/test_csrf_regressions.py +28 -0
- sillo_framework-1.0.0a2/tests/test_security/test_ratelimit_config.py +114 -0
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a2}/tests/test_testclient/test_client_lifecycle.py +14 -0
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a2}/tests/test_websockets/test_websocket_dependencies.py +31 -0
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a2}/tests/test_websockets/test_websocket_routing.py +42 -0
- sillo_framework-0.3.2.dev1/.github/CODE_OF_CONDUCT.md +0 -30
- sillo_framework-0.3.2.dev1/.github/CONTRIBUTING.MD +0 -207
- sillo_framework-0.3.2.dev1/.github/ISSUE_TEMPLATE/bug_report.md +0 -61
- sillo_framework-0.3.2.dev1/.github/ISSUE_TEMPLATE/feature_request.md +0 -56
- sillo_framework-0.3.2.dev1/.github/dependabot.yml +0 -6
- sillo_framework-0.3.2.dev1/.github/funding.yml +0 -1
- sillo_framework-0.3.2.dev1/.github/workflows/coverage.yml +0 -72
- sillo_framework-0.3.2.dev1/.github/workflows/format-code.yml +0 -43
- sillo_framework-0.3.2.dev1/.github/workflows/lint.yaml +0 -48
- sillo_framework-0.3.2.dev1/.github/workflows/merge-to-main.yml +0 -58
- sillo_framework-0.3.2.dev1/.github/workflows/release.yml +0 -108
- sillo_framework-0.3.2.dev1/.github/workflows/run-tests.yaml +0 -88
- sillo_framework-0.3.2.dev1/.github/workflows/triage.yml +0 -20
- sillo_framework-0.3.2.dev1/.github/workflows/type-check.yaml +0 -44
- sillo_framework-0.3.2.dev1/V1.md +0 -191
- sillo_framework-0.3.2.dev1/benchmarks/.gitignore +0 -8
- sillo_framework-0.3.2.dev1/benchmarks/README.md +0 -352
- sillo_framework-0.3.2.dev1/benchmarks/pyproject.toml +0 -51
- sillo_framework-0.3.2.dev1/benchmarks/results/.gitkeep +0 -0
- sillo_framework-0.3.2.dev1/benchmarks/sillo_bench/__init__.py +0 -10
- sillo_framework-0.3.2.dev1/benchmarks/sillo_bench/__main__.py +0 -8
- sillo_framework-0.3.2.dev1/benchmarks/sillo_bench/apps/__init__.py +0 -6
- sillo_framework-0.3.2.dev1/benchmarks/sillo_bench/apps/django_app.py +0 -175
- sillo_framework-0.3.2.dev1/benchmarks/sillo_bench/apps/fastapi_app.py +0 -68
- sillo_framework-0.3.2.dev1/benchmarks/sillo_bench/apps/flask_app.py +0 -110
- sillo_framework-0.3.2.dev1/benchmarks/sillo_bench/apps/sillo_app.py +0 -57
- sillo_framework-0.3.2.dev1/benchmarks/sillo_bench/apps/starlette_app.py +0 -82
- sillo_framework-0.3.2.dev1/benchmarks/sillo_bench/cli.py +0 -382
- sillo_framework-0.3.2.dev1/benchmarks/sillo_bench/environment.py +0 -139
- sillo_framework-0.3.2.dev1/benchmarks/sillo_bench/loadtools.py +0 -434
- sillo_framework-0.3.2.dev1/benchmarks/sillo_bench/payloads.py +0 -57
- sillo_framework-0.3.2.dev1/benchmarks/sillo_bench/report.py +0 -379
- sillo_framework-0.3.2.dev1/benchmarks/sillo_bench/runner.py +0 -426
- sillo_framework-0.3.2.dev1/benchmarks/sillo_bench/scenarios.py +0 -103
- sillo_framework-0.3.2.dev1/coverage.json +0 -1
- sillo_framework-0.3.2.dev1/docs/.github/workflows/ci.yml +0 -38
- sillo_framework-0.3.2.dev1/docs/.github/workflows/deploy-docs-preview.yml +0 -133
- sillo_framework-0.3.2.dev1/docs/.github/workflows/deploy-docs.yml +0 -60
- sillo_framework-0.3.2.dev1/docs/.github/workflows/publish-package.yml +0 -61
- sillo_framework-0.3.2.dev1/docs/.gitignore +0 -26
- sillo_framework-0.3.2.dev1/docs/.prettierrc +0 -9
- sillo_framework-0.3.2.dev1/docs/README.md +0 -69
- sillo_framework-0.3.2.dev1/docs/bun.lock +0 -1800
- sillo_framework-0.3.2.dev1/docs/docs/README.md +0 -49
- sillo_framework-0.3.2.dev1/docs/docs/astro.config.mjs +0 -762
- sillo_framework-0.3.2.dev1/docs/docs/package.json +0 -24
- sillo_framework-0.3.2.dev1/docs/docs/public/favicon.svg +0 -1
- sillo_framework-0.3.2.dev1/docs/docs/public/logo-white.svg +0 -1
- sillo_framework-0.3.2.dev1/docs/docs/public/logo.ico +0 -0
- sillo_framework-0.3.2.dev1/docs/docs/public/logo.png +0 -0
- sillo_framework-0.3.2.dev1/docs/docs/src/assets/houston.webp +0 -0
- sillo_framework-0.3.2.dev1/docs/docs/src/assets/logo-black.svg +0 -1
- sillo_framework-0.3.2.dev1/docs/docs/src/assets/logo-white.svg +0 -1
- sillo_framework-0.3.2.dev1/docs/docs/src/assets/placeholder.svg +0 -38
- sillo_framework-0.3.2.dev1/docs/docs/src/assets/placeholder169.svg +0 -40
- sillo_framework-0.3.2.dev1/docs/docs/src/components/Header.astro +0 -405
- sillo_framework-0.3.2.dev1/docs/docs/src/components/MarkdownContent.astro +0 -85
- sillo_framework-0.3.2.dev1/docs/docs/src/components/MermaidRenderer.astro +0 -398
- sillo_framework-0.3.2.dev1/docs/docs/src/components/PageFrame.astro +0 -30
- sillo_framework-0.3.2.dev1/docs/docs/src/components/SectionNav.astro +0 -309
- sillo_framework-0.3.2.dev1/docs/docs/src/components/Sidebar.astro +0 -112
- sillo_framework-0.3.2.dev1/docs/docs/src/components/SiteFooter.astro +0 -399
- sillo_framework-0.3.2.dev1/docs/docs/src/components/VersionSwitcher.astro +0 -206
- sillo_framework-0.3.2.dev1/docs/docs/src/content/docs/packages/graphql/context.md +0 -162
- sillo_framework-0.3.2.dev1/docs/docs/src/content/docs/packages/graphql/errors.md +0 -177
- sillo_framework-0.3.2.dev1/docs/docs/src/content/docs/packages/graphql/index.md +0 -124
- sillo_framework-0.3.2.dev1/docs/docs/src/content/docs/packages/graphql/limits.md +0 -179
- sillo_framework-0.3.2.dev1/docs/docs/src/content/docs/packages/graphql/loaders.md +0 -159
- sillo_framework-0.3.2.dev1/docs/docs/src/content/docs/packages/graphql/observability.md +0 -154
- sillo_framework-0.3.2.dev1/docs/docs/src/content/docs/packages/graphql/persisted.md +0 -146
- sillo_framework-0.3.2.dev1/docs/docs/src/content/docs/packages/graphql/resolvers.md +0 -195
- sillo_framework-0.3.2.dev1/docs/docs/src/content/docs/packages/graphql/subscriptions.md +0 -191
- sillo_framework-0.3.2.dev1/docs/docs/src/content/docs/packages/graphql/testing.md +0 -223
- sillo_framework-0.3.2.dev1/docs/docs/src/content/docs/packages/graphql/transport.md +0 -186
- sillo_framework-0.3.2.dev1/docs/docs/src/content/docs/packages/index.md +0 -61
- sillo_framework-0.3.2.dev1/docs/docs/src/content/docs/packages/warder/actions.md +0 -101
- sillo_framework-0.3.2.dev1/docs/docs/src/content/docs/packages/warder/auth.md +0 -130
- sillo_framework-0.3.2.dev1/docs/docs/src/content/docs/packages/warder/cli.md +0 -103
- sillo_framework-0.3.2.dev1/docs/docs/src/content/docs/packages/warder/columns.md +0 -115
- sillo_framework-0.3.2.dev1/docs/docs/src/content/docs/packages/warder/dashboard.md +0 -89
- sillo_framework-0.3.2.dev1/docs/docs/src/content/docs/packages/warder/declarations.md +0 -142
- sillo_framework-0.3.2.dev1/docs/docs/src/content/docs/packages/warder/detail.md +0 -86
- sillo_framework-0.3.2.dev1/docs/docs/src/content/docs/packages/warder/embedding.md +0 -94
- sillo_framework-0.3.2.dev1/docs/docs/src/content/docs/packages/warder/filters.md +0 -81
- sillo_framework-0.3.2.dev1/docs/docs/src/content/docs/packages/warder/forms.md +0 -146
- sillo_framework-0.3.2.dev1/docs/docs/src/content/docs/packages/warder/images/dashboard.png +0 -0
- sillo_framework-0.3.2.dev1/docs/docs/src/content/docs/packages/warder/images/detail.png +0 -0
- sillo_framework-0.3.2.dev1/docs/docs/src/content/docs/packages/warder/images/form.png +0 -0
- sillo_framework-0.3.2.dev1/docs/docs/src/content/docs/packages/warder/images/list.png +0 -0
- sillo_framework-0.3.2.dev1/docs/docs/src/content/docs/packages/warder/images/login.png +0 -0
- sillo_framework-0.3.2.dev1/docs/docs/src/content/docs/packages/warder/images/many-to-many.png +0 -0
- sillo_framework-0.3.2.dev1/docs/docs/src/content/docs/packages/warder/images/money.png +0 -0
- sillo_framework-0.3.2.dev1/docs/docs/src/content/docs/packages/warder/images/page.png +0 -0
- sillo_framework-0.3.2.dev1/docs/docs/src/content/docs/packages/warder/images/panels.png +0 -0
- sillo_framework-0.3.2.dev1/docs/docs/src/content/docs/packages/warder/images/picker.png +0 -0
- sillo_framework-0.3.2.dev1/docs/docs/src/content/docs/packages/warder/images/results.png +0 -0
- sillo_framework-0.3.2.dev1/docs/docs/src/content/docs/packages/warder/images/staff.png +0 -0
- sillo_framework-0.3.2.dev1/docs/docs/src/content/docs/packages/warder/index.md +0 -113
- sillo_framework-0.3.2.dev1/docs/docs/src/content/docs/packages/warder/lists.md +0 -137
- sillo_framework-0.3.2.dev1/docs/docs/src/content/docs/packages/warder/pages.md +0 -74
- sillo_framework-0.3.2.dev1/docs/docs/src/content/docs/packages/warder/permissions.md +0 -161
- sillo_framework-0.3.2.dev1/docs/docs/src/content/docs/packages/warder/quickstart.md +0 -101
- sillo_framework-0.3.2.dev1/docs/docs/src/content/docs/packages/warder/reference.md +0 -151
- sillo_framework-0.3.2.dev1/docs/docs/src/content/docs/packages/warder/relations.md +0 -101
- sillo_framework-0.3.2.dev1/docs/docs/src/content/docs/packages/warder/resources.md +0 -102
- sillo_framework-0.3.2.dev1/docs/docs/src/content/docs/packages/warder/theming.md +0 -104
- sillo_framework-0.3.2.dev1/docs/docs/src/content/docs/packages/warder/widgets.md +0 -89
- sillo_framework-0.3.2.dev1/docs/docs/src/content/docs/packages/wire/backlog.md +0 -169
- sillo_framework-0.3.2.dev1/docs/docs/src/content/docs/packages/wire/consumers.md +0 -151
- sillo_framework-0.3.2.dev1/docs/docs/src/content/docs/packages/wire/hub.md +0 -158
- sillo_framework-0.3.2.dev1/docs/docs/src/content/docs/packages/wire/index.md +0 -127
- sillo_framework-0.3.2.dev1/docs/docs/src/content/docs/packages/wire/peers.md +0 -148
- sillo_framework-0.3.2.dev1/docs/docs/src/content/docs/packages/wire/presence.md +0 -132
- sillo_framework-0.3.2.dev1/docs/docs/src/content/docs/packages/wire/reference.md +0 -178
- sillo_framework-0.3.2.dev1/docs/docs/src/content/docs/packages/wire/testing.md +0 -181
- sillo_framework-0.3.2.dev1/docs/docs/src/content/docs/reference/components.mdx +0 -180
- sillo_framework-0.3.2.dev1/docs/docs/src/content/docs/reference/plugin-api.md +0 -116
- sillo_framework-0.3.2.dev1/docs/docs/src/content/docs/showcase/splash/banner.mdx +0 -37
- sillo_framework-0.3.2.dev1/docs/docs/src/content/docs/showcase/splash/centered-top.mdx +0 -37
- sillo_framework-0.3.2.dev1/docs/docs/src/content/docs/showcase/splash/centered.mdx +0 -37
- sillo_framework-0.3.2.dev1/docs/docs/src/content/docs/showcase/splash/split-left.mdx +0 -37
- sillo_framework-0.3.2.dev1/docs/docs/src/content/docs/showcase/splash/split-right.mdx +0 -37
- sillo_framework-0.3.2.dev1/docs/docs/src/content/docs/showcase/splash-pages.mdx +0 -74
- sillo_framework-0.3.2.dev1/docs/docs/src/content/docs/showcase/starlight-components.mdx +0 -214
- sillo_framework-0.3.2.dev1/docs/docs/src/content/docs/showcase/typography.md +0 -104
- sillo_framework-0.3.2.dev1/docs/docs/src/content/docs/v0.x/advanced/admin.md +0 -751
- sillo_framework-0.3.2.dev1/docs/docs/src/content/docs/v0.x/advanced/application-lifecycle.md +0 -904
- sillo_framework-0.3.2.dev1/docs/docs/src/content/docs/v0.x/advanced/architecture-overview.md +0 -813
- sillo_framework-0.3.2.dev1/docs/docs/src/content/docs/v0.x/advanced/atlas.md +0 -975
- sillo_framework-0.3.2.dev1/docs/docs/src/content/docs/v0.x/advanced/auth-backends.md +0 -1001
- sillo_framework-0.3.2.dev1/docs/docs/src/content/docs/v0.x/advanced/authentication.md +0 -983
- sillo_framework-0.3.2.dev1/docs/docs/src/content/docs/v0.x/advanced/cache.md +0 -815
- sillo_framework-0.3.2.dev1/docs/docs/src/content/docs/v0.x/advanced/change-impact.md +0 -920
- sillo_framework-0.3.2.dev1/docs/docs/src/content/docs/v0.x/advanced/configuration.md +0 -839
- sillo_framework-0.3.2.dev1/docs/docs/src/content/docs/v0.x/advanced/console.md +0 -1046
- sillo_framework-0.3.2.dev1/docs/docs/src/content/docs/v0.x/advanced/context-binding.md +0 -152
- sillo_framework-0.3.2.dev1/docs/docs/src/content/docs/v0.x/advanced/debugging.md +0 -615
- sillo_framework-0.3.2.dev1/docs/docs/src/content/docs/v0.x/advanced/decisions.md +0 -757
- sillo_framework-0.3.2.dev1/docs/docs/src/content/docs/v0.x/advanced/dependency-injection.md +0 -883
- sillo_framework-0.3.2.dev1/docs/docs/src/content/docs/v0.x/advanced/events.md +0 -898
- sillo_framework-0.3.2.dev1/docs/docs/src/content/docs/v0.x/advanced/exception-handling.md +0 -1674
- sillo_framework-0.3.2.dev1/docs/docs/src/content/docs/v0.x/advanced/extending.md +0 -1355
- sillo_framework-0.3.2.dev1/docs/docs/src/content/docs/v0.x/advanced/glossary.md +0 -1535
- sillo_framework-0.3.2.dev1/docs/docs/src/content/docs/v0.x/advanced/hashing.md +0 -1024
- sillo_framework-0.3.2.dev1/docs/docs/src/content/docs/v0.x/advanced/helpers.md +0 -1192
- sillo_framework-0.3.2.dev1/docs/docs/src/content/docs/v0.x/advanced/http-correctness.md +0 -1505
- sillo_framework-0.3.2.dev1/docs/docs/src/content/docs/v0.x/advanced/http-request.md +0 -1597
- sillo_framework-0.3.2.dev1/docs/docs/src/content/docs/v0.x/advanced/http-response.md +0 -1903
- sillo_framework-0.3.2.dev1/docs/docs/src/content/docs/v0.x/advanced/index.md +0 -150
- sillo_framework-0.3.2.dev1/docs/docs/src/content/docs/v0.x/advanced/inertia.md +0 -849
- sillo_framework-0.3.2.dev1/docs/docs/src/content/docs/v0.x/advanced/mail.md +0 -816
- sillo_framework-0.3.2.dev1/docs/docs/src/content/docs/v0.x/advanced/middleware.md +0 -1864
- sillo_framework-0.3.2.dev1/docs/docs/src/content/docs/v0.x/advanced/oauth.md +0 -984
- sillo_framework-0.3.2.dev1/docs/docs/src/content/docs/v0.x/advanced/openapi.md +0 -1131
- sillo_framework-0.3.2.dev1/docs/docs/src/content/docs/v0.x/advanced/pagination.md +0 -603
- sillo_framework-0.3.2.dev1/docs/docs/src/content/docs/v0.x/advanced/parameters.md +0 -1039
- sillo_framework-0.3.2.dev1/docs/docs/src/content/docs/v0.x/advanced/permissions.md +0 -991
- sillo_framework-0.3.2.dev1/docs/docs/src/content/docs/v0.x/advanced/record-factories.md +0 -1106
- sillo_framework-0.3.2.dev1/docs/docs/src/content/docs/v0.x/advanced/record-migrations.md +0 -1050
- sillo_framework-0.3.2.dev1/docs/docs/src/content/docs/v0.x/advanced/record-models.md +0 -1082
- sillo_framework-0.3.2.dev1/docs/docs/src/content/docs/v0.x/advanced/record-queries.md +0 -1043
- sillo_framework-0.3.2.dev1/docs/docs/src/content/docs/v0.x/advanced/record-transactions.md +0 -978
- sillo_framework-0.3.2.dev1/docs/docs/src/content/docs/v0.x/advanced/records-orm.md +0 -613
- sillo_framework-0.3.2.dev1/docs/docs/src/content/docs/v0.x/advanced/routing.md +0 -1475
- sillo_framework-0.3.2.dev1/docs/docs/src/content/docs/v0.x/advanced/security.md +0 -811
- sillo_framework-0.3.2.dev1/docs/docs/src/content/docs/v0.x/advanced/sessions.md +0 -848
- sillo_framework-0.3.2.dev1/docs/docs/src/content/docs/v0.x/advanced/start.md +0 -810
- sillo_framework-0.3.2.dev1/docs/docs/src/content/docs/v0.x/advanced/storage.md +0 -414
- sillo_framework-0.3.2.dev1/docs/docs/src/content/docs/v0.x/advanced/templating.md +0 -621
- sillo_framework-0.3.2.dev1/docs/docs/src/content/docs/v0.x/advanced/test-client.md +0 -642
- sillo_framework-0.3.2.dev1/docs/docs/src/content/docs/v0.x/advanced/types-and-encoding.md +0 -922
- sillo_framework-0.3.2.dev1/docs/docs/src/content/docs/v0.x/advanced/users.md +0 -1174
- sillo_framework-0.3.2.dev1/docs/docs/src/content/docs/v0.x/advanced/validation.md +0 -1177
- sillo_framework-0.3.2.dev1/docs/docs/src/content/docs/v0.x/advanced/websockets.md +0 -878
- sillo_framework-0.3.2.dev1/docs/docs/src/content/docs/v0.x/advanced/work-background.md +0 -1227
- sillo_framework-0.3.2.dev1/docs/docs/src/content/docs/v0.x/advanced/work-queues.md +0 -874
- sillo_framework-0.3.2.dev1/docs/docs/src/content/docs/v0.x/advanced/work-scheduler.md +0 -1250
- sillo_framework-0.3.2.dev1/docs/docs/src/content/docs/v0.x/advanced/work-tasks.md +0 -857
- sillo_framework-0.3.2.dev1/docs/docs/src/content/docs/v0.x/cli/arguments.md +0 -221
- sillo_framework-0.3.2.dev1/docs/docs/src/content/docs/v0.x/cli/custom-commands.md +0 -208
- sillo_framework-0.3.2.dev1/docs/docs/src/content/docs/v0.x/cli/database.md +0 -231
- sillo_framework-0.3.2.dev1/docs/docs/src/content/docs/v0.x/cli/discovery.md +0 -98
- sillo_framework-0.3.2.dev1/docs/docs/src/content/docs/v0.x/cli/framework-commands.md +0 -97
- sillo_framework-0.3.2.dev1/docs/docs/src/content/docs/v0.x/cli/index.md +0 -120
- sillo_framework-0.3.2.dev1/docs/docs/src/content/docs/v0.x/cli/output.md +0 -201
- sillo_framework-0.3.2.dev1/docs/docs/src/content/docs/v0.x/cli/prompts.md +0 -171
- sillo_framework-0.3.2.dev1/docs/docs/src/content/docs/v0.x/cli/queues.md +0 -184
- sillo_framework-0.3.2.dev1/docs/docs/src/content/docs/v0.x/cli/scheduler.md +0 -124
- sillo_framework-0.3.2.dev1/docs/docs/src/content/docs/v0.x/cli/standalone-consoles.md +0 -280
- sillo_framework-0.3.2.dev1/docs/docs/src/content/docs/v0.x/cli/styling.md +0 -150
- sillo_framework-0.3.2.dev1/docs/docs/src/content/docs/v0.x/cli/users.md +0 -189
- sillo_framework-0.3.2.dev1/docs/docs/src/content/docs/v0.x/guides/api-keys.md +0 -160
- sillo_framework-0.3.2.dev1/docs/docs/src/content/docs/v0.x/guides/authentication.md +0 -418
- sillo_framework-0.3.2.dev1/docs/docs/src/content/docs/v0.x/guides/cache.mdx +0 -437
- sillo_framework-0.3.2.dev1/docs/docs/src/content/docs/v0.x/guides/coming-from.md +0 -225
- sillo_framework-0.3.2.dev1/docs/docs/src/content/docs/v0.x/guides/concurrency.md +0 -399
- sillo_framework-0.3.2.dev1/docs/docs/src/content/docs/v0.x/guides/configuration.md +0 -705
- sillo_framework-0.3.2.dev1/docs/docs/src/content/docs/v0.x/guides/console.md +0 -632
- sillo_framework-0.3.2.dev1/docs/docs/src/content/docs/v0.x/guides/content-negotiation.md +0 -577
- sillo_framework-0.3.2.dev1/docs/docs/src/content/docs/v0.x/guides/cookies.mdx +0 -381
- sillo_framework-0.3.2.dev1/docs/docs/src/content/docs/v0.x/guides/cors.md +0 -507
- sillo_framework-0.3.2.dev1/docs/docs/src/content/docs/v0.x/guides/csrf.md +0 -476
- sillo_framework-0.3.2.dev1/docs/docs/src/content/docs/v0.x/guides/dependency-injection.md +0 -452
- sillo_framework-0.3.2.dev1/docs/docs/src/content/docs/v0.x/guides/ecosystem.md +0 -215
- sillo_framework-0.3.2.dev1/docs/docs/src/content/docs/v0.x/guides/environment.md +0 -202
- sillo_framework-0.3.2.dev1/docs/docs/src/content/docs/v0.x/guides/error-handling.mdx +0 -381
- sillo_framework-0.3.2.dev1/docs/docs/src/content/docs/v0.x/guides/events.mdx +0 -551
- sillo_framework-0.3.2.dev1/docs/docs/src/content/docs/v0.x/guides/faq.md +0 -257
- sillo_framework-0.3.2.dev1/docs/docs/src/content/docs/v0.x/guides/file-upload.md +0 -189
- sillo_framework-0.3.2.dev1/docs/docs/src/content/docs/v0.x/guides/frontend.md +0 -53
- sillo_framework-0.3.2.dev1/docs/docs/src/content/docs/v0.x/guides/graphql.md +0 -205
- sillo_framework-0.3.2.dev1/docs/docs/src/content/docs/v0.x/guides/handlers.md +0 -472
- sillo_framework-0.3.2.dev1/docs/docs/src/content/docs/v0.x/guides/hashing.md +0 -1055
- sillo_framework-0.3.2.dev1/docs/docs/src/content/docs/v0.x/guides/headers.mdx +0 -440
- sillo_framework-0.3.2.dev1/docs/docs/src/content/docs/v0.x/guides/helpers/async.mdx +0 -453
- sillo_framework-0.3.2.dev1/docs/docs/src/content/docs/v0.x/guides/helpers/crypto.mdx +0 -378
- sillo_framework-0.3.2.dev1/docs/docs/src/content/docs/v0.x/guides/helpers/deprecation.mdx +0 -377
- sillo_framework-0.3.2.dev1/docs/docs/src/content/docs/v0.x/guides/helpers/files.mdx +0 -377
- sillo_framework-0.3.2.dev1/docs/docs/src/content/docs/v0.x/guides/helpers/hashing.mdx +0 -379
- sillo_framework-0.3.2.dev1/docs/docs/src/content/docs/v0.x/guides/helpers/html.mdx +0 -399
- sillo_framework-0.3.2.dev1/docs/docs/src/content/docs/v0.x/guides/helpers/index.mdx +0 -276
- sillo_framework-0.3.2.dev1/docs/docs/src/content/docs/v0.x/guides/helpers/jwt.mdx +0 -388
- sillo_framework-0.3.2.dev1/docs/docs/src/content/docs/v0.x/guides/helpers/network.mdx +0 -434
- sillo_framework-0.3.2.dev1/docs/docs/src/content/docs/v0.x/guides/helpers/retry.mdx +0 -378
- sillo_framework-0.3.2.dev1/docs/docs/src/content/docs/v0.x/guides/helpers/strings.mdx +0 -417
- sillo_framework-0.3.2.dev1/docs/docs/src/content/docs/v0.x/guides/helpers/text.mdx +0 -370
- sillo_framework-0.3.2.dev1/docs/docs/src/content/docs/v0.x/guides/http/client.md +0 -576
- sillo_framework-0.3.2.dev1/docs/docs/src/content/docs/v0.x/guides/inertia/assets.md +0 -135
- sillo_framework-0.3.2.dev1/docs/docs/src/content/docs/v0.x/guides/inertia/forms.md +0 -158
- sillo_framework-0.3.2.dev1/docs/docs/src/content/docs/v0.x/guides/inertia/index.md +0 -108
- sillo_framework-0.3.2.dev1/docs/docs/src/content/docs/v0.x/guides/inertia/pages.md +0 -204
- sillo_framework-0.3.2.dev1/docs/docs/src/content/docs/v0.x/guides/inertia/start.mdx +0 -157
- sillo_framework-0.3.2.dev1/docs/docs/src/content/docs/v0.x/guides/inertia/structure.md +0 -145
- sillo_framework-0.3.2.dev1/docs/docs/src/content/docs/v0.x/guides/installation.mdx +0 -256
- sillo_framework-0.3.2.dev1/docs/docs/src/content/docs/v0.x/guides/introduction.md +0 -319
- sillo_framework-0.3.2.dev1/docs/docs/src/content/docs/v0.x/guides/jwt-auth.md +0 -335
- sillo_framework-0.3.2.dev1/docs/docs/src/content/docs/v0.x/guides/middleware.md +0 -435
- sillo_framework-0.3.2.dev1/docs/docs/src/content/docs/v0.x/guides/oauth/index.md +0 -158
- sillo_framework-0.3.2.dev1/docs/docs/src/content/docs/v0.x/guides/oauth/openapi.md +0 -266
- sillo_framework-0.3.2.dev1/docs/docs/src/content/docs/v0.x/guides/oauth/persisting-logins.md +0 -212
- sillo_framework-0.3.2.dev1/docs/docs/src/content/docs/v0.x/guides/oauth/providers.md +0 -198
- sillo_framework-0.3.2.dev1/docs/docs/src/content/docs/v0.x/guides/oauth/security.md +0 -163
- sillo_framework-0.3.2.dev1/docs/docs/src/content/docs/v0.x/guides/openapi/authentication-documentation.md +0 -834
- sillo_framework-0.3.2.dev1/docs/docs/src/content/docs/v0.x/guides/openapi/basic-config.png +0 -0
- sillo_framework-0.3.2.dev1/docs/docs/src/content/docs/v0.x/guides/openapi/bearerAuth.png +0 -0
- sillo_framework-0.3.2.dev1/docs/docs/src/content/docs/v0.x/guides/openapi/custom.png +0 -0
- sillo_framework-0.3.2.dev1/docs/docs/src/content/docs/v0.x/guides/openapi/custom2.png +0 -0
- sillo_framework-0.3.2.dev1/docs/docs/src/content/docs/v0.x/guides/openapi/customizing-openapi-configuration.md +0 -753
- sillo_framework-0.3.2.dev1/docs/docs/src/content/docs/v0.x/guides/openapi/description.png +0 -0
- sillo_framework-0.3.2.dev1/docs/docs/src/content/docs/v0.x/guides/openapi/documentation-ui.md +0 -347
- sillo_framework-0.3.2.dev1/docs/docs/src/content/docs/v0.x/guides/openapi/headers.png +0 -0
- sillo_framework-0.3.2.dev1/docs/docs/src/content/docs/v0.x/guides/openapi/index.md +0 -723
- sillo_framework-0.3.2.dev1/docs/docs/src/content/docs/v0.x/guides/openapi/multi-response.png +0 -0
- sillo_framework-0.3.2.dev1/docs/docs/src/content/docs/v0.x/guides/openapi/path-params.png +0 -0
- sillo_framework-0.3.2.dev1/docs/docs/src/content/docs/v0.x/guides/openapi/query-params.png +0 -0
- sillo_framework-0.3.2.dev1/docs/docs/src/content/docs/v0.x/guides/openapi/request-body.png +0 -0
- sillo_framework-0.3.2.dev1/docs/docs/src/content/docs/v0.x/guides/openapi/request-parameters.md +0 -646
- sillo_framework-0.3.2.dev1/docs/docs/src/content/docs/v0.x/guides/openapi/request-schemas.mdx +0 -525
- sillo_framework-0.3.2.dev1/docs/docs/src/content/docs/v0.x/guides/openapi/response-list.png +0 -0
- sillo_framework-0.3.2.dev1/docs/docs/src/content/docs/v0.x/guides/openapi/response-models.md +0 -614
- sillo_framework-0.3.2.dev1/docs/docs/src/content/docs/v0.x/guides/openapi/response.png +0 -0
- sillo_framework-0.3.2.dev1/docs/docs/src/content/docs/v0.x/guides/pagination.mdx +0 -535
- sillo_framework-0.3.2.dev1/docs/docs/src/content/docs/v0.x/guides/permissions.md +0 -515
- sillo_framework-0.3.2.dev1/docs/docs/src/content/docs/v0.x/guides/philosophy.md +0 -219
- sillo_framework-0.3.2.dev1/docs/docs/src/content/docs/v0.x/guides/protecting-routes.md +0 -418
- sillo_framework-0.3.2.dev1/docs/docs/src/content/docs/v0.x/guides/rate-limiting.md +0 -262
- sillo_framework-0.3.2.dev1/docs/docs/src/content/docs/v0.x/guides/record/casting-collections.mdx +0 -413
- sillo_framework-0.3.2.dev1/docs/docs/src/content/docs/v0.x/guides/record/exceptions-pydantic.mdx +0 -454
- sillo_framework-0.3.2.dev1/docs/docs/src/content/docs/v0.x/guides/record/index.mdx +0 -421
- sillo_framework-0.3.2.dev1/docs/docs/src/content/docs/v0.x/guides/record/migrations.mdx +0 -362
- sillo_framework-0.3.2.dev1/docs/docs/src/content/docs/v0.x/guides/record/models.mdx +0 -566
- sillo_framework-0.3.2.dev1/docs/docs/src/content/docs/v0.x/guides/record/pagination.mdx +0 -469
- sillo_framework-0.3.2.dev1/docs/docs/src/content/docs/v0.x/guides/record/scopes-events.mdx +0 -452
- sillo_framework-0.3.2.dev1/docs/docs/src/content/docs/v0.x/guides/record/transactions-factories.mdx +0 -453
- sillo_framework-0.3.2.dev1/docs/docs/src/content/docs/v0.x/guides/request-info.md +0 -460
- sillo_framework-0.3.2.dev1/docs/docs/src/content/docs/v0.x/guides/request-inputs.md +0 -157
- sillo_framework-0.3.2.dev1/docs/docs/src/content/docs/v0.x/guides/request-lifecycle.md +0 -501
- sillo_framework-0.3.2.dev1/docs/docs/src/content/docs/v0.x/guides/request-parameters.mdx +0 -413
- sillo_framework-0.3.2.dev1/docs/docs/src/content/docs/v0.x/guides/routers-and-subapps.md +0 -277
- sillo_framework-0.3.2.dev1/docs/docs/src/content/docs/v0.x/guides/routing.mdx +0 -1234
- sillo_framework-0.3.2.dev1/docs/docs/src/content/docs/v0.x/guides/security.md +0 -356
- sillo_framework-0.3.2.dev1/docs/docs/src/content/docs/v0.x/guides/sending-responses.mdx +0 -557
- sillo_framework-0.3.2.dev1/docs/docs/src/content/docs/v0.x/guides/serialization.md +0 -371
- sillo_framework-0.3.2.dev1/docs/docs/src/content/docs/v0.x/guides/services/mail.mdx +0 -460
- sillo_framework-0.3.2.dev1/docs/docs/src/content/docs/v0.x/guides/session-auth.md +0 -429
- sillo_framework-0.3.2.dev1/docs/docs/src/content/docs/v0.x/guides/sessions.md +0 -591
- sillo_framework-0.3.2.dev1/docs/docs/src/content/docs/v0.x/guides/start/admin.md +0 -316
- sillo_framework-0.3.2.dev1/docs/docs/src/content/docs/v0.x/guides/start/authentication.md +0 -346
- sillo_framework-0.3.2.dev1/docs/docs/src/content/docs/v0.x/guides/start/background-work.md +0 -391
- sillo_framework-0.3.2.dev1/docs/docs/src/content/docs/v0.x/guides/start/console.md +0 -389
- sillo_framework-0.3.2.dev1/docs/docs/src/content/docs/v0.x/guides/start/database.md +0 -374
- sillo_framework-0.3.2.dev1/docs/docs/src/content/docs/v0.x/guides/start/deployment.md +0 -338
- sillo_framework-0.3.2.dev1/docs/docs/src/content/docs/v0.x/guides/start/index.mdx +0 -434
- sillo_framework-0.3.2.dev1/docs/docs/src/content/docs/v0.x/guides/start/structure.md +0 -468
- sillo_framework-0.3.2.dev1/docs/docs/src/content/docs/v0.x/guides/start/testing.md +0 -336
- sillo_framework-0.3.2.dev1/docs/docs/src/content/docs/v0.x/guides/startups-and-shutdowns.mdx +0 -428
- sillo_framework-0.3.2.dev1/docs/docs/src/content/docs/v0.x/guides/static-files.mdx +0 -349
- sillo_framework-0.3.2.dev1/docs/docs/src/content/docs/v0.x/guides/storage.mdx +0 -654
- sillo_framework-0.3.2.dev1/docs/docs/src/content/docs/v0.x/guides/streaming-response.mdx +0 -491
- sillo_framework-0.3.2.dev1/docs/docs/src/content/docs/v0.x/guides/templating/advanced.mdx +0 -484
- sillo_framework-0.3.2.dev1/docs/docs/src/content/docs/v0.x/guides/templating/index.mdx +0 -676
- sillo_framework-0.3.2.dev1/docs/docs/src/content/docs/v0.x/guides/url-normalization.md +0 -183
- sillo_framework-0.3.2.dev1/docs/docs/src/content/docs/v0.x/guides/users.md +0 -484
- sillo_framework-0.3.2.dev1/docs/docs/src/content/docs/v0.x/guides/validation/errors.md +0 -394
- sillo_framework-0.3.2.dev1/docs/docs/src/content/docs/v0.x/guides/validation/forms-and-files.md +0 -465
- sillo_framework-0.3.2.dev1/docs/docs/src/content/docs/v0.x/guides/validation/index.md +0 -367
- sillo_framework-0.3.2.dev1/docs/docs/src/content/docs/v0.x/guides/validation/openapi.md +0 -482
- sillo_framework-0.3.2.dev1/docs/docs/src/content/docs/v0.x/guides/validation/parameters.md +0 -489
- sillo_framework-0.3.2.dev1/docs/docs/src/content/docs/v0.x/guides/validation/request-bodies.md +0 -580
- sillo_framework-0.3.2.dev1/docs/docs/src/content/docs/v0.x/guides/validation/response-models.md +0 -440
- sillo_framework-0.3.2.dev1/docs/docs/src/content/docs/v0.x/guides/websockets/channels.mdx +0 -435
- sillo_framework-0.3.2.dev1/docs/docs/src/content/docs/v0.x/guides/websockets/consumer.mdx +0 -457
- sillo_framework-0.3.2.dev1/docs/docs/src/content/docs/v0.x/guides/websockets/events.mdx +0 -464
- sillo_framework-0.3.2.dev1/docs/docs/src/content/docs/v0.x/guides/websockets/groups.mdx +0 -434
- sillo_framework-0.3.2.dev1/docs/docs/src/content/docs/v0.x/guides/websockets/index.mdx +0 -407
- sillo_framework-0.3.2.dev1/docs/docs/src/content/docs/v0.x/guides/work/background.mdx +0 -432
- sillo_framework-0.3.2.dev1/docs/docs/src/content/docs/v0.x/guides/work/events.mdx +0 -451
- sillo_framework-0.3.2.dev1/docs/docs/src/content/docs/v0.x/guides/work/index.mdx +0 -441
- sillo_framework-0.3.2.dev1/docs/docs/src/content/docs/v0.x/guides/work/jobs.mdx +0 -727
- sillo_framework-0.3.2.dev1/docs/docs/src/content/docs/v0.x/guides/work/queue.mdx +0 -1270
- sillo_framework-0.3.2.dev1/docs/docs/src/content/docs/v0.x/guides/work/scheduler.mdx +0 -524
- sillo_framework-0.3.2.dev1/docs/docs/src/content/docs/v0.x/orm/admin-customising.md +0 -220
- sillo_framework-0.3.2.dev1/docs/docs/src/content/docs/v0.x/orm/admin-permissions.md +0 -253
- sillo_framework-0.3.2.dev1/docs/docs/src/content/docs/v0.x/orm/admin-registering.md +0 -198
- sillo_framework-0.3.2.dev1/docs/docs/src/content/docs/v0.x/orm/admin.md +0 -182
- sillo_framework-0.3.2.dev1/docs/docs/src/content/docs/v0.x/orm/aggregation.md +0 -247
- sillo_framework-0.3.2.dev1/docs/docs/src/content/docs/v0.x/orm/bulk.md +0 -167
- sillo_framework-0.3.2.dev1/docs/docs/src/content/docs/v0.x/orm/casting.md +0 -179
- sillo_framework-0.3.2.dev1/docs/docs/src/content/docs/v0.x/orm/collections.md +0 -152
- sillo_framework-0.3.2.dev1/docs/docs/src/content/docs/v0.x/orm/configuration.md +0 -170
- sillo_framework-0.3.2.dev1/docs/docs/src/content/docs/v0.x/orm/connections.md +0 -212
- sillo_framework-0.3.2.dev1/docs/docs/src/content/docs/v0.x/orm/eager-loading.md +0 -213
- sillo_framework-0.3.2.dev1/docs/docs/src/content/docs/v0.x/orm/events.md +0 -158
- sillo_framework-0.3.2.dev1/docs/docs/src/content/docs/v0.x/orm/exceptions.md +0 -148
- sillo_framework-0.3.2.dev1/docs/docs/src/content/docs/v0.x/orm/factories.md +0 -215
- sillo_framework-0.3.2.dev1/docs/docs/src/content/docs/v0.x/orm/field-reference.md +0 -305
- sillo_framework-0.3.2.dev1/docs/docs/src/content/docs/v0.x/orm/fields.md +0 -190
- sillo_framework-0.3.2.dev1/docs/docs/src/content/docs/v0.x/orm/filtering.md +0 -248
- sillo_framework-0.3.2.dev1/docs/docs/src/content/docs/v0.x/orm/index.md +0 -135
- sillo_framework-0.3.2.dev1/docs/docs/src/content/docs/v0.x/orm/lookups.md +0 -252
- sillo_framework-0.3.2.dev1/docs/docs/src/content/docs/v0.x/orm/mass-assignment.md +0 -144
- sillo_framework-0.3.2.dev1/docs/docs/src/content/docs/v0.x/orm/meta.md +0 -295
- sillo_framework-0.3.2.dev1/docs/docs/src/content/docs/v0.x/orm/migrations-applying.md +0 -177
- sillo_framework-0.3.2.dev1/docs/docs/src/content/docs/v0.x/orm/migrations-programmatic.md +0 -201
- sillo_framework-0.3.2.dev1/docs/docs/src/content/docs/v0.x/orm/migrations.md +0 -169
- sillo_framework-0.3.2.dev1/docs/docs/src/content/docs/v0.x/orm/mixins.md +0 -196
- sillo_framework-0.3.2.dev1/docs/docs/src/content/docs/v0.x/orm/models.md +0 -175
- sillo_framework-0.3.2.dev1/docs/docs/src/content/docs/v0.x/orm/pagination.md +0 -153
- sillo_framework-0.3.2.dev1/docs/docs/src/content/docs/v0.x/orm/pydantic.md +0 -156
- sillo_framework-0.3.2.dev1/docs/docs/src/content/docs/v0.x/orm/queries.md +0 -181
- sillo_framework-0.3.2.dev1/docs/docs/src/content/docs/v0.x/orm/queryset.md +0 -315
- sillo_framework-0.3.2.dev1/docs/docs/src/content/docs/v0.x/orm/raw-sql.md +0 -204
- sillo_framework-0.3.2.dev1/docs/docs/src/content/docs/v0.x/orm/relationships.md +0 -294
- sillo_framework-0.3.2.dev1/docs/docs/src/content/docs/v0.x/orm/scopes.md +0 -174
- sillo_framework-0.3.2.dev1/docs/docs/src/content/docs/v0.x/orm/seeding.md +0 -190
- sillo_framework-0.3.2.dev1/docs/docs/src/content/docs/v0.x/orm/setup.md +0 -166
- sillo_framework-0.3.2.dev1/docs/docs/src/content/docs/v0.x/orm/transactions.md +0 -202
- sillo_framework-0.3.2.dev1/docs/docs/src/content/docs/v0.x/orm/values.md +0 -204
- sillo_framework-0.3.2.dev1/docs/docs/src/content/docs/v0.x/pydantic/config.md +0 -236
- sillo_framework-0.3.2.dev1/docs/docs/src/content/docs/v0.x/pydantic/errors.md +0 -245
- sillo_framework-0.3.2.dev1/docs/docs/src/content/docs/v0.x/pydantic/fields.md +0 -257
- sillo_framework-0.3.2.dev1/docs/docs/src/content/docs/v0.x/pydantic/index.md +0 -105
- sillo_framework-0.3.2.dev1/docs/docs/src/content/docs/v0.x/pydantic/models.md +0 -249
- sillo_framework-0.3.2.dev1/docs/docs/src/content/docs/v0.x/pydantic/nested.md +0 -220
- sillo_framework-0.3.2.dev1/docs/docs/src/content/docs/v0.x/pydantic/openapi.md +0 -252
- sillo_framework-0.3.2.dev1/docs/docs/src/content/docs/v0.x/pydantic/orm-bridge.md +0 -250
- sillo_framework-0.3.2.dev1/docs/docs/src/content/docs/v0.x/pydantic/parameters.md +0 -285
- sillo_framework-0.3.2.dev1/docs/docs/src/content/docs/v0.x/pydantic/patterns.md +0 -295
- sillo_framework-0.3.2.dev1/docs/docs/src/content/docs/v0.x/pydantic/request-models.md +0 -254
- sillo_framework-0.3.2.dev1/docs/docs/src/content/docs/v0.x/pydantic/response-models.md +0 -242
- sillo_framework-0.3.2.dev1/docs/docs/src/content/docs/v0.x/pydantic/serialization.md +0 -245
- sillo_framework-0.3.2.dev1/docs/docs/src/content/docs/v0.x/pydantic/types.md +0 -308
- sillo_framework-0.3.2.dev1/docs/docs/src/content/docs/v0.x/pydantic/validators.md +0 -296
- sillo_framework-0.3.2.dev1/docs/docs/src/content/docs/v0.x/start/after-creating.mdx +0 -145
- sillo_framework-0.3.2.dev1/docs/docs/src/content/docs/v0.x/start/create-app.md +0 -171
- sillo_framework-0.3.2.dev1/docs/docs/src/content/docs/v0.x/start/custom-starters.md +0 -157
- sillo_framework-0.3.2.dev1/docs/docs/src/content/docs/v0.x/start/errors.md +0 -147
- sillo_framework-0.3.2.dev1/docs/docs/src/content/docs/v0.x/start/index.md +0 -91
- sillo_framework-0.3.2.dev1/docs/docs/src/content/docs/v0.x/start/install.mdx +0 -159
- sillo_framework-0.3.2.dev1/docs/docs/src/content/docs/v0.x/start/internals.md +0 -177
- sillo_framework-0.3.2.dev1/docs/docs/src/content/docs/v0.x/start/naming.md +0 -135
- sillo_framework-0.3.2.dev1/docs/docs/src/content/docs/v0.x/start/package-managers.md +0 -156
- sillo_framework-0.3.2.dev1/docs/docs/src/content/docs/v0.x/start/personalisation.md +0 -124
- sillo_framework-0.3.2.dev1/docs/docs/src/content/docs/v0.x/start/secrets.md +0 -122
- sillo_framework-0.3.2.dev1/docs/docs/src/content/docs/v0.x/start/starters.md +0 -148
- sillo_framework-0.3.2.dev1/docs/docs/src/content/docs/v1.0/advanced/application-lifecycle.md +0 -921
- sillo_framework-0.3.2.dev1/docs/docs/src/content/docs/v1.0/advanced/architecture-overview.md +0 -814
- sillo_framework-0.3.2.dev1/docs/docs/src/content/docs/v1.0/advanced/atlas.md +0 -975
- sillo_framework-0.3.2.dev1/docs/docs/src/content/docs/v1.0/advanced/auth-backends.md +0 -1009
- sillo_framework-0.3.2.dev1/docs/docs/src/content/docs/v1.0/advanced/authentication.md +0 -1031
- sillo_framework-0.3.2.dev1/docs/docs/src/content/docs/v1.0/advanced/cache.md +0 -815
- sillo_framework-0.3.2.dev1/docs/docs/src/content/docs/v1.0/advanced/change-impact.md +0 -917
- sillo_framework-0.3.2.dev1/docs/docs/src/content/docs/v1.0/advanced/configuration.md +0 -773
- sillo_framework-0.3.2.dev1/docs/docs/src/content/docs/v1.0/advanced/console.md +0 -1046
- sillo_framework-0.3.2.dev1/docs/docs/src/content/docs/v1.0/advanced/context-binding.md +0 -152
- sillo_framework-0.3.2.dev1/docs/docs/src/content/docs/v1.0/advanced/debugging.md +0 -621
- sillo_framework-0.3.2.dev1/docs/docs/src/content/docs/v1.0/advanced/decisions.md +0 -761
- sillo_framework-0.3.2.dev1/docs/docs/src/content/docs/v1.0/advanced/dependency-injection.md +0 -885
- sillo_framework-0.3.2.dev1/docs/docs/src/content/docs/v1.0/advanced/events.md +0 -898
- sillo_framework-0.3.2.dev1/docs/docs/src/content/docs/v1.0/advanced/exception-handling.md +0 -1714
- sillo_framework-0.3.2.dev1/docs/docs/src/content/docs/v1.0/advanced/extending.md +0 -1353
- sillo_framework-0.3.2.dev1/docs/docs/src/content/docs/v1.0/advanced/glossary.md +0 -1478
- sillo_framework-0.3.2.dev1/docs/docs/src/content/docs/v1.0/advanced/hashing.md +0 -1027
- sillo_framework-0.3.2.dev1/docs/docs/src/content/docs/v1.0/advanced/helpers.md +0 -1192
- sillo_framework-0.3.2.dev1/docs/docs/src/content/docs/v1.0/advanced/http-correctness.md +0 -1571
- sillo_framework-0.3.2.dev1/docs/docs/src/content/docs/v1.0/advanced/http-request.md +0 -1627
- sillo_framework-0.3.2.dev1/docs/docs/src/content/docs/v1.0/advanced/http-response.md +0 -1749
- sillo_framework-0.3.2.dev1/docs/docs/src/content/docs/v1.0/advanced/index.md +0 -148
- sillo_framework-0.3.2.dev1/docs/docs/src/content/docs/v1.0/advanced/inertia.md +0 -875
- sillo_framework-0.3.2.dev1/docs/docs/src/content/docs/v1.0/advanced/mail.md +0 -818
- sillo_framework-0.3.2.dev1/docs/docs/src/content/docs/v1.0/advanced/middleware.md +0 -1998
- sillo_framework-0.3.2.dev1/docs/docs/src/content/docs/v1.0/advanced/oauth.md +0 -988
- sillo_framework-0.3.2.dev1/docs/docs/src/content/docs/v1.0/advanced/openapi.md +0 -1131
- sillo_framework-0.3.2.dev1/docs/docs/src/content/docs/v1.0/advanced/pagination.md +0 -605
- sillo_framework-0.3.2.dev1/docs/docs/src/content/docs/v1.0/advanced/parameters.md +0 -1055
- sillo_framework-0.3.2.dev1/docs/docs/src/content/docs/v1.0/advanced/permissions.md +0 -995
- sillo_framework-0.3.2.dev1/docs/docs/src/content/docs/v1.0/advanced/record-factories.md +0 -1115
- sillo_framework-0.3.2.dev1/docs/docs/src/content/docs/v1.0/advanced/record-migrations.md +0 -1050
- sillo_framework-0.3.2.dev1/docs/docs/src/content/docs/v1.0/advanced/record-models.md +0 -1083
- sillo_framework-0.3.2.dev1/docs/docs/src/content/docs/v1.0/advanced/record-queries.md +0 -1043
- sillo_framework-0.3.2.dev1/docs/docs/src/content/docs/v1.0/advanced/record-transactions.md +0 -983
- sillo_framework-0.3.2.dev1/docs/docs/src/content/docs/v1.0/advanced/records-orm.md +0 -613
- sillo_framework-0.3.2.dev1/docs/docs/src/content/docs/v1.0/advanced/routing.md +0 -1479
- sillo_framework-0.3.2.dev1/docs/docs/src/content/docs/v1.0/advanced/security.md +0 -875
- sillo_framework-0.3.2.dev1/docs/docs/src/content/docs/v1.0/advanced/sessions.md +0 -888
- sillo_framework-0.3.2.dev1/docs/docs/src/content/docs/v1.0/advanced/start.md +0 -810
- sillo_framework-0.3.2.dev1/docs/docs/src/content/docs/v1.0/advanced/storage.md +0 -414
- sillo_framework-0.3.2.dev1/docs/docs/src/content/docs/v1.0/advanced/test-client.md +0 -644
- sillo_framework-0.3.2.dev1/docs/docs/src/content/docs/v1.0/advanced/types-and-encoding.md +0 -924
- sillo_framework-0.3.2.dev1/docs/docs/src/content/docs/v1.0/advanced/users.md +0 -1162
- sillo_framework-0.3.2.dev1/docs/docs/src/content/docs/v1.0/advanced/validation.md +0 -1185
- sillo_framework-0.3.2.dev1/docs/docs/src/content/docs/v1.0/advanced/websockets.md +0 -482
- sillo_framework-0.3.2.dev1/docs/docs/src/content/docs/v1.0/advanced/work-background.md +0 -1231
- sillo_framework-0.3.2.dev1/docs/docs/src/content/docs/v1.0/advanced/work-queues.md +0 -874
- sillo_framework-0.3.2.dev1/docs/docs/src/content/docs/v1.0/advanced/work-scheduler.md +0 -1253
- sillo_framework-0.3.2.dev1/docs/docs/src/content/docs/v1.0/advanced/work-tasks.md +0 -857
- sillo_framework-0.3.2.dev1/docs/docs/src/content/docs/v1.0/cli/arguments.md +0 -221
- sillo_framework-0.3.2.dev1/docs/docs/src/content/docs/v1.0/cli/custom-commands.md +0 -208
- sillo_framework-0.3.2.dev1/docs/docs/src/content/docs/v1.0/cli/database.md +0 -231
- sillo_framework-0.3.2.dev1/docs/docs/src/content/docs/v1.0/cli/discovery.md +0 -98
- sillo_framework-0.3.2.dev1/docs/docs/src/content/docs/v1.0/cli/framework-commands.md +0 -97
- sillo_framework-0.3.2.dev1/docs/docs/src/content/docs/v1.0/cli/index.md +0 -120
- sillo_framework-0.3.2.dev1/docs/docs/src/content/docs/v1.0/cli/output.md +0 -201
- sillo_framework-0.3.2.dev1/docs/docs/src/content/docs/v1.0/cli/prompts.md +0 -171
- sillo_framework-0.3.2.dev1/docs/docs/src/content/docs/v1.0/cli/queues.md +0 -184
- sillo_framework-0.3.2.dev1/docs/docs/src/content/docs/v1.0/cli/scheduler.md +0 -124
- sillo_framework-0.3.2.dev1/docs/docs/src/content/docs/v1.0/cli/standalone-consoles.md +0 -280
- sillo_framework-0.3.2.dev1/docs/docs/src/content/docs/v1.0/cli/styling.md +0 -150
- sillo_framework-0.3.2.dev1/docs/docs/src/content/docs/v1.0/cli/users.md +0 -189
- sillo_framework-0.3.2.dev1/docs/docs/src/content/docs/v1.0/guides/api-keys.md +0 -162
- sillo_framework-0.3.2.dev1/docs/docs/src/content/docs/v1.0/guides/authentication.md +0 -426
- sillo_framework-0.3.2.dev1/docs/docs/src/content/docs/v1.0/guides/cache.mdx +0 -437
- sillo_framework-0.3.2.dev1/docs/docs/src/content/docs/v1.0/guides/coming-from.md +0 -223
- sillo_framework-0.3.2.dev1/docs/docs/src/content/docs/v1.0/guides/concurrency.md +0 -405
- sillo_framework-0.3.2.dev1/docs/docs/src/content/docs/v1.0/guides/configuration.md +0 -705
- sillo_framework-0.3.2.dev1/docs/docs/src/content/docs/v1.0/guides/console.md +0 -632
- sillo_framework-0.3.2.dev1/docs/docs/src/content/docs/v1.0/guides/content-negotiation.md +0 -584
- sillo_framework-0.3.2.dev1/docs/docs/src/content/docs/v1.0/guides/cookies.mdx +0 -391
- sillo_framework-0.3.2.dev1/docs/docs/src/content/docs/v1.0/guides/cors.md +0 -507
- sillo_framework-0.3.2.dev1/docs/docs/src/content/docs/v1.0/guides/csrf.md +0 -388
- sillo_framework-0.3.2.dev1/docs/docs/src/content/docs/v1.0/guides/dependency-injection.md +0 -471
- sillo_framework-0.3.2.dev1/docs/docs/src/content/docs/v1.0/guides/ecosystem.md +0 -173
- sillo_framework-0.3.2.dev1/docs/docs/src/content/docs/v1.0/guides/environment.md +0 -202
- sillo_framework-0.3.2.dev1/docs/docs/src/content/docs/v1.0/guides/error-handling.mdx +0 -391
- sillo_framework-0.3.2.dev1/docs/docs/src/content/docs/v1.0/guides/events.mdx +0 -553
- sillo_framework-0.3.2.dev1/docs/docs/src/content/docs/v1.0/guides/faq.md +0 -247
- sillo_framework-0.3.2.dev1/docs/docs/src/content/docs/v1.0/guides/file-upload.md +0 -199
- sillo_framework-0.3.2.dev1/docs/docs/src/content/docs/v1.0/guides/frontend.md +0 -53
- sillo_framework-0.3.2.dev1/docs/docs/src/content/docs/v1.0/guides/handlers.md +0 -536
- sillo_framework-0.3.2.dev1/docs/docs/src/content/docs/v1.0/guides/hashing.md +0 -1062
- sillo_framework-0.3.2.dev1/docs/docs/src/content/docs/v1.0/guides/headers.mdx +0 -458
- sillo_framework-0.3.2.dev1/docs/docs/src/content/docs/v1.0/guides/helpers/async.mdx +0 -453
- sillo_framework-0.3.2.dev1/docs/docs/src/content/docs/v1.0/guides/helpers/crypto.mdx +0 -381
- sillo_framework-0.3.2.dev1/docs/docs/src/content/docs/v1.0/guides/helpers/deprecation.mdx +0 -377
- sillo_framework-0.3.2.dev1/docs/docs/src/content/docs/v1.0/guides/helpers/files.mdx +0 -382
- sillo_framework-0.3.2.dev1/docs/docs/src/content/docs/v1.0/guides/helpers/hashing.mdx +0 -382
- sillo_framework-0.3.2.dev1/docs/docs/src/content/docs/v1.0/guides/helpers/html.mdx +0 -398
- sillo_framework-0.3.2.dev1/docs/docs/src/content/docs/v1.0/guides/helpers/index.mdx +0 -276
- sillo_framework-0.3.2.dev1/docs/docs/src/content/docs/v1.0/guides/helpers/jwt.mdx +0 -392
- sillo_framework-0.3.2.dev1/docs/docs/src/content/docs/v1.0/guides/helpers/network.mdx +0 -435
- sillo_framework-0.3.2.dev1/docs/docs/src/content/docs/v1.0/guides/helpers/retry.mdx +0 -380
- sillo_framework-0.3.2.dev1/docs/docs/src/content/docs/v1.0/guides/helpers/strings.mdx +0 -422
- sillo_framework-0.3.2.dev1/docs/docs/src/content/docs/v1.0/guides/helpers/text.mdx +0 -372
- sillo_framework-0.3.2.dev1/docs/docs/src/content/docs/v1.0/guides/http/client.md +0 -576
- sillo_framework-0.3.2.dev1/docs/docs/src/content/docs/v1.0/guides/inertia/assets.md +0 -135
- sillo_framework-0.3.2.dev1/docs/docs/src/content/docs/v1.0/guides/inertia/forms.md +0 -164
- sillo_framework-0.3.2.dev1/docs/docs/src/content/docs/v1.0/guides/inertia/index.md +0 -110
- sillo_framework-0.3.2.dev1/docs/docs/src/content/docs/v1.0/guides/inertia/pages.md +0 -212
- sillo_framework-0.3.2.dev1/docs/docs/src/content/docs/v1.0/guides/inertia/start.mdx +0 -157
- sillo_framework-0.3.2.dev1/docs/docs/src/content/docs/v1.0/guides/inertia/structure.md +0 -146
- sillo_framework-0.3.2.dev1/docs/docs/src/content/docs/v1.0/guides/installation.mdx +0 -256
- sillo_framework-0.3.2.dev1/docs/docs/src/content/docs/v1.0/guides/introduction.md +0 -314
- sillo_framework-0.3.2.dev1/docs/docs/src/content/docs/v1.0/guides/jwt-auth.md +0 -340
- sillo_framework-0.3.2.dev1/docs/docs/src/content/docs/v1.0/guides/middleware.md +0 -446
- sillo_framework-0.3.2.dev1/docs/docs/src/content/docs/v1.0/guides/oauth/index.md +0 -160
- sillo_framework-0.3.2.dev1/docs/docs/src/content/docs/v1.0/guides/oauth/openapi.md +0 -266
- sillo_framework-0.3.2.dev1/docs/docs/src/content/docs/v1.0/guides/oauth/persisting-logins.md +0 -224
- sillo_framework-0.3.2.dev1/docs/docs/src/content/docs/v1.0/guides/oauth/providers.md +0 -199
- sillo_framework-0.3.2.dev1/docs/docs/src/content/docs/v1.0/guides/oauth/security.md +0 -163
- sillo_framework-0.3.2.dev1/docs/docs/src/content/docs/v1.0/guides/openapi/authentication-documentation.md +0 -865
- sillo_framework-0.3.2.dev1/docs/docs/src/content/docs/v1.0/guides/openapi/basic-config.png +0 -0
- sillo_framework-0.3.2.dev1/docs/docs/src/content/docs/v1.0/guides/openapi/bearerAuth.png +0 -0
- sillo_framework-0.3.2.dev1/docs/docs/src/content/docs/v1.0/guides/openapi/custom.png +0 -0
- sillo_framework-0.3.2.dev1/docs/docs/src/content/docs/v1.0/guides/openapi/custom2.png +0 -0
- sillo_framework-0.3.2.dev1/docs/docs/src/content/docs/v1.0/guides/openapi/customizing-openapi-configuration.md +0 -761
- sillo_framework-0.3.2.dev1/docs/docs/src/content/docs/v1.0/guides/openapi/description.png +0 -0
- sillo_framework-0.3.2.dev1/docs/docs/src/content/docs/v1.0/guides/openapi/documentation-ui.md +0 -347
- sillo_framework-0.3.2.dev1/docs/docs/src/content/docs/v1.0/guides/openapi/headers.png +0 -0
- sillo_framework-0.3.2.dev1/docs/docs/src/content/docs/v1.0/guides/openapi/index.md +0 -746
- sillo_framework-0.3.2.dev1/docs/docs/src/content/docs/v1.0/guides/openapi/multi-response.png +0 -0
- sillo_framework-0.3.2.dev1/docs/docs/src/content/docs/v1.0/guides/openapi/path-params.png +0 -0
- sillo_framework-0.3.2.dev1/docs/docs/src/content/docs/v1.0/guides/openapi/query-params.png +0 -0
- sillo_framework-0.3.2.dev1/docs/docs/src/content/docs/v1.0/guides/openapi/request-body.png +0 -0
- sillo_framework-0.3.2.dev1/docs/docs/src/content/docs/v1.0/guides/openapi/request-parameters.md +0 -663
- sillo_framework-0.3.2.dev1/docs/docs/src/content/docs/v1.0/guides/openapi/request-schemas.mdx +0 -536
- sillo_framework-0.3.2.dev1/docs/docs/src/content/docs/v1.0/guides/openapi/response-list.png +0 -0
- sillo_framework-0.3.2.dev1/docs/docs/src/content/docs/v1.0/guides/openapi/response-models.md +0 -626
- sillo_framework-0.3.2.dev1/docs/docs/src/content/docs/v1.0/guides/openapi/response.png +0 -0
- sillo_framework-0.3.2.dev1/docs/docs/src/content/docs/v1.0/guides/pagination.mdx +0 -535
- sillo_framework-0.3.2.dev1/docs/docs/src/content/docs/v1.0/guides/permissions.md +0 -518
- sillo_framework-0.3.2.dev1/docs/docs/src/content/docs/v1.0/guides/philosophy.md +0 -218
- sillo_framework-0.3.2.dev1/docs/docs/src/content/docs/v1.0/guides/protecting-routes.md +0 -432
- sillo_framework-0.3.2.dev1/docs/docs/src/content/docs/v1.0/guides/rate-limiting.md +0 -266
- sillo_framework-0.3.2.dev1/docs/docs/src/content/docs/v1.0/guides/request-info.md +0 -498
- sillo_framework-0.3.2.dev1/docs/docs/src/content/docs/v1.0/guides/request-inputs.md +0 -166
- sillo_framework-0.3.2.dev1/docs/docs/src/content/docs/v1.0/guides/request-lifecycle.md +0 -510
- sillo_framework-0.3.2.dev1/docs/docs/src/content/docs/v1.0/guides/request-parameters.mdx +0 -447
- sillo_framework-0.3.2.dev1/docs/docs/src/content/docs/v1.0/guides/routers-and-subapps.md +0 -282
- sillo_framework-0.3.2.dev1/docs/docs/src/content/docs/v1.0/guides/routing.mdx +0 -1270
- sillo_framework-0.3.2.dev1/docs/docs/src/content/docs/v1.0/guides/security.md +0 -359
- sillo_framework-0.3.2.dev1/docs/docs/src/content/docs/v1.0/guides/sending-responses.mdx +0 -493
- sillo_framework-0.3.2.dev1/docs/docs/src/content/docs/v1.0/guides/serialization.md +0 -386
- sillo_framework-0.3.2.dev1/docs/docs/src/content/docs/v1.0/guides/services/mail.mdx +0 -465
- sillo_framework-0.3.2.dev1/docs/docs/src/content/docs/v1.0/guides/session-auth.md +0 -436
- sillo_framework-0.3.2.dev1/docs/docs/src/content/docs/v1.0/guides/sessions.md +0 -607
- sillo_framework-0.3.2.dev1/docs/docs/src/content/docs/v1.0/guides/start/authentication.md +0 -349
- sillo_framework-0.3.2.dev1/docs/docs/src/content/docs/v1.0/guides/start/background-work.md +0 -393
- sillo_framework-0.3.2.dev1/docs/docs/src/content/docs/v1.0/guides/start/console.md +0 -389
- sillo_framework-0.3.2.dev1/docs/docs/src/content/docs/v1.0/guides/start/database.md +0 -370
- sillo_framework-0.3.2.dev1/docs/docs/src/content/docs/v1.0/guides/start/deployment.md +0 -340
- sillo_framework-0.3.2.dev1/docs/docs/src/content/docs/v1.0/guides/start/index.mdx +0 -426
- sillo_framework-0.3.2.dev1/docs/docs/src/content/docs/v1.0/guides/start/structure.md +0 -430
- sillo_framework-0.3.2.dev1/docs/docs/src/content/docs/v1.0/guides/start/testing.md +0 -338
- sillo_framework-0.3.2.dev1/docs/docs/src/content/docs/v1.0/guides/startups-and-shutdowns.mdx +0 -431
- sillo_framework-0.3.2.dev1/docs/docs/src/content/docs/v1.0/guides/static-files.mdx +0 -353
- sillo_framework-0.3.2.dev1/docs/docs/src/content/docs/v1.0/guides/storage.mdx +0 -657
- sillo_framework-0.3.2.dev1/docs/docs/src/content/docs/v1.0/guides/streaming-response.mdx +0 -505
- sillo_framework-0.3.2.dev1/docs/docs/src/content/docs/v1.0/guides/url-normalization.md +0 -183
- sillo_framework-0.3.2.dev1/docs/docs/src/content/docs/v1.0/guides/users.md +0 -484
- sillo_framework-0.3.2.dev1/docs/docs/src/content/docs/v1.0/guides/validation/errors.md +0 -400
- sillo_framework-0.3.2.dev1/docs/docs/src/content/docs/v1.0/guides/validation/forms-and-files.md +0 -471
- sillo_framework-0.3.2.dev1/docs/docs/src/content/docs/v1.0/guides/validation/index.md +0 -369
- sillo_framework-0.3.2.dev1/docs/docs/src/content/docs/v1.0/guides/validation/openapi.md +0 -491
- sillo_framework-0.3.2.dev1/docs/docs/src/content/docs/v1.0/guides/validation/parameters.md +0 -498
- sillo_framework-0.3.2.dev1/docs/docs/src/content/docs/v1.0/guides/validation/request-bodies.md +0 -590
- sillo_framework-0.3.2.dev1/docs/docs/src/content/docs/v1.0/guides/validation/response-models.md +0 -454
- sillo_framework-0.3.2.dev1/docs/docs/src/content/docs/v1.0/guides/websockets/events.mdx +0 -478
- sillo_framework-0.3.2.dev1/docs/docs/src/content/docs/v1.0/guides/websockets/index.mdx +0 -489
- sillo_framework-0.3.2.dev1/docs/docs/src/content/docs/v1.0/guides/work/background.mdx +0 -438
- sillo_framework-0.3.2.dev1/docs/docs/src/content/docs/v1.0/guides/work/events.mdx +0 -453
- sillo_framework-0.3.2.dev1/docs/docs/src/content/docs/v1.0/guides/work/index.mdx +0 -443
- sillo_framework-0.3.2.dev1/docs/docs/src/content/docs/v1.0/guides/work/jobs.mdx +0 -729
- sillo_framework-0.3.2.dev1/docs/docs/src/content/docs/v1.0/guides/work/queue.mdx +0 -1276
- sillo_framework-0.3.2.dev1/docs/docs/src/content/docs/v1.0/guides/work/scheduler.mdx +0 -526
- sillo_framework-0.3.2.dev1/docs/docs/src/content/docs/v1.0/orm/aggregation.md +0 -247
- sillo_framework-0.3.2.dev1/docs/docs/src/content/docs/v1.0/orm/bulk.md +0 -167
- sillo_framework-0.3.2.dev1/docs/docs/src/content/docs/v1.0/orm/casting.md +0 -179
- sillo_framework-0.3.2.dev1/docs/docs/src/content/docs/v1.0/orm/collections.md +0 -152
- sillo_framework-0.3.2.dev1/docs/docs/src/content/docs/v1.0/orm/configuration.md +0 -170
- sillo_framework-0.3.2.dev1/docs/docs/src/content/docs/v1.0/orm/connections.md +0 -216
- sillo_framework-0.3.2.dev1/docs/docs/src/content/docs/v1.0/orm/eager-loading.md +0 -212
- sillo_framework-0.3.2.dev1/docs/docs/src/content/docs/v1.0/orm/events.md +0 -158
- sillo_framework-0.3.2.dev1/docs/docs/src/content/docs/v1.0/orm/exceptions.md +0 -150
- sillo_framework-0.3.2.dev1/docs/docs/src/content/docs/v1.0/orm/factories.md +0 -215
- sillo_framework-0.3.2.dev1/docs/docs/src/content/docs/v1.0/orm/field-reference.md +0 -305
- sillo_framework-0.3.2.dev1/docs/docs/src/content/docs/v1.0/orm/fields.md +0 -191
- sillo_framework-0.3.2.dev1/docs/docs/src/content/docs/v1.0/orm/filtering.md +0 -248
- sillo_framework-0.3.2.dev1/docs/docs/src/content/docs/v1.0/orm/index.md +0 -134
- sillo_framework-0.3.2.dev1/docs/docs/src/content/docs/v1.0/orm/lookups.md +0 -252
- sillo_framework-0.3.2.dev1/docs/docs/src/content/docs/v1.0/orm/mass-assignment.md +0 -148
- sillo_framework-0.3.2.dev1/docs/docs/src/content/docs/v1.0/orm/meta.md +0 -296
- sillo_framework-0.3.2.dev1/docs/docs/src/content/docs/v1.0/orm/migrations-applying.md +0 -177
- sillo_framework-0.3.2.dev1/docs/docs/src/content/docs/v1.0/orm/migrations-programmatic.md +0 -201
- sillo_framework-0.3.2.dev1/docs/docs/src/content/docs/v1.0/orm/migrations.md +0 -169
- sillo_framework-0.3.2.dev1/docs/docs/src/content/docs/v1.0/orm/mixins.md +0 -196
- sillo_framework-0.3.2.dev1/docs/docs/src/content/docs/v1.0/orm/models.md +0 -176
- sillo_framework-0.3.2.dev1/docs/docs/src/content/docs/v1.0/orm/pagination.md +0 -150
- sillo_framework-0.3.2.dev1/docs/docs/src/content/docs/v1.0/orm/pydantic.md +0 -158
- sillo_framework-0.3.2.dev1/docs/docs/src/content/docs/v1.0/orm/queries.md +0 -185
- sillo_framework-0.3.2.dev1/docs/docs/src/content/docs/v1.0/orm/queryset.md +0 -315
- sillo_framework-0.3.2.dev1/docs/docs/src/content/docs/v1.0/orm/raw-sql.md +0 -204
- sillo_framework-0.3.2.dev1/docs/docs/src/content/docs/v1.0/orm/relationships.md +0 -294
- sillo_framework-0.3.2.dev1/docs/docs/src/content/docs/v1.0/orm/scopes.md +0 -174
- sillo_framework-0.3.2.dev1/docs/docs/src/content/docs/v1.0/orm/seeding.md +0 -190
- sillo_framework-0.3.2.dev1/docs/docs/src/content/docs/v1.0/orm/setup.md +0 -169
- sillo_framework-0.3.2.dev1/docs/docs/src/content/docs/v1.0/orm/transactions.md +0 -202
- sillo_framework-0.3.2.dev1/docs/docs/src/content/docs/v1.0/orm/values.md +0 -204
- sillo_framework-0.3.2.dev1/docs/docs/src/content/docs/v1.0/pydantic/config.md +0 -236
- sillo_framework-0.3.2.dev1/docs/docs/src/content/docs/v1.0/pydantic/errors.md +0 -249
- sillo_framework-0.3.2.dev1/docs/docs/src/content/docs/v1.0/pydantic/fields.md +0 -257
- sillo_framework-0.3.2.dev1/docs/docs/src/content/docs/v1.0/pydantic/index.md +0 -107
- sillo_framework-0.3.2.dev1/docs/docs/src/content/docs/v1.0/pydantic/models.md +0 -249
- sillo_framework-0.3.2.dev1/docs/docs/src/content/docs/v1.0/pydantic/nested.md +0 -220
- sillo_framework-0.3.2.dev1/docs/docs/src/content/docs/v1.0/pydantic/openapi.md +0 -252
- sillo_framework-0.3.2.dev1/docs/docs/src/content/docs/v1.0/pydantic/orm-bridge.md +0 -254
- sillo_framework-0.3.2.dev1/docs/docs/src/content/docs/v1.0/pydantic/parameters.md +0 -287
- sillo_framework-0.3.2.dev1/docs/docs/src/content/docs/v1.0/pydantic/patterns.md +0 -297
- sillo_framework-0.3.2.dev1/docs/docs/src/content/docs/v1.0/pydantic/request-models.md +0 -264
- sillo_framework-0.3.2.dev1/docs/docs/src/content/docs/v1.0/pydantic/response-models.md +0 -253
- sillo_framework-0.3.2.dev1/docs/docs/src/content/docs/v1.0/pydantic/serialization.md +0 -249
- sillo_framework-0.3.2.dev1/docs/docs/src/content/docs/v1.0/pydantic/types.md +0 -308
- sillo_framework-0.3.2.dev1/docs/docs/src/content/docs/v1.0/pydantic/validators.md +0 -296
- sillo_framework-0.3.2.dev1/docs/docs/src/content/docs/v1.0/start/after-creating.mdx +0 -148
- sillo_framework-0.3.2.dev1/docs/docs/src/content/docs/v1.0/start/create-app.md +0 -171
- sillo_framework-0.3.2.dev1/docs/docs/src/content/docs/v1.0/start/custom-starters.md +0 -157
- sillo_framework-0.3.2.dev1/docs/docs/src/content/docs/v1.0/start/errors.md +0 -147
- sillo_framework-0.3.2.dev1/docs/docs/src/content/docs/v1.0/start/index.md +0 -91
- sillo_framework-0.3.2.dev1/docs/docs/src/content/docs/v1.0/start/install.mdx +0 -159
- sillo_framework-0.3.2.dev1/docs/docs/src/content/docs/v1.0/start/internals.md +0 -178
- sillo_framework-0.3.2.dev1/docs/docs/src/content/docs/v1.0/start/naming.md +0 -135
- sillo_framework-0.3.2.dev1/docs/docs/src/content/docs/v1.0/start/package-managers.md +0 -156
- sillo_framework-0.3.2.dev1/docs/docs/src/content/docs/v1.0/start/personalisation.md +0 -124
- sillo_framework-0.3.2.dev1/docs/docs/src/content/docs/v1.0/start/secrets.md +0 -122
- sillo_framework-0.3.2.dev1/docs/docs/src/content/docs/v1.0/start/starters.md +0 -140
- sillo_framework-0.3.2.dev1/docs/docs/src/content.config.ts +0 -45
- sillo_framework-0.3.2.dev1/docs/docs/src/plugins/remark-mermaid.mjs +0 -43
- sillo_framework-0.3.2.dev1/docs/docs/src/styles/global.css +0 -296
- sillo_framework-0.3.2.dev1/docs/docs/src/versions.mjs +0 -168
- sillo_framework-0.3.2.dev1/docs/docs/tsconfig.json +0 -5
- sillo_framework-0.3.2.dev1/docs/package.json +0 -24
- sillo_framework-0.3.2.dev1/docs/packages/lucode-starlight/README.md +0 -213
- sillo_framework-0.3.2.dev1/docs/packages/lucode-starlight/components/custom/ContainerSection.astro +0 -58
- sillo_framework-0.3.2.dev1/docs/packages/lucode-starlight/components/custom/LinkButton.astro +0 -141
- sillo_framework-0.3.2.dev1/docs/packages/lucode-starlight/components/custom/dropdown/Dropdown.astro +0 -616
- sillo_framework-0.3.2.dev1/docs/packages/lucode-starlight/components/custom/dropdown/DropdownContent.astro +0 -179
- sillo_framework-0.3.2.dev1/docs/packages/lucode-starlight/components/custom/dropdown/DropdownItem.astro +0 -72
- sillo_framework-0.3.2.dev1/docs/packages/lucode-starlight/components/custom/dropdown/DropdownLabel.astro +0 -31
- sillo_framework-0.3.2.dev1/docs/packages/lucode-starlight/components/custom/dropdown/DropdownSeparator.astro +0 -18
- sillo_framework-0.3.2.dev1/docs/packages/lucode-starlight/components/custom/dropdown/DropdownShortcut.astro +0 -24
- sillo_framework-0.3.2.dev1/docs/packages/lucode-starlight/components/custom/dropdown/DropdownTrigger.astro +0 -54
- sillo_framework-0.3.2.dev1/docs/packages/lucode-starlight/components/custom/dropdown/index.ts +0 -29
- sillo_framework-0.3.2.dev1/docs/packages/lucode-starlight/components/overrides/ContentPanel.astro +0 -1
- sillo_framework-0.3.2.dev1/docs/packages/lucode-starlight/components/overrides/Footer.astro +0 -54
- sillo_framework-0.3.2.dev1/docs/packages/lucode-starlight/components/overrides/Header.astro +0 -92
- sillo_framework-0.3.2.dev1/docs/packages/lucode-starlight/components/overrides/Hero.astro +0 -307
- sillo_framework-0.3.2.dev1/docs/packages/lucode-starlight/components/overrides/MarkdownContent.astro +0 -17
- sillo_framework-0.3.2.dev1/docs/packages/lucode-starlight/components/overrides/PageFrame.astro +0 -121
- sillo_framework-0.3.2.dev1/docs/packages/lucode-starlight/components/overrides/PageSidebar.astro +0 -20
- sillo_framework-0.3.2.dev1/docs/packages/lucode-starlight/components/overrides/PageTitle.astro +0 -130
- sillo_framework-0.3.2.dev1/docs/packages/lucode-starlight/components/overrides/Pagination.astro +0 -101
- sillo_framework-0.3.2.dev1/docs/packages/lucode-starlight/components/overrides/Search.astro +0 -549
- sillo_framework-0.3.2.dev1/docs/packages/lucode-starlight/components/overrides/Sidebar.astro +0 -263
- sillo_framework-0.3.2.dev1/docs/packages/lucode-starlight/components/overrides/SiteTitle.astro +0 -61
- sillo_framework-0.3.2.dev1/docs/packages/lucode-starlight/components/overrides/SocialIcons.astro +0 -47
- sillo_framework-0.3.2.dev1/docs/packages/lucode-starlight/components/overrides/TableOfContents.astro +0 -97
- sillo_framework-0.3.2.dev1/docs/packages/lucode-starlight/components/overrides/ThemeSelect.astro +0 -156
- sillo_framework-0.3.2.dev1/docs/packages/lucode-starlight/components/overrides/TwoColumnContent.astro +0 -75
- sillo_framework-0.3.2.dev1/docs/packages/lucode-starlight/components/overrides/parts/Drawer.astro +0 -260
- sillo_framework-0.3.2.dev1/docs/packages/lucode-starlight/components/overrides/parts/MobileMenuToggle.astro +0 -69
- sillo_framework-0.3.2.dev1/docs/packages/lucode-starlight/components/overrides/parts/NavBar.astro +0 -111
- sillo_framework-0.3.2.dev1/docs/packages/lucode-starlight/components/overrides/parts/SidebarSublist.astro +0 -162
- sillo_framework-0.3.2.dev1/docs/packages/lucode-starlight/components/overrides/parts/toc/TableOfContentsList.astro +0 -71
- sillo_framework-0.3.2.dev1/docs/packages/lucode-starlight/components/overrides/parts/toc/starlight-toc.ts +0 -256
- sillo_framework-0.3.2.dev1/docs/packages/lucode-starlight/core/config/constants.ts +0 -1
- sillo_framework-0.3.2.dev1/docs/packages/lucode-starlight/core/config/expresive-code.ts +0 -63
- sillo_framework-0.3.2.dev1/docs/packages/lucode-starlight/core/config/override.ts +0 -48
- sillo_framework-0.3.2.dev1/docs/packages/lucode-starlight/core/config/schemas.ts +0 -57
- sillo_framework-0.3.2.dev1/docs/packages/lucode-starlight/core/config/vite.ts +0 -20
- sillo_framework-0.3.2.dev1/docs/packages/lucode-starlight/core/plugin.ts +0 -56
- sillo_framework-0.3.2.dev1/docs/packages/lucode-starlight/global.d.ts +0 -5
- sillo_framework-0.3.2.dev1/docs/packages/lucode-starlight/index.ts +0 -3
- sillo_framework-0.3.2.dev1/docs/packages/lucode-starlight/package.json +0 -54
- sillo_framework-0.3.2.dev1/docs/packages/lucode-starlight/schema.ts +0 -24
- sillo_framework-0.3.2.dev1/docs/packages/lucode-starlight/styles/base.css +0 -904
- sillo_framework-0.3.2.dev1/docs/packages/lucode-starlight/styles/layers.css +0 -1
- sillo_framework-0.3.2.dev1/docs/packages/lucode-starlight/styles/theme.css +0 -67
- sillo_framework-0.3.2.dev1/docs/packages/lucode-starlight/user-components.ts +0 -3
- sillo_framework-0.3.2.dev1/docs/packages/lucode-starlight/virtual.d.ts +0 -51
- sillo_framework-0.3.2.dev1/docs/renovate.json +0 -7
- sillo_framework-0.3.2.dev1/docs/test/lucode-starlight/config.test.ts +0 -171
- sillo_framework-0.3.2.dev1/docs/test/lucode-starlight/plugin.test.ts +0 -175
- sillo_framework-0.3.2.dev1/docs/test/lucode-starlight/starlight-toc.test.ts +0 -279
- sillo_framework-0.3.2.dev1/docs/tsconfig.json +0 -9
- sillo_framework-0.3.2.dev1/docs/vercel.json +0 -27
- sillo_framework-0.3.2.dev1/docs/vitest.config.ts +0 -28
- sillo_framework-0.3.2.dev1/examples/README.md +0 -64
- sillo_framework-0.3.2.dev1/examples/auth/01_session_auth.py +0 -97
- sillo_framework-0.3.2.dev1/examples/auth/02_jwt_auth.py +0 -87
- sillo_framework-0.3.2.dev1/examples/auth/03_custom_backend.py +0 -120
- sillo_framework-0.3.2.dev1/examples/auth/04_multiple_backends.py +0 -167
- sillo_framework-0.3.2.dev1/examples/auth/05_router_integration.py +0 -87
- sillo_framework-0.3.2.dev1/examples/config/.env.development +0 -15
- sillo_framework-0.3.2.dev1/examples/config/.env.example +0 -35
- sillo_framework-0.3.2.dev1/examples/config/.env.production +0 -15
- sillo_framework-0.3.2.dev1/examples/config/01_basic_config.py +0 -71
- sillo_framework-0.3.2.dev1/examples/config/02_web_app.py +0 -157
- sillo_framework-0.3.2.dev1/examples/config/README.md +0 -367
- sillo_framework-0.3.2.dev1/examples/database/01_sqlite_todo.py +0 -178
- sillo_framework-0.3.2.dev1/examples/database/02_tortoise_notes.py +0 -175
- sillo_framework-0.3.2.dev1/examples/database/03_tortoise_blog.py +0 -197
- sillo_framework-0.3.2.dev1/examples/exception_handling/01_basic.py +0 -21
- sillo_framework-0.3.2.dev1/examples/exception_handling/02_custom.py +0 -25
- sillo_framework-0.3.2.dev1/examples/file_handling/01_upload_download.py +0 -203
- sillo_framework-0.3.2.dev1/examples/file_handling/02_simple_upload.py +0 -28
- sillo_framework-0.3.2.dev1/examples/getting_started/01_hello_world.py +0 -58
- sillo_framework-0.3.2.dev1/examples/getting_started/02_basic_rest.py +0 -22
- sillo_framework-0.3.2.dev1/examples/getting_started/03_enhanced_api.py +0 -341
- sillo_framework-0.3.2.dev1/examples/getting_started/04_lifespan.py +0 -213
- sillo_framework-0.3.2.dev1/examples/getting_started/05_streaming_middleware.py +0 -28
- sillo_framework-0.3.2.dev1/examples/getting_started/README.md +0 -31
- sillo_framework-0.3.2.dev1/examples/hashing/01_basic_password_hashing.py +0 -90
- sillo_framework-0.3.2.dev1/examples/hashing/01_basic_usage.py +0 -33
- sillo_framework-0.3.2.dev1/examples/hashing/02_multiple_algorithms.py +0 -177
- sillo_framework-0.3.2.dev1/examples/hashing/02_schemes.py +0 -74
- sillo_framework-0.3.2.dev1/examples/hashing/03_web_api.py +0 -125
- sillo_framework-0.3.2.dev1/examples/hashing/README.md +0 -246
- sillo_framework-0.3.2.dev1/examples/middleware/01_basic.py +0 -29
- sillo_framework-0.3.2.dev1/examples/middleware/02_class_based.py +0 -29
- sillo_framework-0.3.2.dev1/examples/middleware/03_asgi_middleware.py +0 -40
- sillo_framework-0.3.2.dev1/examples/request_inputs/01_json_data.py +0 -25
- sillo_framework-0.3.2.dev1/examples/request_inputs/02_form_data.py +0 -9
- sillo_framework-0.3.2.dev1/examples/request_inputs/03_raw_body.py +0 -10
- sillo_framework-0.3.2.dev1/examples/request_inputs/04_streaming.py +0 -12
- sillo_framework-0.3.2.dev1/examples/responses/01_return_values.py +0 -21
- sillo_framework-0.3.2.dev1/examples/responses/02_json_with_headers.py +0 -12
- sillo_framework-0.3.2.dev1/examples/responses/03_response_types.py +0 -28
- sillo_framework-0.3.2.dev1/examples/responses/04_response_classes.py +0 -37
- sillo_framework-0.3.2.dev1/examples/responses/index.html +0 -5
- sillo_framework-0.3.2.dev1/examples/routing/01_basic_routes.py +0 -31
- sillo_framework-0.3.2.dev1/examples/routing/02_path_parameters.py +0 -53
- sillo_framework-0.3.2.dev1/examples/routing/03_routes_class.py +0 -36
- sillo_framework-0.3.2.dev1/examples/routing/04_routers.py +0 -21
- sillo_framework-0.3.2.dev1/examples/validation/01_advanced.py +0 -170
- sillo_framework-0.3.2.dev1/examples/validation/02_pydantic.py +0 -28
- sillo_framework-0.3.2.dev1/examples/websockets/01_basic_echo.py +0 -18
- sillo_framework-0.3.2.dev1/examples/websockets/02_chat_rooms.py +0 -102
- sillo_framework-0.3.2.dev1/examples/websockets/03_custom_history.py +0 -284
- sillo_framework-0.3.2.dev1/plans/admin-declarations.md +0 -637
- sillo_framework-0.3.2.dev1/requirements-dev.txt +0 -9
- sillo_framework-0.3.2.dev1/requirements.txt +0 -8
- sillo_framework-0.3.2.dev1/sillo/core/routing/_utils.py +0 -66
- sillo_framework-0.3.2.dev1/sillo/middleware/define.py +0 -114
- sillo_framework-0.3.2.dev1/tests/test_routing/test_router_wrap_asgi.py +0 -71
- sillo_framework-0.3.2.dev1/uv.lock +0 -1445
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a2}/.gitignore +0 -0
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a2}/LICENSE +0 -0
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a2}/SECURITY.md +0 -0
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a2}/sillo/__main__.py +0 -0
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a2}/sillo/auth/__init__.py +0 -0
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a2}/sillo/auth/apikey/__init__.py +0 -0
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a2}/sillo/auth/apikey/backend.py +0 -0
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a2}/sillo/auth/apikey/mixins.py +0 -0
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a2}/sillo/auth/apikey/models.py +0 -0
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a2}/sillo/auth/backend.py +0 -0
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a2}/sillo/auth/exceptions.py +0 -0
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a2}/sillo/auth/jwt_auth/__init__.py +0 -0
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a2}/sillo/auth/jwt_auth/backend.py +0 -0
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a2}/sillo/auth/jwt_auth/mixins.py +0 -0
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a2}/sillo/auth/jwt_auth/models.py +0 -0
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a2}/sillo/auth/jwt_auth/tokens.py +0 -0
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a2}/sillo/auth/middleware.py +0 -0
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a2}/sillo/auth/model.py +0 -0
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a2}/sillo/auth/session_auth/__init__.py +0 -0
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a2}/sillo/auth/session_auth/backend.py +0 -0
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a2}/sillo/auth/session_auth/guard.py +0 -0
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a2}/sillo/auth/session_auth/mixins.py +0 -0
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a2}/sillo/auth/session_auth/models.py +0 -0
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a2}/sillo/auth/use_auth.py +0 -0
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a2}/sillo/cache/__init__.py +0 -0
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a2}/sillo/cache/backends.py +0 -0
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a2}/sillo/cache/base.py +0 -0
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a2}/sillo/cache/config.py +0 -0
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a2}/sillo/cache/decorator.py +0 -0
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a2}/sillo/config/__init__.py +0 -0
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a2}/sillo/config/core.py +0 -0
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a2}/sillo/console/__init__.py +0 -0
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a2}/sillo/console/arguments.py +0 -0
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a2}/sillo/console/command.py +0 -0
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a2}/sillo/console/console.py +0 -0
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a2}/sillo/console/exceptions.py +0 -0
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a2}/sillo/console/output.py +0 -0
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a2}/sillo/console/prompt.py +0 -0
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a2}/sillo/console/style.py +0 -0
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a2}/sillo/console/terminal.py +0 -0
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a2}/sillo/core/__init__.py +0 -0
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a2}/sillo/core/dependencies/__init__.py +0 -0
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a2}/sillo/core/encoding.py +0 -0
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a2}/sillo/core/error/__init__.py +0 -0
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a2}/sillo/core/helpers/__init__.py +0 -0
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a2}/sillo/core/helpers/async_helpers.py +0 -0
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a2}/sillo/core/helpers/deprecation.py +0 -0
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a2}/sillo/core/http/__init__.py +0 -0
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a2}/sillo/core/http/cookies.py +0 -0
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a2}/sillo/core/http/response.py +0 -0
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a2}/sillo/core/routing/base.py +0 -0
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a2}/sillo/encoding.py +0 -0
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a2}/sillo/env/__init__.py +0 -0
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a2}/sillo/env/_loader.py +0 -0
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a2}/sillo/events/__init__.py +0 -0
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a2}/sillo/events/core.py +0 -0
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a2}/sillo/events/emitter.py +0 -0
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a2}/sillo/events/enums.py +0 -0
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a2}/sillo/events/exceptions.py +0 -0
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a2}/sillo/events/mixins.py +0 -0
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a2}/sillo/events/transports/__init__.py +0 -0
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a2}/sillo/events/transports/base.py +0 -0
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a2}/sillo/events/transports/memory.py +0 -0
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a2}/sillo/events/transports/persistent.py +0 -0
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a2}/sillo/events/transports/record.py +0 -0
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a2}/sillo/events/transports/redis.py +0 -0
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a2}/sillo/exceptions.py +0 -0
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a2}/sillo/formparser.py +0 -0
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a2}/sillo/handlers/__init__.py +0 -0
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a2}/sillo/hashing/__init__.py +0 -0
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a2}/sillo/hashing/config.py +0 -0
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a2}/sillo/hashing/core.py +0 -0
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a2}/sillo/hashing/exceptions.py +0 -0
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a2}/sillo/hashing/utils.py +0 -0
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a2}/sillo/helpers/__init__.py +0 -0
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a2}/sillo/helpers/concurrency.py +0 -0
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a2}/sillo/helpers/crypto.py +0 -0
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a2}/sillo/helpers/files.py +0 -0
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a2}/sillo/helpers/hashing.py +0 -0
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a2}/sillo/helpers/html.py +0 -0
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a2}/sillo/helpers/jwt.py +0 -0
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a2}/sillo/helpers/lazy.py +0 -0
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a2}/sillo/helpers/network.py +0 -0
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a2}/sillo/helpers/registry.py +0 -0
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a2}/sillo/helpers/retry.py +0 -0
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a2}/sillo/helpers/signing.py +0 -0
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a2}/sillo/helpers/strings.py +0 -0
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a2}/sillo/helpers/text.py +0 -0
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a2}/sillo/http/__init__.py +0 -0
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a2}/sillo/http/accepts.py +0 -0
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a2}/sillo/http/client/__init__.py +0 -0
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a2}/sillo/http/client/caching.py +0 -0
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a2}/sillo/http/client/client.py +0 -0
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a2}/sillo/http/client/config.py +0 -0
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a2}/sillo/http/client/errors.py +0 -0
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a2}/sillo/http/client/middleware.py +0 -0
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a2}/sillo/http/client/models.py +0 -0
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a2}/sillo/http/client/retry.py +0 -0
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a2}/sillo/http/client/transport.py +0 -0
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a2}/sillo/http/client/utils.py +0 -0
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a2}/sillo/http/etag.py +0 -0
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a2}/sillo/http/lifecycle/__init__.py +0 -0
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a2}/sillo/http/lifecycle/context.py +0 -0
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a2}/sillo/http/lifecycle/helpers.py +0 -0
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a2}/sillo/http/lifecycle/middleware.py +0 -0
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a2}/sillo/http/sse.py +0 -0
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a2}/sillo/http/status.py +0 -0
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a2}/sillo/logging.py +0 -0
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a2}/sillo/mail/__init__.py +0 -0
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a2}/sillo/mail/client.py +0 -0
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a2}/sillo/mail/config.py +0 -0
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a2}/sillo/mail/context.py +0 -0
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a2}/sillo/mail/models.py +0 -0
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a2}/sillo/middleware/__init__.py +0 -0
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a2}/sillo/middleware/base.py +0 -0
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a2}/sillo/middleware/bridge.py +0 -0
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a2}/sillo/middleware/gzip.py +0 -0
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a2}/sillo/middleware/response_headers.py +0 -0
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a2}/sillo/middleware/security.py +0 -0
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a2}/sillo/middleware/utils.py +0 -0
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a2}/sillo/normalize/__init__.py +0 -0
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a2}/sillo/normalize/helpers.py +0 -0
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a2}/sillo/normalize/middleware.py +0 -0
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a2}/sillo/objects/__init__.py +0 -0
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a2}/sillo/objects/common.py +0 -0
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a2}/sillo/objects/datastructures.py +0 -0
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a2}/sillo/objects/http.py +0 -0
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a2}/sillo/objects/routing.py +0 -0
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a2}/sillo/openapi/__init__.py +0 -0
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a2}/sillo/openapi/_builder.py +0 -0
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a2}/sillo/openapi/config.py +0 -0
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a2}/sillo/openapi/models.py +0 -0
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a2}/sillo/openapi/ui.py +0 -0
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a2}/sillo/openapi/utils.py +0 -0
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a2}/sillo/pagination.py +0 -0
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a2}/sillo/parameters.py +0 -0
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a2}/sillo/permissions/__init__.py +0 -0
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a2}/sillo/permissions/mixins.py +0 -0
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a2}/sillo/permissions/models.py +0 -0
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a2}/sillo/py.typed +0 -0
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a2}/sillo/record/__init__.py +0 -0
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a2}/sillo/record/_bridge.py +0 -0
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a2}/sillo/record/casting.py +0 -0
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a2}/sillo/record/collection.py +0 -0
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a2}/sillo/record/commands/__init__.py +0 -0
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a2}/sillo/record/commands/functions.py +0 -0
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a2}/sillo/record/config.py +0 -0
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a2}/sillo/record/console.py +0 -0
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a2}/sillo/record/events.py +0 -0
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a2}/sillo/record/exceptions.py +0 -0
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a2}/sillo/record/factories.py +0 -0
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a2}/sillo/record/fields.py +0 -0
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a2}/sillo/record/helpers.py +0 -0
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a2}/sillo/record/logging.py +0 -0
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a2}/sillo/record/manager.py +0 -0
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a2}/sillo/record/mixins/__init__.py +0 -0
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a2}/sillo/record/models.py +0 -0
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a2}/sillo/record/pagination.py +0 -0
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a2}/sillo/record/pydantic.py +0 -0
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a2}/sillo/record/queries.py +0 -0
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a2}/sillo/record/scopes.py +0 -0
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a2}/sillo/record/transactions.py +0 -0
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a2}/sillo/responses.py +0 -0
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a2}/sillo/route_builder.py +0 -0
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a2}/sillo/security/__init__.py +0 -0
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a2}/sillo/security/cors/__init__.py +0 -0
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a2}/sillo/security/cors/_middleware.py +0 -0
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a2}/sillo/security/cors/config.py +0 -0
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a2}/sillo/security/csrf/__init__.py +0 -0
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a2}/sillo/security/csrf/config.py +0 -0
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a2}/sillo/security/ratelimit/__init__.py +0 -0
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a2}/sillo/security/ratelimit/_middleware.py +0 -0
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a2}/sillo/security/ratelimit/backends/__init__.py +0 -0
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a2}/sillo/security/ratelimit/backends/base.py +0 -0
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a2}/sillo/security/ratelimit/backends/memory.py +0 -0
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a2}/sillo/security/ratelimit/backends/record.py +0 -0
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a2}/sillo/security/ratelimit/backends/redis.py +0 -0
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a2}/sillo/security/ratelimit/config.py +0 -0
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a2}/sillo/security/ratelimit/models.py +0 -0
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a2}/sillo/security/ratelimit/strategies/__init__.py +0 -0
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a2}/sillo/security/ratelimit/strategies/base.py +0 -0
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a2}/sillo/security/ratelimit/strategies/fixed_window.py +0 -0
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a2}/sillo/security/ratelimit/strategies/sliding_window.py +0 -0
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a2}/sillo/security/ratelimit/strategies/token_bucket.py +0 -0
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a2}/sillo/security/shield.py +0 -0
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a2}/sillo/session/__init__.py +0 -0
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a2}/sillo/session/base.py +0 -0
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a2}/sillo/session/config.py +0 -0
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a2}/sillo/session/file.py +0 -0
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a2}/sillo/session/middleware.py +0 -0
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a2}/sillo/session/session_objects.py +0 -0
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a2}/sillo/session/signed_cookies.py +0 -0
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a2}/sillo/static.py +0 -0
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a2}/sillo/storage/__init__.py +0 -0
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a2}/sillo/storage/base.py +0 -0
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a2}/sillo/storage/bucket.py +0 -0
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a2}/sillo/storage/config.py +0 -0
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a2}/sillo/storage/context.py +0 -0
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a2}/sillo/storage/drivers/__init__.py +0 -0
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a2}/sillo/storage/drivers/memory.py +0 -0
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a2}/sillo/storage/errors.py +0 -0
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a2}/sillo/storage/paths.py +0 -0
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a2}/sillo/storage/policies.py +0 -0
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a2}/sillo/storage/routes.py +0 -0
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a2}/sillo/storage/signing.py +0 -0
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a2}/sillo/storage/sniff.py +0 -0
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a2}/sillo/storage/storage.py +0 -0
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a2}/sillo/storage/uploads.py +0 -0
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a2}/sillo/testclient/__init__.py +0 -0
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a2}/sillo/testclient/_internal/__init__.py +0 -0
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a2}/sillo/testclient/_internal/inputs.py +0 -0
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a2}/sillo/testclient/_internal/transport.py +0 -0
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a2}/sillo/testclient/_internal/types.py +0 -0
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a2}/sillo/testclient/_internal/utils.py +0 -0
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a2}/sillo/testclient/_internal/websockets.py +0 -0
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a2}/sillo/testclient/async_client.py +0 -0
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a2}/sillo/testclient/base.py +0 -0
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a2}/sillo/testclient/exceptions.py +0 -0
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a2}/sillo/testclient/helpers.py +0 -0
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a2}/sillo/types.py +0 -0
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a2}/sillo/users/__init__.py +0 -0
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a2}/sillo/users/base.py +0 -0
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a2}/sillo/users/commands.py +0 -0
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a2}/sillo/users/console.py +0 -0
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a2}/sillo/users/managers.py +0 -0
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a2}/sillo/users/protocol.py +0 -0
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a2}/sillo/users/simple.py +0 -0
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a2}/sillo/validation/__init__.py +0 -0
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a2}/sillo/validation/compiler.py +0 -0
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a2}/sillo/validation/errors.py +0 -0
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a2}/sillo/validation/fields.py +0 -0
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a2}/sillo/websockets/__init__.py +0 -0
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a2}/sillo/websockets/base.py +0 -0
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a2}/sillo/websockets/errors.py +0 -0
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a2}/sillo/websockets/status.py +0 -0
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a2}/sillo/work/__init__.py +0 -0
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a2}/sillo/work/backends.py +0 -0
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a2}/sillo/work/background/__init__.py +0 -0
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a2}/sillo/work/background/supervisor.py +0 -0
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a2}/sillo/work/background/tasks.py +0 -0
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a2}/sillo/work/commands.py +0 -0
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a2}/sillo/work/console.py +0 -0
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a2}/sillo/work/dependency.py +0 -0
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a2}/sillo/work/middleware.py +0 -0
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a2}/sillo/work/queue/__init__.py +0 -0
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a2}/sillo/work/queue/batches.py +0 -0
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a2}/sillo/work/queue/connection.py +0 -0
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a2}/sillo/work/queue/events.py +0 -0
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a2}/sillo/work/queue/failed.py +0 -0
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a2}/sillo/work/queue/job.py +0 -0
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a2}/sillo/work/queue/listener.py +0 -0
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a2}/sillo/work/queue/middleware.py +0 -0
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a2}/sillo/work/queue/payloads.py +0 -0
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a2}/sillo/work/queue/workers.py +0 -0
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a2}/sillo/work/scheduler/__init__.py +0 -0
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a2}/sillo/work/scheduler/cron.py +0 -0
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a2}/sillo/work/scheduler/jobs.py +0 -0
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a2}/sillo/work/scheduler/manager.py +0 -0
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a2}/sillo/work/scheduler/middleware.py +0 -0
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a2}/sillo/work/scheduler/triggers.py +0 -0
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a2}/sillo/work/task.py +0 -0
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a2}/sillo/work/types.py +0 -0
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a2}/tests/__init__.py +0 -0
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a2}/tests/conftest.py +0 -0
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a2}/tests/static/example.txt +0 -0
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a2}/tests/static/page.html +0 -0
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a2}/tests/static/script.js +0 -0
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a2}/tests/static/style.css +0 -0
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a2}/tests/static/subfolder/subfile.txt +0 -0
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a2}/tests/templates/base.html +0 -0
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a2}/tests/templates/product.html +0 -0
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a2}/tests/templates/welcome.html +0 -0
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a2}/tests/test_applications/__init__.py +0 -0
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a2}/tests/test_applications/test_app_class_name.py +0 -0
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a2}/tests/test_applications/test_application.py +0 -0
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a2}/tests/test_applications/test_middleware_chain_cache.py +0 -0
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a2}/tests/test_applications/test_route_kwargs.py +0 -0
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a2}/tests/test_auth/__init__.py +0 -0
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a2}/tests/test_auth/test_apikey_backend.py +0 -0
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a2}/tests/test_auth/test_apikey_models.py +0 -0
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a2}/tests/test_auth/test_auth_middleware.py +0 -0
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a2}/tests/test_auth/test_auth_utilities.py +0 -0
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a2}/tests/test_auth/test_custom_backend.py +0 -0
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a2}/tests/test_auth/test_jwt_backend.py +0 -0
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a2}/tests/test_auth/test_jwt_token_model.py +0 -0
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a2}/tests/test_auth/test_jwt_user_mixin.py +0 -0
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a2}/tests/test_auth/test_security_schemes.py +0 -0
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a2}/tests/test_auth/test_session_backend.py +0 -0
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a2}/tests/test_auth/test_session_model_extend.py +0 -0
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a2}/tests/test_auth/test_token_for_user.py +0 -0
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a2}/tests/test_auth/test_use_auth.py +0 -0
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a2}/tests/test_auth/test_user_models.py +0 -0
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a2}/tests/test_cache/__init__.py +0 -0
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a2}/tests/test_cache/test_base.py +0 -0
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a2}/tests/test_cache/test_decorator.py +0 -0
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a2}/tests/test_cache/test_memory_cache.py +0 -0
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a2}/tests/test_cache/test_redis_backend.py +0 -0
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a2}/tests/test_cache/test_redis_cache_fake.py +0 -0
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a2}/tests/test_config/__init__.py +0 -0
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a2}/tests/test_config/conftest.py +0 -0
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a2}/tests/test_config/test_config_loading.py +0 -0
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a2}/tests/test_config/test_env_loading.py +0 -0
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a2}/tests/test_console/__init__.py +0 -0
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a2}/tests/test_console/test_arguments.py +0 -0
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a2}/tests/test_console/test_builtin_record.py +0 -0
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a2}/tests/test_console/test_builtin_users.py +0 -0
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a2}/tests/test_console/test_builtin_work.py +0 -0
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a2}/tests/test_console/test_command.py +0 -0
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a2}/tests/test_console/test_console.py +0 -0
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a2}/tests/test_console/test_output.py +0 -0
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a2}/tests/test_console/test_prompt.py +0 -0
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a2}/tests/test_console/test_style.py +0 -0
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a2}/tests/test_console/test_terminal.py +0 -0
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a2}/tests/test_cors/__init__.py +0 -0
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a2}/tests/test_cors/test_configuration.py +0 -0
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a2}/tests/test_cors/test_credentials_security.py +0 -0
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a2}/tests/test_cors/test_error_handling.py +0 -0
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a2}/tests/test_cors/test_integration.py +0 -0
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a2}/tests/test_cors/test_preflight_requests.py +0 -0
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a2}/tests/test_cors/test_simple_requests.py +0 -0
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a2}/tests/test_dependencies/__init__.py +0 -0
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a2}/tests/test_dependencies/test_dependency_injection.py +0 -0
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a2}/tests/test_encoding/__init__.py +0 -0
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a2}/tests/test_encoding/test_custom_encoder.py +0 -0
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a2}/tests/test_encoding/test_encoding_shim.py +0 -0
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a2}/tests/test_encoding/test_jsonable_encoder.py +0 -0
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a2}/tests/test_encoding/test_passthrough_fast_path.py +0 -0
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a2}/tests/test_env/__init__.py +0 -0
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a2}/tests/test_env/conftest.py +0 -0
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a2}/tests/test_env/test_load.py +0 -0
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a2}/tests/test_env/test_parse.py +0 -0
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a2}/tests/test_events/__init__.py +0 -0
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a2}/tests/test_events/test_comprehensive_events.py +0 -0
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a2}/tests/test_events/test_core_propagation.py +0 -0
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a2}/tests/test_events/test_emitter_paths.py +0 -0
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a2}/tests/test_events/test_events_backends.py +0 -0
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a2}/tests/test_events/test_persistent_transport_fake.py +0 -0
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a2}/tests/test_events/test_record_transport.py +0 -0
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a2}/tests/test_events/test_redis_transport_fake.py +0 -0
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a2}/tests/test_events/test_transport_registry_and_base.py +0 -0
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a2}/tests/test_exception_handlers/__init__.py +0 -0
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a2}/tests/test_exception_handlers/test_basic_exception_handlers.py +0 -0
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a2}/tests/test_exception_handlers/test_concurrent_error_pages.py +0 -0
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a2}/tests/test_exception_handlers/test_dispatch_internals.py +0 -0
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a2}/tests/test_exception_handlers/test_exception_handler_integration.py +0 -0
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a2}/tests/test_exception_handlers/test_server_error_debug.py +0 -0
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a2}/tests/test_forms/__init__.py +0 -0
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a2}/tests/test_forms/test_form_parser.py +0 -0
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a2}/tests/test_forms/test_uploaded_file_save.py +0 -0
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a2}/tests/test_hashing/__init__.py +0 -0
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a2}/tests/test_hashing/test_core.py +0 -0
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a2}/tests/test_hashing/test_utils.py +0 -0
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a2}/tests/test_helpers/__init__.py +0 -0
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a2}/tests/test_helpers/test_accepts.py +0 -0
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a2}/tests/test_helpers/test_async.py +0 -0
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a2}/tests/test_helpers/test_concurrency.py +0 -0
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a2}/tests/test_helpers/test_deprecation.py +0 -0
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a2}/tests/test_helpers/test_files.py +0 -0
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a2}/tests/test_helpers/test_hashing_crypto.py +0 -0
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a2}/tests/test_helpers/test_html.py +0 -0
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a2}/tests/test_helpers/test_jwt.py +0 -0
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a2}/tests/test_helpers/test_network.py +0 -0
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a2}/tests/test_helpers/test_registry.py +0 -0
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a2}/tests/test_helpers/test_retry.py +0 -0
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a2}/tests/test_helpers/test_signing.py +0 -0
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a2}/tests/test_helpers/test_strings.py +0 -0
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a2}/tests/test_helpers/test_text.py +0 -0
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a2}/tests/test_http/__init__.py +0 -0
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a2}/tests/test_http/test_accepts.py +0 -0
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a2}/tests/test_http/test_accepts_middleware.py +0 -0
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a2}/tests/test_http/test_accepts_negotiation.py +0 -0
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a2}/tests/test_http/test_cookie_parsing.py +0 -0
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a2}/tests/test_http/test_etag_full.py +0 -0
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a2}/tests/test_http/test_http_etag.py +0 -0
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a2}/tests/test_http/test_http_module_exports.py +0 -0
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a2}/tests/test_http/test_sse.py +0 -0
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a2}/tests/test_lifecycle/__init__.py +0 -0
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a2}/tests/test_lifecycle/test_context.py +0 -0
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a2}/tests/test_lifecycle/test_request_id.py +0 -0
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a2}/tests/test_mail/__init__.py +0 -0
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a2}/tests/test_mail/test_context.py +0 -0
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a2}/tests/test_mail/test_mail_client.py +0 -0
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a2}/tests/test_mail/test_mail_service.py +0 -0
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a2}/tests/test_mail/test_mail_transport.py +0 -0
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a2}/tests/test_middleware/__init__.py +0 -0
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a2}/tests/test_middleware/test_app_level_middleware.py +0 -0
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a2}/tests/test_middleware/test_bridge.py +0 -0
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a2}/tests/test_middleware/test_gzip.py +0 -0
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a2}/tests/test_middleware/test_route_level_middleware.py +0 -0
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a2}/tests/test_middleware/test_router_level_middleware.py +0 -0
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a2}/tests/test_middleware/test_use_for_route.py +0 -0
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a2}/tests/test_normalize/__init__.py +0 -0
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a2}/tests/test_normalize/test_helpers.py +0 -0
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a2}/tests/test_normalize/test_middleware.py +0 -0
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a2}/tests/test_objects/__init__.py +0 -0
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a2}/tests/test_objects/test_headers.py +0 -0
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a2}/tests/test_objects/test_multidict.py +0 -0
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a2}/tests/test_objects/test_url.py +0 -0
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a2}/tests/test_objects/test_url_building.py +0 -0
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a2}/tests/test_openapi/__init__.py +0 -0
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a2}/tests/test_openapi/test_docs_ui.py +0 -0
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a2}/tests/test_openapi/test_openapi_config.py +0 -0
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a2}/tests/test_openapi/test_openapi_spec.py +0 -0
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a2}/tests/test_openapi/test_openapi_utils.py +0 -0
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a2}/tests/test_optional_imports.py +0 -0
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a2}/tests/test_pagination/__init__.py +0 -0
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a2}/tests/test_pagination/test_data_handlers.py +0 -0
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a2}/tests/test_pagination/test_edge_cases.py +0 -0
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a2}/tests/test_pagination/test_error_handling.py +0 -0
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a2}/tests/test_pagination/test_integration.py +0 -0
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a2}/tests/test_pagination/test_pagination_strategies.py +0 -0
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a2}/tests/test_pagination/test_paginators.py +0 -0
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a2}/tests/test_pagination/test_response_classes.py +0 -0
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a2}/tests/test_pagination/test_response_paginate.py +0 -0
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a2}/tests/test_parameters/__init__.py +0 -0
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a2}/tests/test_parameters/test_cookie.py +0 -0
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a2}/tests/test_parameters/test_header.py +0 -0
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a2}/tests/test_parameters/test_nested.py +0 -0
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a2}/tests/test_parameters/test_openapi.py +0 -0
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a2}/tests/test_parameters/test_query.py +0 -0
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a2}/tests/test_permissions/__init__.py +0 -0
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a2}/tests/test_permissions/test_permissions.py +0 -0
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a2}/tests/test_record/__init__.py +0 -0
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a2}/tests/test_record/test_collection.py +0 -0
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a2}/tests/test_record/test_events.py +0 -0
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a2}/tests/test_record/test_factories.py +0 -0
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a2}/tests/test_record/test_mass_assignment.py +0 -0
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a2}/tests/test_record/test_mixins.py +0 -0
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a2}/tests/test_record/test_model_features.py +0 -0
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a2}/tests/test_record/test_pagination_and_exceptions.py +0 -0
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a2}/tests/test_record/test_pydantic_bridge.py +0 -0
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a2}/tests/test_record/test_queries.py +0 -0
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a2}/tests/test_record/test_query_logging.py +0 -0
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a2}/tests/test_record/test_record_commands.py +0 -0
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a2}/tests/test_record/test_release_fixes.py +0 -0
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a2}/tests/test_record/test_seeding.py +0 -0
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a2}/tests/test_redis/__init__.py +0 -0
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a2}/tests/test_redis/test_redis_cache.py +0 -0
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a2}/tests/test_redis/test_redis_transport.py +0 -0
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a2}/tests/test_requests/__init__.py +0 -0
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a2}/tests/test_requests/test_basic_properties.py +0 -0
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a2}/tests/test_requests/test_body_data.py +0 -0
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a2}/tests/test_requests/test_cookies_auth.py +0 -0
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a2}/tests/test_requests/test_path_params.py +0 -0
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a2}/tests/test_requests/test_query_params.py +0 -0
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a2}/tests/test_requests/test_request_flags.py +0 -0
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a2}/tests/test_requests/test_request_surface.py +0 -0
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a2}/tests/test_responses/__init__.py +0 -0
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a2}/tests/test_responses/test_advanced_responses.py +0 -0
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a2}/tests/test_responses/test_basic_responses.py +0 -0
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a2}/tests/test_responses/test_cookie_attributes.py +0 -0
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a2}/tests/test_responses/test_file_responses.py +0 -0
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a2}/tests/test_responses/test_header_override.py +0 -0
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a2}/tests/test_responses/test_headers_cookies.py +0 -0
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a2}/tests/test_responses/test_json_serialization.py +0 -0
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a2}/tests/test_responses/test_redirect_streaming.py +0 -0
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a2}/tests/test_responses/test_response_properties.py +0 -0
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a2}/tests/test_responses/test_responses_module.py +0 -0
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a2}/tests/test_routing/__init__.py +0 -0
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a2}/tests/test_routing/test_base_route.py +0 -0
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a2}/tests/test_routing/test_basic_routing.py +0 -0
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a2}/tests/test_routing/test_converters.py +0 -0
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a2}/tests/test_routing/test_grouping.py +0 -0
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a2}/tests/test_routing/test_http_methods.py +0 -0
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a2}/tests/test_routing/test_nested_routes.py +0 -0
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a2}/tests/test_routing/test_path_parameters.py +0 -0
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a2}/tests/test_routing/test_route_builder.py +0 -0
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a2}/tests/test_security/__init__.py +0 -0
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a2}/tests/test_security/test_csrf.py +0 -0
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a2}/tests/test_security/test_csrf_predicates.py +0 -0
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a2}/tests/test_security/test_middleware.py +0 -0
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a2}/tests/test_security/test_ratelimit_redis_backend.py +0 -0
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a2}/tests/test_security/test_record_backend.py +0 -0
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a2}/tests/test_security/test_strategies.py +0 -0
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a2}/tests/test_sessions/__init__.py +0 -0
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a2}/tests/test_sessions/test_base.py +0 -0
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a2}/tests/test_sessions/test_config_and_objects_internals.py +0 -0
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a2}/tests/test_sessions/test_expiry.py +0 -0
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a2}/tests/test_sessions/test_file_sessions.py +0 -0
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a2}/tests/test_sessions/test_integration.py +0 -0
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a2}/tests/test_sessions/test_middleware.py +0 -0
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a2}/tests/test_sessions/test_security.py +0 -0
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a2}/tests/test_sessions/test_settings.py +0 -0
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a2}/tests/test_sessions/test_signed_cookies.py +0 -0
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a2}/tests/test_small_module_gaps.py +0 -0
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a2}/tests/test_static/__init__.py +0 -0
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a2}/tests/test_static/test_static_files.py +0 -0
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a2}/tests/test_static/test_static_files_internals.py +0 -0
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a2}/tests/test_storage/__init__.py +0 -0
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a2}/tests/test_storage/contract.py +0 -0
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a2}/tests/test_storage/test_bucket.py +0 -0
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a2}/tests/test_storage/test_config.py +0 -0
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a2}/tests/test_storage/test_context.py +0 -0
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a2}/tests/test_storage/test_drivers.py +0 -0
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a2}/tests/test_storage/test_integration.py +0 -0
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a2}/tests/test_storage/test_local_driver_internals.py +0 -0
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a2}/tests/test_storage/test_paths_helpers.py +0 -0
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a2}/tests/test_storage/test_policies.py +0 -0
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a2}/tests/test_storage/test_routes.py +0 -0
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a2}/tests/test_storage/test_safety.py +0 -0
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a2}/tests/test_storage/test_uploads.py +0 -0
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a2}/tests/test_supported_python_versions.py +0 -0
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a2}/tests/test_testclient/test_lifespan_internals.py +0 -0
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a2}/tests/test_testclient/test_transport_internals.py +0 -0
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a2}/tests/test_testclient/test_websocket_session_internals.py +0 -0
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a2}/tests/test_type_comments.py +0 -0
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a2}/tests/test_users/__init__.py +0 -0
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a2}/tests/test_users/test_password.py +0 -0
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a2}/tests/test_users/test_protocol.py +0 -0
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a2}/tests/test_users/test_user_commands.py +0 -0
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a2}/tests/test_users/test_user_model.py +0 -0
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a2}/tests/test_validation/__init__.py +0 -0
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a2}/tests/test_validation/conftest.py +0 -0
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a2}/tests/test_validation/test_body_form.py +0 -0
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a2}/tests/test_validation/test_legacy_compat.py +0 -0
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a2}/tests/test_validation/test_markers_unit.py +0 -0
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a2}/tests/test_validation/test_openapi_generation.py +0 -0
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a2}/tests/test_validation/test_params.py +0 -0
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a2}/tests/test_validation/test_request_model.py +0 -0
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a2}/tests/test_validation/test_response_model.py +0 -0
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a2}/tests/test_websockets/__init__.py +0 -0
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a2}/tests/test_websockets/test_websocket_errors.py +0 -0
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a2}/tests/test_websockets/test_websocket_protocol.py +0 -0
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a2}/tests/test_websockets/test_websocket_state_machine.py +0 -0
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a2}/tests/test_work/__init__.py +0 -0
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a2}/tests/test_work/test_backends_full.py +0 -0
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a2}/tests/test_work/test_background.py +0 -0
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a2}/tests/test_work/test_events.py +0 -0
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a2}/tests/test_work/test_job_dispatch.py +0 -0
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a2}/tests/test_work/test_job_queue.py +0 -0
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a2}/tests/test_work/test_job_round_trip.py +0 -0
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a2}/tests/test_work/test_memory_backend.py +0 -0
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a2}/tests/test_work/test_middleware.py +0 -0
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a2}/tests/test_work/test_queue.py +0 -0
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a2}/tests/test_work/test_queue_middleware.py +0 -0
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a2}/tests/test_work/test_queue_worker.py +0 -0
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a2}/tests/test_work/test_redis_connection_internals.py +0 -0
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a2}/tests/test_work/test_redis_queue_reliability.py +0 -0
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a2}/tests/test_work/test_routes.py +0 -0
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a2}/tests/test_work/test_scheduler.py +0 -0
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a2}/tests/test_work/test_scheduler_middleware.py +0 -0
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a2}/tests/test_work/test_task.py +0 -0
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a2}/tests/test_work/test_types.py +0 -0
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a2}/tests/test_work/test_work_commands.py +0 -0
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a2}/tests/test_work/test_work_di.py +0 -0
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a2}/tests/test_work/work_jobs.py +0 -0
|
@@ -7,6 +7,115 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
|
|
|
7
7
|
|
|
8
8
|
## [Unreleased]
|
|
9
9
|
|
|
10
|
+
## [1.0.0a2] - 2026-09-18
|
|
11
|
+
|
|
12
|
+
The second alpha of 1.0.
|
|
13
|
+
|
|
14
|
+
### Added
|
|
15
|
+
|
|
16
|
+
- **`Depend(fn, get_context=False)`.** A dependency previously always had its first positional parameter reserved for the context, forcing dependencies that don't need it to declare a leading, unused parameter (often named `_`). `get_context=False` opts out: no context is passed positionally, and the callable's own first parameter is analyzed normally, so it can carry a `Depend(...)` or extractor default of its own.
|
|
17
|
+
|
|
18
|
+
### Fixed
|
|
19
|
+
|
|
20
|
+
- **A rejected CSRF request now carries a usable token.** A 403 for a missing or invalid token went out without a `Set-Cookie`, even though a fresh token had already been minted for it — a client with no cookie yet (its first request is a POST, or an earlier `Set-Cookie` was dropped by a CDN or proxy) got a 403 with nothing to retry with, and every retry failed the same way.
|
|
21
|
+
- **A `Group` whose own mount prefix carries a path parameter now matches.** `Group(path="/tenants/{id:int}", app=...)` stripped the *literal template text* (`{id:int}` included) off the request path instead of the text the pattern actually matched, so a request under such a group fell through to the mounted app with its path untouched and 404'd there instead.
|
|
22
|
+
|
|
23
|
+
### Removed
|
|
24
|
+
|
|
25
|
+
- **`SilloApp.wrap_asgi(...)` is gone.** `app.use(...)` now accepts a raw ASGI middleware factory directly, in place of a dispatch function — sillo infers which form it is from the middleware's `__call__` signature (three required positional parameters is raw ASGI, two is dispatch), or `raw=True`/`raw=False` states it explicitly. `app.wrap_asgi(mw, **kwargs)` becomes `app.use(mw, **kwargs)` (or `app.use(mw, raw=True, **kwargs)` when the signature is ambiguous, e.g. a factory taking only the next app). `Router.use(...)` gained the same `raw`/`*args`/`**kwargs` parameters.
|
|
26
|
+
|
|
27
|
+
## [1.0.0a1] - 2026-09-12
|
|
28
|
+
|
|
29
|
+
The first alpha of 1.0 — **the context rewrite**. This is a breaking release
|
|
30
|
+
with no compatibility shims. Install with
|
|
31
|
+
`pip install --pre sillo-framework==1.0.0a1`.
|
|
32
|
+
|
|
33
|
+
An alpha: the surface below is what 1.0 is expected to look like, but it is not
|
|
34
|
+
frozen yet, and API may still change before `1.0.0`.
|
|
35
|
+
|
|
36
|
+
### Added
|
|
37
|
+
|
|
38
|
+
- **Host-scoped routers — `Router(host=...)`.** A router only answers requests whose `Host` header matches. Exact (`admin.example.com`) or a single-label wildcard (`*.example.com`). A request to another host falls through to the rest of the app.
|
|
39
|
+
- **Version-scoped routers — `Router(version=...)`.** A router only answers requests carrying a matching `X-API-Version` header, or an `Accept` media type with a `version=<value>` parameter. Lets a `v1` and `v2` router share the same paths and be picked by the client.
|
|
40
|
+
- **`Router(middleware=[...])`.** Register router middleware at construction — dispatch callables, `DefineMiddleware`, or `(cls, args, kwargs)` tuples — instead of a run of `router.use(...)` calls. First in the list is the outermost layer.
|
|
41
|
+
- **`SilloApp(root_path=...)`.** A mount prefix a reverse proxy strips before forwarding. It is folded into `scope["root_path"]`, removed before route matching, and re-added by `ctx.url_for(...)` and the OpenAPI `servers` block, so generated links stay correct.
|
|
42
|
+
- **`SilloApp(force_https=True)`.** Any plain-`http` request is answered with a 308 to the `https` URL. `X-Forwarded-Proto: https` from a proxy is honoured, so a TLS-terminating proxy in front of an `http` app does not loop.
|
|
43
|
+
- **`SilloApp(trailing_slash=...)` / `Router(trailing_slash=...)`.** `"strict"` (default, `/x` ≠ `/x/`), `"redirect"` (308 to the registered form), or `"ignore"` (serve it in place).
|
|
44
|
+
- **Declarative redirects — `app.redirect(path, to, *, status_code=307, ...)`** (and `Router.redirect`). Registers a redirect-only route, no handler. Placeholders shared by both sides are substituted (`app.redirect("/u/{id}", "/users/{id}")`); a mount prefix and the query string are carried across. Hidden from the schema.
|
|
45
|
+
- **`app.print_routes()`** and `sillo.core.routing.{iter_routes, format_routes, print_routes}` — walk the router and every mount, fold prefixes in, and render `METHODS PATH handler (name)` rows for a startup log or a REPL.
|
|
46
|
+
- **New path converters**: `bool` (`true`/`1`/`yes`/`on` and their negatives, any case → real `bool`), `date` (`YYYY-MM-DD` → `datetime.date`), `datetime` (ISO 8601, `Z` accepted → `datetime.datetime`), `ulid` (26 Crockford base32 chars), `alpha` (`[A-Za-z]+`), `alnum` (`[A-Za-z0-9]+`).
|
|
47
|
+
- **`priority=` on routes.** `@app.get(..., priority=10)` (also on `Route(...)`, `add_route(...)`, and `ws_route(...)`) sets an explicit match-ordering weight. Routes are tried in descending priority, then by path specificity, then registration order. Raise it to force a route ahead of an overlapping one; use a negative value to make a route a deliberate fallback.
|
|
48
|
+
- **`SilloApp(route_order=...)` / `Router(route_order=...)`.** `"specificity"` (the new default) or `"registration"` to restore the historical first-registered, first-matched behavior for a whole application. Documented in [Routing → Route matching order](https://sillo.build/v1.0/guides/routing/#route-matching-order).
|
|
49
|
+
- **`app.dependency_overrides`** and **`app.override(original, replacement)`.** Swap a `Depend(...)` callable for a test double, FastAPI-style. Matched by identity against the exact function passed to `Depend`, and reached through every nested dependency in the tree, not only the top-level one. `app.override(...)` is a context manager that restores the previous mapping (present or absent) on exit, including on exception; assign `app.dependency_overrides[original] = replacement` directly for a suite-wide swap that outlives a single `with` block.
|
|
50
|
+
|
|
51
|
+
### Changed
|
|
52
|
+
|
|
53
|
+
- **A handler takes one leading argument: the context.** `HttpContext` on an
|
|
54
|
+
HTTP route, `WebSocketContext` on a WebSocket route. Path parameters,
|
|
55
|
+
dependencies and validation markers follow it, bound by name as before:
|
|
56
|
+
|
|
57
|
+
```python
|
|
58
|
+
from sillo import SilloApp, HttpContext, json
|
|
59
|
+
|
|
60
|
+
app = SilloApp()
|
|
61
|
+
|
|
62
|
+
@app.get("/users/{id:int}")
|
|
63
|
+
def show(ctx: HttpContext, id: int):
|
|
64
|
+
return json({"id": id})
|
|
65
|
+
```
|
|
66
|
+
|
|
67
|
+
`BaseContext` carries `scope`, `headers`, `cookies`, `path_params`,
|
|
68
|
+
`query_params`, `state`, `user`, `client`, `app` and `url_for`.
|
|
69
|
+
`HttpContext` adds `method`, `await ctx.json`, `await ctx.body`,
|
|
70
|
+
`await ctx.form`, `ctx.files` and `ctx.validated_data`.
|
|
71
|
+
|
|
72
|
+
- **Responses are functions, in `sillo.responses`**, every name re-exported
|
|
73
|
+
from `sillo` — bodies (`json`, `text`, `html`, `xml`, `raw`, `empty`), status
|
|
74
|
+
shorthands (`created`, `accepted`, `no_content`), redirects, files
|
|
75
|
+
(`file`, `download`), streaming (`stream`, `ndjson`, `sse`), pagination
|
|
76
|
+
(`paginate`, `apaginate`, which take `ctx` first) and `abort` / `not_found`,
|
|
77
|
+
which raise rather than return. Each builder returns a `BaseResponse`
|
|
78
|
+
subclass carrying the chainable half (`status`, `cache`, `set_header`,
|
|
79
|
+
`set_cookie`, …), each returning `self`. Import from the module when the file
|
|
80
|
+
also needs the stdlib `json`/`html` or the `file` builtin.
|
|
81
|
+
|
|
82
|
+
- **WebSocket routes bind path parameters.** They were read from
|
|
83
|
+
`scope["path_params"]`, which the router never writes, so the keyword
|
|
84
|
+
arguments a handler declared were always empty. Note that the registration
|
|
85
|
+
name is `ws_route` / `add_ws_route`; there is no `@app.websocket(...)`.
|
|
86
|
+
|
|
87
|
+
- **An unhandled request error logs a structured block, not a raw traceback.** `sillo.handlers.error_report` keeps only the frames in *your* code:
|
|
88
|
+
|
|
89
|
+
```
|
|
90
|
+
💥 oops — KeyError: 'ABC-9'
|
|
91
|
+
request GET /catalog/ABC-9
|
|
92
|
+
at api/catalog.py:14 in show
|
|
93
|
+
→ price = lookup(catalog, sku)
|
|
94
|
+
at pricing/rules.py:2 in lookup
|
|
95
|
+
1 def lookup(catalog, sku):
|
|
96
|
+
› 2 price = catalog["items"][sku]["price"]
|
|
97
|
+
^^^^^^^^^^^^^^^^^^^^^
|
|
98
|
+
3 return price * 1.2
|
|
99
|
+
with catalog={'items': {}}, sku='ABC-9'
|
|
100
|
+
```
|
|
101
|
+
|
|
102
|
+
Each calling frame is one line; the frame it broke on gets a window of real source with the line marked `›` (bright, its neighbours dim) and a caret under the exact expression (Python 3.11+, single-line). `file:line` is cyan, the function bold. `with` lists the raising frame's own locals — scalars and small containers verbatim, a big one as `<dict len=N>`, a name that reads like a secret as `***`. `SILLO_TRACE` sets the depth — `off`, `app` (default while `debug` is on), `full` (append the raw traceback). Off a terminal or with `debug` off, nothing is rendered; one structured line goes to the logger instead. Every 500 also stopped logging two-to-three times — `sillo.core.error.handler` was creating a child logger with its own handler that still propagated to the parent's.
|
|
103
|
+
- **Overlapping routes now match most-specific-first, not registration-first.** A literal segment beats a parameter at the same position, a narrow converter (`:int`, `:float`, `:uuid`) beats a plain string parameter, and both beat a `:path` catch-all — decided left to right. `@app.get("/users/{id}")` no longer shadows a `@app.get("/users/me")` registered after it. The ordering is computed once, lazily, on the first request after registration, so per-request dispatch is unchanged. Pass `route_order="registration"` to opt out.
|
|
104
|
+
- **A 404 response no longer carries a traceback.** The stack of `raise NotFoundException` is the router's, not the caller's — it named internal framework paths and told a developer nothing about their own code. Debug mode still widens the *message* (the exception's `detail` instead of the generic sentence); it no longer adds a `traceback` field.
|
|
105
|
+
- **The 404 and debug (500) HTML pages are restyled** to match Sillo's own terminal aesthetic — dark background, monospace, brand red (`#fc0345`) — instead of a light Arial page for 404s and a page whose `--error`/accent variable was, by mistake, green (`#02ba42`) rather than red for the debug page. Both pages, and two other spots on the debug page that bypassed the CSS variables with a hardcoded color, now flow from the same palette as the terminal error log.
|
|
106
|
+
- **`SilloApp(debug=...)` now defaults to `False`.** It previously defaulted to `True`, so a project that never passed `debug` explicitly shipped with the full debug page — and a verbose terminal error log — on by default. An app that wants debug output in local development now has to say so.
|
|
107
|
+
- **The terminal error trace no longer depends on `debug`.** It only ever prints to the server's own terminal — nothing in it reaches a client — so it now defaults on whenever `stderr` is an actual terminal, regardless of `debug`. Previously it rode on `debug`'s default, so the flip above would otherwise have silently taken the pretty trace away from local development along with the (correct) HTTP-facing change. `SILLO_TRACE` still overrides either way.
|
|
108
|
+
|
|
109
|
+
### Removed
|
|
110
|
+
|
|
111
|
+
- **`Request`, the `Response` manager and the `Responder` builder are gone**,
|
|
112
|
+
and nothing is shimmed. `sillo/core/http/request.py` no longer exists.
|
|
113
|
+
- **The built-in admin panel is no longer part of the framework.** It is its
|
|
114
|
+
own package now — [`warder`](https://sillo.build/packages/warder/).
|
|
115
|
+
- **`Depend(get_request=True)` / `Depend(get_context=True)`** — a dependency
|
|
116
|
+
takes the context as its first positional parameter instead.
|
|
117
|
+
|
|
118
|
+
|
|
10
119
|
## [0.3.2.dev1] - 2026-09-07
|
|
11
120
|
|
|
12
121
|
A development pre-release for testing. Install with `pip install --pre sillo-framework==0.3.2.dev1`.
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.5
|
|
2
2
|
Name: sillo-framework
|
|
3
|
-
Version: 0.
|
|
3
|
+
Version: 1.0.0a2
|
|
4
4
|
Summary: Python with the pieces already in place: an async web framework whose ORM, auth, admin, queues, scheduler and WebSockets share one configuration model.
|
|
5
5
|
Project-URL: Homepage, https://github.com/sillohq/core
|
|
6
6
|
Project-URL: Repository, https://github.com/sillohq/core
|
|
@@ -123,53 +123,38 @@ Description-Content-Type: text/markdown
|
|
|
123
123
|
<a href="https://github.com/sillohq/core/blob/main/LICENSE"><img src="https://img.shields.io/pypi/l/sillo-framework?color=green" alt="License"></a>
|
|
124
124
|
</p>
|
|
125
125
|
|
|
126
|
-
|
|
127
|
-
> **This branch is Sillo 1.0, and 1.0 is not released.**
|
|
128
|
-
>
|
|
129
|
-
> `main` is where 1.0 is being built. Nothing here is on PyPI, the API is still
|
|
130
|
-
> moving, and it is not backwards compatible with the released line — handlers
|
|
131
|
-
> take a single `ctx` argument, `sillo.graphql` and the WebSocket room layer
|
|
132
|
-
> have moved into [their own packages](https://docs.sillo.build/packages/), and
|
|
133
|
-
> more will change before it ships.
|
|
134
|
-
>
|
|
135
|
-
> **`pip install sillo-framework` installs 0.x, not this.** The released code
|
|
136
|
-
> lives on **[`v0.x`](https://github.com/sillohq/core/tree/v0.x)**, which is
|
|
137
|
-
> where fixes and dependency updates go and where releases are cut from. Its
|
|
138
|
-
> documentation is at
|
|
139
|
-
> **[docs.sillo.build/v0.x](https://docs.sillo.build/v0.x/guides/introduction/)**.
|
|
140
|
-
>
|
|
141
|
-
> Reading about the version you have installed? You want
|
|
142
|
-
> [`v0.x`](https://github.com/sillohq/core/tree/v0.x). Building against 1.0
|
|
143
|
-
> before it ships? Install from this branch:
|
|
144
|
-
>
|
|
145
|
-
> ```bash
|
|
146
|
-
> pip install "git+https://github.com/sillohq/core.git@main"
|
|
147
|
-
> ```
|
|
148
|
-
>
|
|
149
|
-
> The 1.0 documentation is at
|
|
150
|
-
> [docs.sillo.build/v1.0](https://docs.sillo.build/v1.0/guides/introduction/),
|
|
151
|
-
> and every page in it says the same thing at the top.
|
|
126
|
+
<sub>`main` tracks Sillo 1.0, unreleased — `pip install sillo-framework` still gives you 0.x, from [`v0.x`](https://github.com/sillohq/core/tree/v0.x) ([docs](https://docs.sillo.build/v0.x/guides/introduction/)). Everything below is 1.0: install it with `pip install "git+https://github.com/sillohq/core.git@main"`, docs at [docs.sillo.build/v1.0](https://docs.sillo.build/v1.0/guides/introduction/).</sub>
|
|
152
127
|
|
|
153
128
|
Sillo is the buildsmith framework for APIs, real-time systems, and production backends: fast, async, and built with everything you need to ship, with the ORM, authentication, queues, scheduler, and WebSockets already in place. The language does not change. You write the same Python, with the same type hints and the same `async`/`await`. What changes is how much is waiting for you when you start: routing, request validation, dependency injection, middleware, sessions, authentication, records, background work, WebSockets, OpenAPI, and testing are first-party modules sharing one configuration model.
|
|
154
129
|
|
|
155
130
|
Each of those is a solved problem with good packages behind it. The work that remains is the fitting, and that is what Sillo does once so you do not do it per project. One `auth=` declaration gates a route and writes its `securityScheme` into the OpenAPI spec. The queue and the scheduler start with the application lifecycle. Range requests, ETags, and content negotiation are middleware rather than something each project rewrites.
|
|
156
131
|
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
132
|
+
The badges above are the only numbers this README states about itself — they
|
|
133
|
+
read live from the workflows that produce them, so they can't drift out of
|
|
134
|
+
date the way a hand-typed table does. `py.typed` ships in the package, so
|
|
135
|
+
your own checker sees Sillo's actual annotations rather than `Any`; five
|
|
136
|
+
dependencies land at install time, and every feature group past that —
|
|
137
|
+
records, JWT, Redis-backed cache and events, mail, encryption, S3, extra
|
|
138
|
+
hashing schemes, Granian — is opt-in, so a service that never sends mail
|
|
139
|
+
never carries a templating engine for it.
|
|
140
|
+
|
|
141
|
+
- [Requirements](#requirements)
|
|
142
|
+
- [Installation](#installation)
|
|
143
|
+
- [Hello World](#hello-world)
|
|
144
|
+
- [Request Validation](#request-validation)
|
|
145
|
+
- [Dependency Injection](#dependency-injection)
|
|
146
|
+
- [Routing](#routing)
|
|
147
|
+
- [Authentication](#authentication)
|
|
148
|
+
- [Record — the ORM Layer](#record--the-orm-layer)
|
|
149
|
+
- [Background Work: Tasks, Queues, and a Scheduler](#background-work-tasks-queues-and-a-scheduler)
|
|
150
|
+
- [WebSockets](#websockets)
|
|
151
|
+
- [OpenAPI, Without a Second Source of Truth](#openapi-without-a-second-source-of-truth)
|
|
152
|
+
- [Storage, Cache, and Events](#storage-cache-and-events)
|
|
153
|
+
- [What Sillo Provides](#what-sillo-provides)
|
|
154
|
+
- [Scope And Boundaries](#scope-and-boundaries)
|
|
155
|
+
- [Documentation](#documentation)
|
|
156
|
+
- [Testing](#testing)
|
|
157
|
+
- [Release Principles](#release-principles)
|
|
173
158
|
|
|
174
159
|
## Requirements
|
|
175
160
|
|
|
@@ -378,6 +363,219 @@ app.mount_router(api)
|
|
|
378
363
|
Path parameters are converted by the type in the pattern, so `user_id` arrives
|
|
379
364
|
as an `int` and a request for `/api/users/abc` never reaches the handler.
|
|
380
365
|
|
|
366
|
+
## Authentication
|
|
367
|
+
|
|
368
|
+
One `AuthenticationMiddleware` accepts any number of backends — session,
|
|
369
|
+
JWT, API key, or your own — and `useAuth` gates a route by naming which of
|
|
370
|
+
them may answer it. The gate and the OpenAPI `securityScheme` it writes come
|
|
371
|
+
from the same declaration, so the published contract can't say more or less
|
|
372
|
+
than what the middleware actually enforces:
|
|
373
|
+
|
|
374
|
+
```python
|
|
375
|
+
from sillo import HttpContext, SilloApp, json
|
|
376
|
+
from sillo.auth import AuthenticationMiddleware, JWTAuthBackend, useAuth
|
|
377
|
+
from sillo.users import SimpleUser
|
|
378
|
+
|
|
379
|
+
app = SilloApp()
|
|
380
|
+
app.use(AuthenticationMiddleware(SimpleUser, JWTAuthBackend(secret_key="change-me")))
|
|
381
|
+
|
|
382
|
+
|
|
383
|
+
@app.get("/me", auth=useAuth(schemes=["jwt"]))
|
|
384
|
+
async def me(ctx: HttpContext):
|
|
385
|
+
return json({"id": ctx.user.identity})
|
|
386
|
+
```
|
|
387
|
+
|
|
388
|
+
Stack backends to accept more than one credential type on the same route
|
|
389
|
+
(`useAuth(schemes=["jwt", "apikey"])`), or write a backend of your own —
|
|
390
|
+
`AuthenticationBackend.authenticate(ctx)` returning an `AuthResult` is the
|
|
391
|
+
entire contract. Users, groups, and permissions sit on top as ordinary
|
|
392
|
+
mixins (`UserProtocol`, `HasScopes`-style permission checks), not a
|
|
393
|
+
parallel object model bolted onto Sillo's own.
|
|
394
|
+
|
|
395
|
+
## Record — the ORM Layer
|
|
396
|
+
|
|
397
|
+
Records are Tortoise ORM models with the parts a Django-adjacent codebase
|
|
398
|
+
expects layered back in: attribute casting, transactions with savepoints,
|
|
399
|
+
query scopes, and upsert:
|
|
400
|
+
|
|
401
|
+
```python
|
|
402
|
+
from tortoise import fields
|
|
403
|
+
|
|
404
|
+
from sillo.record import Model
|
|
405
|
+
|
|
406
|
+
|
|
407
|
+
class User(Model):
|
|
408
|
+
id = fields.IntField(pk=True)
|
|
409
|
+
email = fields.CharField(max_length=255, unique=True)
|
|
410
|
+
plan = fields.CharField(max_length=50, default="free")
|
|
411
|
+
is_active = fields.BooleanField(default=True)
|
|
412
|
+
metadata = fields.TextField(null=True)
|
|
413
|
+
|
|
414
|
+
_casts = {"metadata": "json"} # dict in Python, JSON column in the database
|
|
415
|
+
|
|
416
|
+
@classmethod
|
|
417
|
+
def scope_vip(cls, queryset):
|
|
418
|
+
return queryset.filter(plan="vip")
|
|
419
|
+
|
|
420
|
+
@classmethod
|
|
421
|
+
def scope_active(cls, queryset):
|
|
422
|
+
return queryset.filter(is_active=True)
|
|
423
|
+
|
|
424
|
+
|
|
425
|
+
# from a handler, a script, a job -- scope_vip + scope_active, chained
|
|
426
|
+
active_vip = await User.all().vip().active().order_by("email")
|
|
427
|
+
```
|
|
428
|
+
|
|
429
|
+
A transaction is a context manager with real savepoints, not a special case
|
|
430
|
+
bolted onto the session:
|
|
431
|
+
|
|
432
|
+
```python
|
|
433
|
+
from sillo.record.transactions import transaction
|
|
434
|
+
|
|
435
|
+
# from inside a handler, a job, or a script
|
|
436
|
+
async with transaction() as tx:
|
|
437
|
+
await ledger.debit(from_account, amount)
|
|
438
|
+
async with tx.savepoint():
|
|
439
|
+
await audit_log.write(event) # rolled back alone if this fails
|
|
440
|
+
await ledger.credit(to_account, amount)
|
|
441
|
+
```
|
|
442
|
+
|
|
443
|
+
Global scopes (multi-tenancy filters, soft-delete) attach once and apply to
|
|
444
|
+
every query on the model, with an explicit escape hatch for the query that
|
|
445
|
+
legitimately needs to see past them:
|
|
446
|
+
|
|
447
|
+
```python
|
|
448
|
+
User.add_global_scope(lambda qs: qs.filter(tenant_id=current_tenant()))
|
|
449
|
+
|
|
450
|
+
# from a handler, a job, or a script
|
|
451
|
+
await User.all() # tenant-filtered
|
|
452
|
+
await User.without_global_scopes() # everyone, on purpose
|
|
453
|
+
```
|
|
454
|
+
|
|
455
|
+
## Background Work: Tasks, Queues, and a Scheduler
|
|
456
|
+
|
|
457
|
+
A job is a class with a `handle()` method; dispatching it is a classmethod
|
|
458
|
+
call from anywhere in the request path, a script, or another job:
|
|
459
|
+
|
|
460
|
+
```python
|
|
461
|
+
from sillo.work.queue.job import Job
|
|
462
|
+
|
|
463
|
+
|
|
464
|
+
class SendWelcomeEmail(Job):
|
|
465
|
+
queue = "emails"
|
|
466
|
+
tries = 3
|
|
467
|
+
timeout = 30
|
|
468
|
+
|
|
469
|
+
def __init__(self, user_id: str):
|
|
470
|
+
self.user_id = user_id
|
|
471
|
+
|
|
472
|
+
async def handle(self):
|
|
473
|
+
user = await User.get(id=self.user_id)
|
|
474
|
+
await mailer.send(user.email, "welcome")
|
|
475
|
+
|
|
476
|
+
|
|
477
|
+
# from a handler, a job, or a script
|
|
478
|
+
await SendWelcomeEmail.dispatch(new_user.id)
|
|
479
|
+
await SendWelcomeEmail.dispatch_after(300, new_user.id) # five minutes out
|
|
480
|
+
```
|
|
481
|
+
|
|
482
|
+
The scheduler runs alongside the queue, on the same application lifecycle —
|
|
483
|
+
no separate cron process to keep in sync with the code it calls:
|
|
484
|
+
|
|
485
|
+
```python
|
|
486
|
+
from sillo.work.scheduler.manager import SchedulerManager
|
|
487
|
+
from sillo.work.scheduler.triggers import CronTrigger
|
|
488
|
+
|
|
489
|
+
scheduler = SchedulerManager()
|
|
490
|
+
scheduler.schedule(cleanup_expired_sessions, CronTrigger("0 3 * * *"))
|
|
491
|
+
scheduler.every(3600)(refresh_materialised_views)
|
|
492
|
+
```
|
|
493
|
+
|
|
494
|
+
Retries, timeouts, and rate limits are per-job middleware, not a global
|
|
495
|
+
setting every job inherits whether it needs it or not.
|
|
496
|
+
|
|
497
|
+
## WebSockets
|
|
498
|
+
|
|
499
|
+
A socket handler is declared the same way an HTTP one is — a coroutine
|
|
500
|
+
taking a context, with the same dependency injection and the same path
|
|
501
|
+
parameter conversion:
|
|
502
|
+
|
|
503
|
+
```python
|
|
504
|
+
from sillo import SilloApp
|
|
505
|
+
from sillo.websockets import WebSocketContext, WebSocketDisconnect
|
|
506
|
+
|
|
507
|
+
app = SilloApp()
|
|
508
|
+
|
|
509
|
+
|
|
510
|
+
@app.ws_route("/ws/rooms/{room_id:int}")
|
|
511
|
+
async def chat(ws: WebSocketContext, room_id: int):
|
|
512
|
+
await ws.accept()
|
|
513
|
+
try:
|
|
514
|
+
while True:
|
|
515
|
+
message = await ws.receive_text()
|
|
516
|
+
await broadcast(room_id, message)
|
|
517
|
+
except WebSocketDisconnect:
|
|
518
|
+
await leave(room_id)
|
|
519
|
+
```
|
|
520
|
+
|
|
521
|
+
An HTTP route and a WebSocket route can share a path — a GraphQL endpoint
|
|
522
|
+
serving queries over POST and subscriptions over a socket, say — without one
|
|
523
|
+
shadowing the other or a mismatched scope reaching either handler.
|
|
524
|
+
|
|
525
|
+
## OpenAPI, Without a Second Source of Truth
|
|
526
|
+
|
|
527
|
+
The schema is generated from the same `request_model`, marker constraints,
|
|
528
|
+
and `useAuth` declarations that already enforce the request at runtime —
|
|
529
|
+
there is nothing to keep in sync by hand, and nothing the spec claims that
|
|
530
|
+
the framework does not also check:
|
|
531
|
+
|
|
532
|
+
```python
|
|
533
|
+
from sillo.openapi import Scalar, Swagger
|
|
534
|
+
|
|
535
|
+
app = SilloApp(title="My API", docs=[Swagger(path="/docs"), Scalar(path="/reference")])
|
|
536
|
+
```
|
|
537
|
+
|
|
538
|
+
Both interactive UIs read the one generated document; adding a second
|
|
539
|
+
renderer is a list entry, not a second integration.
|
|
540
|
+
|
|
541
|
+
## Storage, Cache, and Events
|
|
542
|
+
|
|
543
|
+
Storage buckets abstract local disk and S3-compatible object storage behind
|
|
544
|
+
one API, with signed URLs and per-bucket upload policies (content-type
|
|
545
|
+
allowlists, size limits, ownership checks) enforced before a byte is
|
|
546
|
+
written:
|
|
547
|
+
|
|
548
|
+
```python
|
|
549
|
+
from sillo.storage import BucketConfig, StorageConfig, setup_storage
|
|
550
|
+
from sillo.storage.policies import Owned
|
|
551
|
+
|
|
552
|
+
storage = setup_storage(app, StorageConfig(
|
|
553
|
+
default="attachments",
|
|
554
|
+
buckets={
|
|
555
|
+
"attachments": BucketConfig(driver="local", root="storage/attachments"),
|
|
556
|
+
"avatars": BucketConfig(driver="local", root="storage/avatars",
|
|
557
|
+
policy=Owned(), accepts=("image/png", "image/jpeg")),
|
|
558
|
+
},
|
|
559
|
+
))
|
|
560
|
+
```
|
|
561
|
+
|
|
562
|
+
Caching is one decorator, backend-agnostic between an in-memory store and
|
|
563
|
+
Redis:
|
|
564
|
+
|
|
565
|
+
```python
|
|
566
|
+
from sillo.cache import cache
|
|
567
|
+
|
|
568
|
+
|
|
569
|
+
@cache(ttl=120, tags=["catalog"])
|
|
570
|
+
async def get_product(product_id: int):
|
|
571
|
+
return await Product.get(id=product_id)
|
|
572
|
+
```
|
|
573
|
+
|
|
574
|
+
The event system is a plain emitter (`on`, `emit`) with an optional Redis
|
|
575
|
+
transport for distributing events across processes — the same call site
|
|
576
|
+
either way, so a service can start on the in-memory transport and move to
|
|
577
|
+
Redis later without touching the code that emits or listens.
|
|
578
|
+
|
|
381
579
|
## What Sillo Provides
|
|
382
580
|
|
|
383
581
|
- Async ASGI application core, with lifespan-managed startup and shutdown
|