sillo-framework 0.3.2.dev1__tar.gz → 1.0.0a1__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.0a1}/CHANGELOG.md +92 -0
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a1}/PKG-INFO +1 -1
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a1}/pyproject.toml +23 -2
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a1}/sillo/__init__.py +1 -1
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a1}/sillo/application.py +236 -5
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a1}/sillo/core/converters.py +117 -0
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a1}/sillo/core/dependencies/base.py +30 -0
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a1}/sillo/core/error/handler.py +42 -32
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a1}/sillo/core/http/context.py +11 -2
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a1}/sillo/core/routing/__init__.py +5 -0
- sillo_framework-1.0.0a1/sillo/core/routing/_utils.py +193 -0
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a1}/sillo/core/routing/grouping.py +12 -1
- sillo_framework-1.0.0a1/sillo/core/routing/introspect.py +131 -0
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a1}/sillo/core/routing/router.py +262 -8
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a1}/sillo/core/routing/websocket.py +11 -1
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a1}/sillo/exception_handler.py +8 -1
- sillo_framework-1.0.0a1/sillo/handlers/error_report.py +445 -0
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a1}/sillo/handlers/not_found.py +55 -25
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a1}/sillo/storage/drivers/local.py +3 -3
- sillo_framework-1.0.0a1/tests/test_dependencies/test_dependency_overrides.py +238 -0
- sillo_framework-1.0.0a1/tests/test_exception_handlers/test_error_report.py +375 -0
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a1}/tests/test_exception_handlers/test_not_found_handler.py +10 -5
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a1}/tests/test_responses/test_abort_not_found.py +6 -4
- sillo_framework-1.0.0a1/tests/test_routing/test_route_ordering.py +292 -0
- sillo_framework-1.0.0a1/tests/test_routing/test_router_app_options.py +592 -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/uv.lock +0 -1445
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a1}/.gitignore +0 -0
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a1}/LICENSE +0 -0
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a1}/README.md +0 -0
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a1}/SECURITY.md +0 -0
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a1}/sillo/__main__.py +0 -0
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a1}/sillo/auth/__init__.py +0 -0
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a1}/sillo/auth/apikey/__init__.py +0 -0
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a1}/sillo/auth/apikey/backend.py +0 -0
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a1}/sillo/auth/apikey/mixins.py +0 -0
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a1}/sillo/auth/apikey/models.py +0 -0
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a1}/sillo/auth/backend.py +0 -0
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a1}/sillo/auth/exceptions.py +0 -0
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a1}/sillo/auth/jwt_auth/__init__.py +0 -0
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a1}/sillo/auth/jwt_auth/backend.py +0 -0
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a1}/sillo/auth/jwt_auth/mixins.py +0 -0
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a1}/sillo/auth/jwt_auth/models.py +0 -0
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a1}/sillo/auth/jwt_auth/tokens.py +0 -0
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a1}/sillo/auth/middleware.py +0 -0
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a1}/sillo/auth/model.py +0 -0
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a1}/sillo/auth/session_auth/__init__.py +0 -0
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a1}/sillo/auth/session_auth/backend.py +0 -0
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a1}/sillo/auth/session_auth/guard.py +0 -0
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a1}/sillo/auth/session_auth/mixins.py +0 -0
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a1}/sillo/auth/session_auth/models.py +0 -0
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a1}/sillo/auth/use_auth.py +0 -0
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a1}/sillo/cache/__init__.py +0 -0
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a1}/sillo/cache/backends.py +0 -0
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a1}/sillo/cache/base.py +0 -0
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a1}/sillo/cache/config.py +0 -0
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a1}/sillo/cache/decorator.py +0 -0
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a1}/sillo/config/__init__.py +0 -0
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a1}/sillo/config/core.py +0 -0
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a1}/sillo/console/__init__.py +0 -0
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a1}/sillo/console/arguments.py +0 -0
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a1}/sillo/console/command.py +0 -0
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a1}/sillo/console/console.py +0 -0
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a1}/sillo/console/exceptions.py +0 -0
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a1}/sillo/console/output.py +0 -0
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a1}/sillo/console/prompt.py +0 -0
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a1}/sillo/console/style.py +0 -0
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a1}/sillo/console/terminal.py +0 -0
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a1}/sillo/core/__init__.py +0 -0
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a1}/sillo/core/dependencies/__init__.py +0 -0
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a1}/sillo/core/encoding.py +0 -0
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a1}/sillo/core/error/__init__.py +0 -0
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a1}/sillo/core/helpers/__init__.py +0 -0
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a1}/sillo/core/helpers/async_helpers.py +0 -0
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a1}/sillo/core/helpers/deprecation.py +0 -0
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a1}/sillo/core/http/__init__.py +0 -0
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a1}/sillo/core/http/cookies.py +0 -0
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a1}/sillo/core/http/response.py +0 -0
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a1}/sillo/core/routing/base.py +0 -0
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a1}/sillo/encoding.py +0 -0
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a1}/sillo/env/__init__.py +0 -0
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a1}/sillo/env/_loader.py +0 -0
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a1}/sillo/events/__init__.py +0 -0
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a1}/sillo/events/core.py +0 -0
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a1}/sillo/events/emitter.py +0 -0
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a1}/sillo/events/enums.py +0 -0
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a1}/sillo/events/exceptions.py +0 -0
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a1}/sillo/events/mixins.py +0 -0
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a1}/sillo/events/transports/__init__.py +0 -0
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a1}/sillo/events/transports/base.py +0 -0
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a1}/sillo/events/transports/memory.py +0 -0
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a1}/sillo/events/transports/persistent.py +0 -0
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a1}/sillo/events/transports/record.py +0 -0
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a1}/sillo/events/transports/redis.py +0 -0
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a1}/sillo/events/types.py +0 -0
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a1}/sillo/exceptions.py +0 -0
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a1}/sillo/formparser.py +0 -0
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a1}/sillo/handlers/__init__.py +0 -0
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a1}/sillo/hashing/__init__.py +0 -0
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a1}/sillo/hashing/config.py +0 -0
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a1}/sillo/hashing/core.py +0 -0
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a1}/sillo/hashing/exceptions.py +0 -0
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a1}/sillo/hashing/utils.py +0 -0
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a1}/sillo/helpers/__init__.py +0 -0
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a1}/sillo/helpers/concurrency.py +0 -0
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a1}/sillo/helpers/crypto.py +0 -0
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a1}/sillo/helpers/files.py +0 -0
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a1}/sillo/helpers/hashing.py +0 -0
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a1}/sillo/helpers/html.py +0 -0
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a1}/sillo/helpers/jwt.py +0 -0
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a1}/sillo/helpers/lazy.py +0 -0
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a1}/sillo/helpers/network.py +0 -0
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a1}/sillo/helpers/registry.py +0 -0
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a1}/sillo/helpers/retry.py +0 -0
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a1}/sillo/helpers/signing.py +0 -0
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a1}/sillo/helpers/strings.py +0 -0
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a1}/sillo/helpers/text.py +0 -0
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a1}/sillo/http/__init__.py +0 -0
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a1}/sillo/http/accepts.py +0 -0
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a1}/sillo/http/client/__init__.py +0 -0
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a1}/sillo/http/client/caching.py +0 -0
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a1}/sillo/http/client/client.py +0 -0
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a1}/sillo/http/client/config.py +0 -0
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a1}/sillo/http/client/errors.py +0 -0
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a1}/sillo/http/client/middleware.py +0 -0
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a1}/sillo/http/client/models.py +0 -0
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a1}/sillo/http/client/retry.py +0 -0
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a1}/sillo/http/client/transport.py +0 -0
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a1}/sillo/http/client/utils.py +0 -0
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a1}/sillo/http/etag.py +0 -0
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a1}/sillo/http/lifecycle/__init__.py +0 -0
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a1}/sillo/http/lifecycle/context.py +0 -0
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a1}/sillo/http/lifecycle/helpers.py +0 -0
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a1}/sillo/http/lifecycle/middleware.py +0 -0
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a1}/sillo/http/sse.py +0 -0
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a1}/sillo/http/status.py +0 -0
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a1}/sillo/logging.py +0 -0
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a1}/sillo/mail/__init__.py +0 -0
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a1}/sillo/mail/client.py +0 -0
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a1}/sillo/mail/config.py +0 -0
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a1}/sillo/mail/context.py +0 -0
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a1}/sillo/mail/models.py +0 -0
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a1}/sillo/middleware/__init__.py +0 -0
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a1}/sillo/middleware/base.py +0 -0
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a1}/sillo/middleware/bridge.py +0 -0
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a1}/sillo/middleware/define.py +0 -0
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a1}/sillo/middleware/gzip.py +0 -0
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a1}/sillo/middleware/response_headers.py +0 -0
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a1}/sillo/middleware/security.py +0 -0
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a1}/sillo/middleware/utils.py +0 -0
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a1}/sillo/normalize/__init__.py +0 -0
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a1}/sillo/normalize/helpers.py +0 -0
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a1}/sillo/normalize/middleware.py +0 -0
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a1}/sillo/objects/__init__.py +0 -0
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a1}/sillo/objects/common.py +0 -0
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a1}/sillo/objects/datastructures.py +0 -0
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a1}/sillo/objects/http.py +0 -0
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a1}/sillo/objects/routing.py +0 -0
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a1}/sillo/openapi/__init__.py +0 -0
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a1}/sillo/openapi/_builder.py +0 -0
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a1}/sillo/openapi/config.py +0 -0
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a1}/sillo/openapi/models.py +0 -0
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a1}/sillo/openapi/ui.py +0 -0
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a1}/sillo/openapi/utils.py +0 -0
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a1}/sillo/pagination.py +0 -0
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a1}/sillo/parameters.py +0 -0
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a1}/sillo/permissions/__init__.py +0 -0
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a1}/sillo/permissions/mixins.py +0 -0
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a1}/sillo/permissions/models.py +0 -0
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a1}/sillo/py.typed +0 -0
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a1}/sillo/record/__init__.py +0 -0
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a1}/sillo/record/_bridge.py +0 -0
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a1}/sillo/record/casting.py +0 -0
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a1}/sillo/record/collection.py +0 -0
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a1}/sillo/record/commands/__init__.py +0 -0
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a1}/sillo/record/commands/functions.py +0 -0
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a1}/sillo/record/config.py +0 -0
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a1}/sillo/record/console.py +0 -0
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a1}/sillo/record/events.py +0 -0
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a1}/sillo/record/exceptions.py +0 -0
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a1}/sillo/record/factories.py +0 -0
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a1}/sillo/record/fields.py +0 -0
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a1}/sillo/record/helpers.py +0 -0
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a1}/sillo/record/logging.py +0 -0
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a1}/sillo/record/manager.py +0 -0
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a1}/sillo/record/mixins/__init__.py +0 -0
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a1}/sillo/record/models.py +0 -0
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a1}/sillo/record/pagination.py +0 -0
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a1}/sillo/record/pydantic.py +0 -0
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a1}/sillo/record/queries.py +0 -0
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a1}/sillo/record/scopes.py +0 -0
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a1}/sillo/record/transactions.py +0 -0
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a1}/sillo/responses.py +0 -0
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a1}/sillo/route_builder.py +0 -0
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a1}/sillo/security/__init__.py +0 -0
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a1}/sillo/security/cors/__init__.py +0 -0
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a1}/sillo/security/cors/_middleware.py +0 -0
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a1}/sillo/security/cors/config.py +0 -0
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a1}/sillo/security/csrf/__init__.py +0 -0
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a1}/sillo/security/csrf/_middleware.py +0 -0
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a1}/sillo/security/csrf/config.py +0 -0
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a1}/sillo/security/ratelimit/__init__.py +0 -0
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a1}/sillo/security/ratelimit/_middleware.py +0 -0
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a1}/sillo/security/ratelimit/backends/__init__.py +0 -0
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a1}/sillo/security/ratelimit/backends/base.py +0 -0
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a1}/sillo/security/ratelimit/backends/memory.py +0 -0
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a1}/sillo/security/ratelimit/backends/record.py +0 -0
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a1}/sillo/security/ratelimit/backends/redis.py +0 -0
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a1}/sillo/security/ratelimit/config.py +0 -0
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a1}/sillo/security/ratelimit/models.py +0 -0
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a1}/sillo/security/ratelimit/strategies/__init__.py +0 -0
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a1}/sillo/security/ratelimit/strategies/base.py +0 -0
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a1}/sillo/security/ratelimit/strategies/fixed_window.py +0 -0
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a1}/sillo/security/ratelimit/strategies/sliding_window.py +0 -0
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a1}/sillo/security/ratelimit/strategies/token_bucket.py +0 -0
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a1}/sillo/security/shield.py +0 -0
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a1}/sillo/session/__init__.py +0 -0
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a1}/sillo/session/base.py +0 -0
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a1}/sillo/session/config.py +0 -0
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a1}/sillo/session/file.py +0 -0
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a1}/sillo/session/middleware.py +0 -0
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a1}/sillo/session/session_objects.py +0 -0
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a1}/sillo/session/signed_cookies.py +0 -0
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a1}/sillo/static.py +0 -0
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a1}/sillo/storage/__init__.py +0 -0
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a1}/sillo/storage/base.py +0 -0
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a1}/sillo/storage/bucket.py +0 -0
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a1}/sillo/storage/config.py +0 -0
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a1}/sillo/storage/context.py +0 -0
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a1}/sillo/storage/drivers/__init__.py +0 -0
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a1}/sillo/storage/drivers/memory.py +0 -0
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a1}/sillo/storage/errors.py +0 -0
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a1}/sillo/storage/paths.py +0 -0
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a1}/sillo/storage/policies.py +0 -0
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a1}/sillo/storage/routes.py +0 -0
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a1}/sillo/storage/signing.py +0 -0
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a1}/sillo/storage/sniff.py +0 -0
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a1}/sillo/storage/storage.py +0 -0
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a1}/sillo/storage/uploads.py +0 -0
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a1}/sillo/testclient/__init__.py +0 -0
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a1}/sillo/testclient/_internal/__init__.py +0 -0
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a1}/sillo/testclient/_internal/inputs.py +0 -0
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a1}/sillo/testclient/_internal/transport.py +0 -0
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a1}/sillo/testclient/_internal/types.py +0 -0
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a1}/sillo/testclient/_internal/utils.py +0 -0
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a1}/sillo/testclient/_internal/websockets.py +0 -0
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a1}/sillo/testclient/async_client.py +0 -0
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a1}/sillo/testclient/base.py +0 -0
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a1}/sillo/testclient/exceptions.py +0 -0
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a1}/sillo/testclient/helpers.py +0 -0
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a1}/sillo/types.py +0 -0
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a1}/sillo/users/__init__.py +0 -0
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a1}/sillo/users/base.py +0 -0
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a1}/sillo/users/commands.py +0 -0
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a1}/sillo/users/console.py +0 -0
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a1}/sillo/users/managers.py +0 -0
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a1}/sillo/users/protocol.py +0 -0
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a1}/sillo/users/simple.py +0 -0
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a1}/sillo/validation/__init__.py +0 -0
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a1}/sillo/validation/compiler.py +0 -0
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a1}/sillo/validation/errors.py +0 -0
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a1}/sillo/validation/fields.py +0 -0
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a1}/sillo/websockets/__init__.py +0 -0
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a1}/sillo/websockets/base.py +0 -0
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a1}/sillo/websockets/errors.py +0 -0
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a1}/sillo/websockets/status.py +0 -0
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a1}/sillo/work/__init__.py +0 -0
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a1}/sillo/work/backends.py +0 -0
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a1}/sillo/work/background/__init__.py +0 -0
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a1}/sillo/work/background/supervisor.py +0 -0
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a1}/sillo/work/background/tasks.py +0 -0
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a1}/sillo/work/commands.py +0 -0
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a1}/sillo/work/console.py +0 -0
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a1}/sillo/work/dependency.py +0 -0
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a1}/sillo/work/middleware.py +0 -0
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a1}/sillo/work/queue/__init__.py +0 -0
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a1}/sillo/work/queue/batches.py +0 -0
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a1}/sillo/work/queue/connection.py +0 -0
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a1}/sillo/work/queue/events.py +0 -0
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a1}/sillo/work/queue/failed.py +0 -0
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a1}/sillo/work/queue/job.py +0 -0
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a1}/sillo/work/queue/listener.py +0 -0
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a1}/sillo/work/queue/middleware.py +0 -0
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a1}/sillo/work/queue/payloads.py +0 -0
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a1}/sillo/work/queue/workers.py +0 -0
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a1}/sillo/work/scheduler/__init__.py +0 -0
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a1}/sillo/work/scheduler/cron.py +0 -0
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a1}/sillo/work/scheduler/jobs.py +0 -0
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a1}/sillo/work/scheduler/manager.py +0 -0
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a1}/sillo/work/scheduler/middleware.py +0 -0
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a1}/sillo/work/scheduler/triggers.py +0 -0
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a1}/sillo/work/task.py +0 -0
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a1}/sillo/work/types.py +0 -0
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a1}/tests/__init__.py +0 -0
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a1}/tests/conftest.py +0 -0
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a1}/tests/static/example.txt +0 -0
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a1}/tests/static/page.html +0 -0
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a1}/tests/static/script.js +0 -0
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a1}/tests/static/style.css +0 -0
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a1}/tests/static/subfolder/subfile.txt +0 -0
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a1}/tests/templates/base.html +0 -0
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a1}/tests/templates/product.html +0 -0
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a1}/tests/templates/welcome.html +0 -0
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a1}/tests/test_applications/__init__.py +0 -0
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a1}/tests/test_applications/test_app_class_name.py +0 -0
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a1}/tests/test_applications/test_application.py +0 -0
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a1}/tests/test_applications/test_middleware_chain_cache.py +0 -0
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a1}/tests/test_applications/test_route_kwargs.py +0 -0
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a1}/tests/test_auth/__init__.py +0 -0
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a1}/tests/test_auth/test_apikey_backend.py +0 -0
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a1}/tests/test_auth/test_apikey_models.py +0 -0
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a1}/tests/test_auth/test_auth_middleware.py +0 -0
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a1}/tests/test_auth/test_auth_utilities.py +0 -0
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a1}/tests/test_auth/test_custom_backend.py +0 -0
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a1}/tests/test_auth/test_jwt_backend.py +0 -0
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a1}/tests/test_auth/test_jwt_token_model.py +0 -0
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a1}/tests/test_auth/test_jwt_user_mixin.py +0 -0
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a1}/tests/test_auth/test_security_schemes.py +0 -0
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a1}/tests/test_auth/test_session_backend.py +0 -0
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a1}/tests/test_auth/test_session_guard.py +0 -0
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a1}/tests/test_auth/test_session_model_extend.py +0 -0
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a1}/tests/test_auth/test_token_for_user.py +0 -0
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a1}/tests/test_auth/test_use_auth.py +0 -0
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a1}/tests/test_auth/test_user_models.py +0 -0
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a1}/tests/test_cache/__init__.py +0 -0
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a1}/tests/test_cache/test_base.py +0 -0
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a1}/tests/test_cache/test_decorator.py +0 -0
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a1}/tests/test_cache/test_memory_cache.py +0 -0
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a1}/tests/test_cache/test_redis_backend.py +0 -0
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a1}/tests/test_cache/test_redis_cache_fake.py +0 -0
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a1}/tests/test_config/__init__.py +0 -0
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a1}/tests/test_config/conftest.py +0 -0
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a1}/tests/test_config/test_config_loading.py +0 -0
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a1}/tests/test_config/test_env_loading.py +0 -0
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a1}/tests/test_console/__init__.py +0 -0
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a1}/tests/test_console/test_arguments.py +0 -0
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a1}/tests/test_console/test_builtin_record.py +0 -0
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a1}/tests/test_console/test_builtin_users.py +0 -0
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a1}/tests/test_console/test_builtin_work.py +0 -0
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a1}/tests/test_console/test_cli.py +0 -0
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a1}/tests/test_console/test_command.py +0 -0
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a1}/tests/test_console/test_console.py +0 -0
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a1}/tests/test_console/test_output.py +0 -0
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a1}/tests/test_console/test_prompt.py +0 -0
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a1}/tests/test_console/test_style.py +0 -0
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a1}/tests/test_console/test_terminal.py +0 -0
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a1}/tests/test_cors/__init__.py +0 -0
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a1}/tests/test_cors/test_configuration.py +0 -0
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a1}/tests/test_cors/test_credentials_security.py +0 -0
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a1}/tests/test_cors/test_error_handling.py +0 -0
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a1}/tests/test_cors/test_integration.py +0 -0
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a1}/tests/test_cors/test_preflight_requests.py +0 -0
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a1}/tests/test_cors/test_simple_requests.py +0 -0
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a1}/tests/test_dependencies/__init__.py +0 -0
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a1}/tests/test_dependencies/test_dependency_injection.py +0 -0
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a1}/tests/test_encoding/__init__.py +0 -0
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a1}/tests/test_encoding/test_custom_encoder.py +0 -0
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a1}/tests/test_encoding/test_encoding_shim.py +0 -0
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a1}/tests/test_encoding/test_jsonable_encoder.py +0 -0
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a1}/tests/test_encoding/test_passthrough_fast_path.py +0 -0
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a1}/tests/test_env/__init__.py +0 -0
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a1}/tests/test_env/conftest.py +0 -0
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a1}/tests/test_env/test_load.py +0 -0
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a1}/tests/test_env/test_parse.py +0 -0
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a1}/tests/test_events/__init__.py +0 -0
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a1}/tests/test_events/test_comprehensive_events.py +0 -0
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a1}/tests/test_events/test_core_propagation.py +0 -0
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a1}/tests/test_events/test_emitter_paths.py +0 -0
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a1}/tests/test_events/test_events_backends.py +0 -0
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a1}/tests/test_events/test_persistent_transport_fake.py +0 -0
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a1}/tests/test_events/test_record_transport.py +0 -0
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a1}/tests/test_events/test_redis_transport_fake.py +0 -0
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a1}/tests/test_events/test_transport_registry_and_base.py +0 -0
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a1}/tests/test_exception_handlers/__init__.py +0 -0
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a1}/tests/test_exception_handlers/test_basic_exception_handlers.py +0 -0
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a1}/tests/test_exception_handlers/test_concurrent_error_pages.py +0 -0
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a1}/tests/test_exception_handlers/test_dispatch_internals.py +0 -0
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a1}/tests/test_exception_handlers/test_exception_handler_integration.py +0 -0
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a1}/tests/test_exception_handlers/test_server_error_debug.py +0 -0
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a1}/tests/test_forms/__init__.py +0 -0
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a1}/tests/test_forms/test_form_parser.py +0 -0
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a1}/tests/test_forms/test_uploaded_file_save.py +0 -0
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a1}/tests/test_hashing/__init__.py +0 -0
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a1}/tests/test_hashing/test_core.py +0 -0
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a1}/tests/test_hashing/test_utils.py +0 -0
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a1}/tests/test_helpers/__init__.py +0 -0
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a1}/tests/test_helpers/test_accepts.py +0 -0
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a1}/tests/test_helpers/test_async.py +0 -0
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a1}/tests/test_helpers/test_concurrency.py +0 -0
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a1}/tests/test_helpers/test_deprecation.py +0 -0
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a1}/tests/test_helpers/test_files.py +0 -0
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a1}/tests/test_helpers/test_hashing_crypto.py +0 -0
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a1}/tests/test_helpers/test_html.py +0 -0
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a1}/tests/test_helpers/test_jwt.py +0 -0
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a1}/tests/test_helpers/test_network.py +0 -0
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a1}/tests/test_helpers/test_registry.py +0 -0
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a1}/tests/test_helpers/test_retry.py +0 -0
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a1}/tests/test_helpers/test_signing.py +0 -0
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a1}/tests/test_helpers/test_strings.py +0 -0
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a1}/tests/test_helpers/test_text.py +0 -0
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a1}/tests/test_http/__init__.py +0 -0
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a1}/tests/test_http/test_accepts.py +0 -0
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a1}/tests/test_http/test_accepts_middleware.py +0 -0
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a1}/tests/test_http/test_accepts_negotiation.py +0 -0
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a1}/tests/test_http/test_cookie_parsing.py +0 -0
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a1}/tests/test_http/test_etag_full.py +0 -0
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a1}/tests/test_http/test_http_client.py +0 -0
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a1}/tests/test_http/test_http_etag.py +0 -0
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a1}/tests/test_http/test_http_module_exports.py +0 -0
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a1}/tests/test_http/test_sse.py +0 -0
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a1}/tests/test_lifecycle/__init__.py +0 -0
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a1}/tests/test_lifecycle/test_context.py +0 -0
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a1}/tests/test_lifecycle/test_request_id.py +0 -0
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a1}/tests/test_mail/__init__.py +0 -0
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a1}/tests/test_mail/test_context.py +0 -0
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a1}/tests/test_mail/test_mail_client.py +0 -0
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a1}/tests/test_mail/test_mail_service.py +0 -0
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a1}/tests/test_mail/test_mail_transport.py +0 -0
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a1}/tests/test_middleware/__init__.py +0 -0
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a1}/tests/test_middleware/test_app_level_middleware.py +0 -0
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a1}/tests/test_middleware/test_asgi_middleware.py +0 -0
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a1}/tests/test_middleware/test_bridge.py +0 -0
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a1}/tests/test_middleware/test_gzip.py +0 -0
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a1}/tests/test_middleware/test_raw_asgi_layers.py +0 -0
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a1}/tests/test_middleware/test_route_level_middleware.py +0 -0
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a1}/tests/test_middleware/test_router_level_middleware.py +0 -0
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a1}/tests/test_middleware/test_security_middleware.py +0 -0
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a1}/tests/test_middleware/test_use_for_route.py +0 -0
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a1}/tests/test_normalize/__init__.py +0 -0
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a1}/tests/test_normalize/test_helpers.py +0 -0
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a1}/tests/test_normalize/test_middleware.py +0 -0
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a1}/tests/test_objects/__init__.py +0 -0
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a1}/tests/test_objects/test_headers.py +0 -0
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a1}/tests/test_objects/test_multidict.py +0 -0
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a1}/tests/test_objects/test_url.py +0 -0
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a1}/tests/test_objects/test_url_building.py +0 -0
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a1}/tests/test_openapi/__init__.py +0 -0
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a1}/tests/test_openapi/test_docs_ui.py +0 -0
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a1}/tests/test_openapi/test_openapi_config.py +0 -0
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a1}/tests/test_openapi/test_openapi_spec.py +0 -0
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a1}/tests/test_openapi/test_openapi_utils.py +0 -0
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a1}/tests/test_optional_imports.py +0 -0
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a1}/tests/test_pagination/__init__.py +0 -0
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a1}/tests/test_pagination/test_data_handlers.py +0 -0
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a1}/tests/test_pagination/test_edge_cases.py +0 -0
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a1}/tests/test_pagination/test_error_handling.py +0 -0
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a1}/tests/test_pagination/test_integration.py +0 -0
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a1}/tests/test_pagination/test_pagination_strategies.py +0 -0
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a1}/tests/test_pagination/test_paginators.py +0 -0
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a1}/tests/test_pagination/test_response_classes.py +0 -0
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a1}/tests/test_pagination/test_response_paginate.py +0 -0
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a1}/tests/test_parameters/__init__.py +0 -0
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a1}/tests/test_parameters/test_cookie.py +0 -0
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a1}/tests/test_parameters/test_header.py +0 -0
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a1}/tests/test_parameters/test_nested.py +0 -0
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a1}/tests/test_parameters/test_openapi.py +0 -0
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a1}/tests/test_parameters/test_query.py +0 -0
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a1}/tests/test_permissions/__init__.py +0 -0
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a1}/tests/test_permissions/test_permissions.py +0 -0
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a1}/tests/test_record/__init__.py +0 -0
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a1}/tests/test_record/test_backend_config.py +0 -0
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a1}/tests/test_record/test_collection.py +0 -0
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a1}/tests/test_record/test_events.py +0 -0
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a1}/tests/test_record/test_factories.py +0 -0
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a1}/tests/test_record/test_mass_assignment.py +0 -0
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a1}/tests/test_record/test_mixins.py +0 -0
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a1}/tests/test_record/test_model_features.py +0 -0
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a1}/tests/test_record/test_pagination_and_exceptions.py +0 -0
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a1}/tests/test_record/test_pydantic_bridge.py +0 -0
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a1}/tests/test_record/test_queries.py +0 -0
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a1}/tests/test_record/test_query_logging.py +0 -0
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a1}/tests/test_record/test_record_commands.py +0 -0
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a1}/tests/test_record/test_release_fixes.py +0 -0
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a1}/tests/test_record/test_savepoints.py +0 -0
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a1}/tests/test_record/test_seeding.py +0 -0
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a1}/tests/test_redis/__init__.py +0 -0
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a1}/tests/test_redis/test_redis_cache.py +0 -0
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a1}/tests/test_redis/test_redis_transport.py +0 -0
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a1}/tests/test_requests/__init__.py +0 -0
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a1}/tests/test_requests/test_basic_properties.py +0 -0
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a1}/tests/test_requests/test_body_data.py +0 -0
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a1}/tests/test_requests/test_cookies_auth.py +0 -0
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a1}/tests/test_requests/test_path_params.py +0 -0
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a1}/tests/test_requests/test_query_params.py +0 -0
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a1}/tests/test_requests/test_request_flags.py +0 -0
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a1}/tests/test_requests/test_request_surface.py +0 -0
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a1}/tests/test_responses/__init__.py +0 -0
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a1}/tests/test_responses/test_advanced_responses.py +0 -0
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a1}/tests/test_responses/test_basic_responses.py +0 -0
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a1}/tests/test_responses/test_cookie_attributes.py +0 -0
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a1}/tests/test_responses/test_file_responses.py +0 -0
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a1}/tests/test_responses/test_header_override.py +0 -0
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a1}/tests/test_responses/test_headers_cookies.py +0 -0
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a1}/tests/test_responses/test_json_serialization.py +0 -0
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a1}/tests/test_responses/test_redirect_streaming.py +0 -0
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a1}/tests/test_responses/test_response_properties.py +0 -0
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a1}/tests/test_responses/test_responses_module.py +0 -0
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a1}/tests/test_routing/__init__.py +0 -0
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a1}/tests/test_routing/test_base_route.py +0 -0
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a1}/tests/test_routing/test_basic_routing.py +0 -0
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a1}/tests/test_routing/test_converters.py +0 -0
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a1}/tests/test_routing/test_grouping.py +0 -0
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a1}/tests/test_routing/test_http_methods.py +0 -0
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a1}/tests/test_routing/test_nested_routes.py +0 -0
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a1}/tests/test_routing/test_path_parameters.py +0 -0
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a1}/tests/test_routing/test_route_builder.py +0 -0
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a1}/tests/test_routing/test_router_wrap_asgi.py +0 -0
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a1}/tests/test_security/__init__.py +0 -0
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a1}/tests/test_security/test_backends.py +0 -0
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a1}/tests/test_security/test_csrf.py +0 -0
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a1}/tests/test_security/test_csrf_predicates.py +0 -0
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a1}/tests/test_security/test_csrf_regressions.py +0 -0
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a1}/tests/test_security/test_middleware.py +0 -0
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a1}/tests/test_security/test_ratelimit_redis_backend.py +0 -0
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a1}/tests/test_security/test_record_backend.py +0 -0
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a1}/tests/test_security/test_strategies.py +0 -0
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a1}/tests/test_sessions/__init__.py +0 -0
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a1}/tests/test_sessions/test_base.py +0 -0
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a1}/tests/test_sessions/test_config_and_objects_internals.py +0 -0
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a1}/tests/test_sessions/test_expiry.py +0 -0
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a1}/tests/test_sessions/test_file_sessions.py +0 -0
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a1}/tests/test_sessions/test_integration.py +0 -0
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a1}/tests/test_sessions/test_middleware.py +0 -0
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a1}/tests/test_sessions/test_security.py +0 -0
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a1}/tests/test_sessions/test_settings.py +0 -0
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a1}/tests/test_sessions/test_signed_cookies.py +0 -0
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a1}/tests/test_small_module_gaps.py +0 -0
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a1}/tests/test_static/__init__.py +0 -0
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a1}/tests/test_static/test_static_files.py +0 -0
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a1}/tests/test_static/test_static_files_internals.py +0 -0
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a1}/tests/test_storage/__init__.py +0 -0
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a1}/tests/test_storage/contract.py +0 -0
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a1}/tests/test_storage/test_bucket.py +0 -0
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a1}/tests/test_storage/test_config.py +0 -0
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a1}/tests/test_storage/test_context.py +0 -0
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a1}/tests/test_storage/test_drivers.py +0 -0
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a1}/tests/test_storage/test_integration.py +0 -0
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a1}/tests/test_storage/test_local_driver_internals.py +0 -0
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a1}/tests/test_storage/test_paths_helpers.py +0 -0
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a1}/tests/test_storage/test_policies.py +0 -0
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a1}/tests/test_storage/test_routes.py +0 -0
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a1}/tests/test_storage/test_safety.py +0 -0
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a1}/tests/test_storage/test_uploads.py +0 -0
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a1}/tests/test_supported_python_versions.py +0 -0
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a1}/tests/test_testclient/test_client_lifecycle.py +0 -0
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a1}/tests/test_testclient/test_lifespan_internals.py +0 -0
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a1}/tests/test_testclient/test_transport_internals.py +0 -0
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a1}/tests/test_testclient/test_websocket_session_internals.py +0 -0
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a1}/tests/test_type_comments.py +0 -0
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a1}/tests/test_users/__init__.py +0 -0
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a1}/tests/test_users/test_password.py +0 -0
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a1}/tests/test_users/test_protocol.py +0 -0
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a1}/tests/test_users/test_user_commands.py +0 -0
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a1}/tests/test_users/test_user_model.py +0 -0
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a1}/tests/test_validation/__init__.py +0 -0
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a1}/tests/test_validation/conftest.py +0 -0
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a1}/tests/test_validation/test_body_form.py +0 -0
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a1}/tests/test_validation/test_legacy_compat.py +0 -0
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a1}/tests/test_validation/test_markers_unit.py +0 -0
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a1}/tests/test_validation/test_openapi_generation.py +0 -0
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a1}/tests/test_validation/test_params.py +0 -0
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a1}/tests/test_validation/test_request_model.py +0 -0
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a1}/tests/test_validation/test_response_model.py +0 -0
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a1}/tests/test_websockets/__init__.py +0 -0
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a1}/tests/test_websockets/test_websocket_dependencies.py +0 -0
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a1}/tests/test_websockets/test_websocket_errors.py +0 -0
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a1}/tests/test_websockets/test_websocket_protocol.py +0 -0
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a1}/tests/test_websockets/test_websocket_routing.py +0 -0
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a1}/tests/test_websockets/test_websocket_state_machine.py +0 -0
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a1}/tests/test_work/__init__.py +0 -0
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a1}/tests/test_work/test_backends_full.py +0 -0
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a1}/tests/test_work/test_background.py +0 -0
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a1}/tests/test_work/test_events.py +0 -0
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a1}/tests/test_work/test_job_dispatch.py +0 -0
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a1}/tests/test_work/test_job_queue.py +0 -0
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a1}/tests/test_work/test_job_round_trip.py +0 -0
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a1}/tests/test_work/test_memory_backend.py +0 -0
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a1}/tests/test_work/test_middleware.py +0 -0
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a1}/tests/test_work/test_queue.py +0 -0
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a1}/tests/test_work/test_queue_middleware.py +0 -0
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a1}/tests/test_work/test_queue_worker.py +0 -0
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a1}/tests/test_work/test_redis_connection_internals.py +0 -0
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a1}/tests/test_work/test_redis_queue_reliability.py +0 -0
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a1}/tests/test_work/test_routes.py +0 -0
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a1}/tests/test_work/test_scheduler.py +0 -0
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a1}/tests/test_work/test_scheduler_middleware.py +0 -0
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a1}/tests/test_work/test_task.py +0 -0
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a1}/tests/test_work/test_types.py +0 -0
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a1}/tests/test_work/test_work_commands.py +0 -0
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a1}/tests/test_work/test_work_di.py +0 -0
- {sillo_framework-0.3.2.dev1 → sillo_framework-1.0.0a1}/tests/test_work/work_jobs.py +0 -0
|
@@ -7,6 +7,98 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
|
|
|
7
7
|
|
|
8
8
|
## [Unreleased]
|
|
9
9
|
|
|
10
|
+
## [1.0.0a1] - 2026-09-12
|
|
11
|
+
|
|
12
|
+
The first alpha of 1.0 — **the context rewrite**. This is a breaking release
|
|
13
|
+
with no compatibility shims. Install with
|
|
14
|
+
`pip install --pre sillo-framework==1.0.0a1`.
|
|
15
|
+
|
|
16
|
+
An alpha: the surface below is what 1.0 is expected to look like, but it is not
|
|
17
|
+
frozen yet, and API may still change before `1.0.0`.
|
|
18
|
+
|
|
19
|
+
### Added
|
|
20
|
+
|
|
21
|
+
- **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.
|
|
22
|
+
- **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.
|
|
23
|
+
- **`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.
|
|
24
|
+
- **`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.
|
|
25
|
+
- **`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.
|
|
26
|
+
- **`SilloApp(trailing_slash=...)` / `Router(trailing_slash=...)`.** `"strict"` (default, `/x` ≠ `/x/`), `"redirect"` (308 to the registered form), or `"ignore"` (serve it in place).
|
|
27
|
+
- **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.
|
|
28
|
+
- **`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.
|
|
29
|
+
- **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]+`).
|
|
30
|
+
- **`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.
|
|
31
|
+
- **`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).
|
|
32
|
+
- **`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.
|
|
33
|
+
|
|
34
|
+
### Changed
|
|
35
|
+
|
|
36
|
+
- **A handler takes one leading argument: the context.** `HttpContext` on an
|
|
37
|
+
HTTP route, `WebSocketContext` on a WebSocket route. Path parameters,
|
|
38
|
+
dependencies and validation markers follow it, bound by name as before:
|
|
39
|
+
|
|
40
|
+
```python
|
|
41
|
+
from sillo import SilloApp, HttpContext, json
|
|
42
|
+
|
|
43
|
+
app = SilloApp()
|
|
44
|
+
|
|
45
|
+
@app.get("/users/{id:int}")
|
|
46
|
+
def show(ctx: HttpContext, id: int):
|
|
47
|
+
return json({"id": id})
|
|
48
|
+
```
|
|
49
|
+
|
|
50
|
+
`BaseContext` carries `scope`, `headers`, `cookies`, `path_params`,
|
|
51
|
+
`query_params`, `state`, `user`, `client`, `app` and `url_for`.
|
|
52
|
+
`HttpContext` adds `method`, `await ctx.json`, `await ctx.body`,
|
|
53
|
+
`await ctx.form`, `ctx.files` and `ctx.validated_data`.
|
|
54
|
+
|
|
55
|
+
- **Responses are functions, in `sillo.responses`**, every name re-exported
|
|
56
|
+
from `sillo` — bodies (`json`, `text`, `html`, `xml`, `raw`, `empty`), status
|
|
57
|
+
shorthands (`created`, `accepted`, `no_content`), redirects, files
|
|
58
|
+
(`file`, `download`), streaming (`stream`, `ndjson`, `sse`), pagination
|
|
59
|
+
(`paginate`, `apaginate`, which take `ctx` first) and `abort` / `not_found`,
|
|
60
|
+
which raise rather than return. Each builder returns a `BaseResponse`
|
|
61
|
+
subclass carrying the chainable half (`status`, `cache`, `set_header`,
|
|
62
|
+
`set_cookie`, …), each returning `self`. Import from the module when the file
|
|
63
|
+
also needs the stdlib `json`/`html` or the `file` builtin.
|
|
64
|
+
|
|
65
|
+
- **WebSocket routes bind path parameters.** They were read from
|
|
66
|
+
`scope["path_params"]`, which the router never writes, so the keyword
|
|
67
|
+
arguments a handler declared were always empty. Note that the registration
|
|
68
|
+
name is `ws_route` / `add_ws_route`; there is no `@app.websocket(...)`.
|
|
69
|
+
|
|
70
|
+
- **An unhandled request error logs a structured block, not a raw traceback.** `sillo.handlers.error_report` keeps only the frames in *your* code:
|
|
71
|
+
|
|
72
|
+
```
|
|
73
|
+
💥 oops — KeyError: 'ABC-9'
|
|
74
|
+
request GET /catalog/ABC-9
|
|
75
|
+
at api/catalog.py:14 in show
|
|
76
|
+
→ price = lookup(catalog, sku)
|
|
77
|
+
at pricing/rules.py:2 in lookup
|
|
78
|
+
1 def lookup(catalog, sku):
|
|
79
|
+
› 2 price = catalog["items"][sku]["price"]
|
|
80
|
+
^^^^^^^^^^^^^^^^^^^^^
|
|
81
|
+
3 return price * 1.2
|
|
82
|
+
with catalog={'items': {}}, sku='ABC-9'
|
|
83
|
+
```
|
|
84
|
+
|
|
85
|
+
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.
|
|
86
|
+
- **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.
|
|
87
|
+
- **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.
|
|
88
|
+
- **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.
|
|
89
|
+
- **`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.
|
|
90
|
+
- **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.
|
|
91
|
+
|
|
92
|
+
### Removed
|
|
93
|
+
|
|
94
|
+
- **`Request`, the `Response` manager and the `Responder` builder are gone**,
|
|
95
|
+
and nothing is shimmed. `sillo/core/http/request.py` no longer exists.
|
|
96
|
+
- **The built-in admin panel is no longer part of the framework.** It is its
|
|
97
|
+
own package now — [`warder`](https://sillo.build/packages/warder/).
|
|
98
|
+
- **`Depend(get_request=True)` / `Depend(get_context=True)`** — a dependency
|
|
99
|
+
takes the context as its first positional parameter instead.
|
|
100
|
+
|
|
101
|
+
|
|
10
102
|
## [0.3.2.dev1] - 2026-09-07
|
|
11
103
|
|
|
12
104
|
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.0a1
|
|
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
|
|
@@ -8,9 +8,30 @@ sillo = "sillo.__main__:main"
|
|
|
8
8
|
[tool.hatch.build.targets.wheel]
|
|
9
9
|
packages = ["sillo"]
|
|
10
10
|
|
|
11
|
+
# Without this the sdist is "everything git does not ignore", which on a working
|
|
12
|
+
# checkout means docs/ (with node_modules), benchmarks/, and any .venv sitting
|
|
13
|
+
# in the tree -- well over a gigabyte, and a hard build failure the moment one
|
|
14
|
+
# of those virtualenvs holds an absolute symlink. List what ships instead.
|
|
15
|
+
[tool.hatch.build.targets.sdist]
|
|
16
|
+
include = [
|
|
17
|
+
"/sillo",
|
|
18
|
+
"/tests",
|
|
19
|
+
"/README.md",
|
|
20
|
+
"/CHANGELOG.md",
|
|
21
|
+
"/LICENSE",
|
|
22
|
+
"/SECURITY.md",
|
|
23
|
+
]
|
|
24
|
+
exclude = [
|
|
25
|
+
"**/__pycache__",
|
|
26
|
+
"**/*.py[cod]",
|
|
27
|
+
"**/.pytest_cache",
|
|
28
|
+
"**/*.sqlite3",
|
|
29
|
+
"**/*.db",
|
|
30
|
+
]
|
|
31
|
+
|
|
11
32
|
[project]
|
|
12
33
|
name = "sillo-framework"
|
|
13
|
-
version = "0.
|
|
34
|
+
version = "1.0.0a1"
|
|
14
35
|
description = "Python with the pieces already in place: an async web framework whose ORM, auth, admin, queues, scheduler and WebSockets share one configuration model."
|
|
15
36
|
authors = [
|
|
16
37
|
{name = "Chidebele Dunamis", email = "techwithdunamix@gmail.com"}
|
|
@@ -344,7 +365,7 @@ ignore = [
|
|
|
344
365
|
|
|
345
366
|
[tool.commitizen]
|
|
346
367
|
name = "cz_conventional_commits"
|
|
347
|
-
version = "0.
|
|
368
|
+
version = "1.0.0a1"
|
|
348
369
|
version_files = [
|
|
349
370
|
"pyproject.toml:version",
|
|
350
371
|
"sillo/__init__.py:__version__"
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
from __future__ import annotations
|
|
2
2
|
|
|
3
|
-
from collections.abc import Awaitable, Callable, Sequence
|
|
3
|
+
from collections.abc import Awaitable, Callable, Iterator, Sequence
|
|
4
|
+
from contextlib import contextmanager
|
|
4
5
|
from typing import (
|
|
5
6
|
TYPE_CHECKING,
|
|
6
7
|
Annotated,
|
|
@@ -192,6 +193,47 @@ lifespan_manager = Callable[
|
|
|
192
193
|
]
|
|
193
194
|
|
|
194
195
|
|
|
196
|
+
def _request_scheme(scope: Scope) -> str:
|
|
197
|
+
"""The effective scheme, trusting ``X-Forwarded-Proto`` when a proxy set it.
|
|
198
|
+
|
|
199
|
+
A TLS-terminating proxy forwards over plain ``http`` but records the
|
|
200
|
+
original scheme in the header; without honouring it, ``force_https`` would
|
|
201
|
+
redirect forever.
|
|
202
|
+
"""
|
|
203
|
+
for key, value in scope.get("headers", []) or []:
|
|
204
|
+
if key.lower() == b"x-forwarded-proto":
|
|
205
|
+
return value.decode("latin-1").split(",", 1)[0].strip().lower()
|
|
206
|
+
return scope.get("scheme", "http")
|
|
207
|
+
|
|
208
|
+
|
|
209
|
+
async def _https_redirect(scope: Scope, send: Send) -> None:
|
|
210
|
+
"""Send a 308 to the ``https`` form of the current URL."""
|
|
211
|
+
host = ""
|
|
212
|
+
for key, value in scope.get("headers", []) or []:
|
|
213
|
+
if key.lower() == b"host":
|
|
214
|
+
host = value.decode("latin-1")
|
|
215
|
+
break
|
|
216
|
+
if not host:
|
|
217
|
+
server = scope.get("server") or ("localhost", None)
|
|
218
|
+
host = server[0] + (f":{server[1]}" if server[1] else "")
|
|
219
|
+
path = scope.get("root_path", "") + scope["path"]
|
|
220
|
+
query = scope.get("query_string", b"")
|
|
221
|
+
location = f"https://{host}{path}" + (
|
|
222
|
+
"?" + query.decode("latin-1") if query else ""
|
|
223
|
+
)
|
|
224
|
+
await send(
|
|
225
|
+
{
|
|
226
|
+
"type": "http.response.start",
|
|
227
|
+
"status": 308,
|
|
228
|
+
"headers": [
|
|
229
|
+
(b"location", location.encode("latin-1")),
|
|
230
|
+
(b"content-length", b"0"),
|
|
231
|
+
],
|
|
232
|
+
}
|
|
233
|
+
)
|
|
234
|
+
await send({"type": "http.response.body", "body": b""})
|
|
235
|
+
|
|
236
|
+
|
|
195
237
|
class SilloApp:
|
|
196
238
|
"""
|
|
197
239
|
Core application class for the sillo ASGI web framework.
|
|
@@ -229,9 +271,19 @@ class SilloApp:
|
|
|
229
271
|
debug: Annotated[
|
|
230
272
|
bool,
|
|
231
273
|
Doc("""
|
|
232
|
-
Whether to enable debug mode
|
|
274
|
+
Whether to enable debug mode: unhandled exceptions render
|
|
275
|
+
the full debug page (or, for a 404, the exception's own
|
|
276
|
+
detail) instead of a generic message, and the terminal
|
|
277
|
+
error log shows the source window instead of a one-line
|
|
278
|
+
summary.
|
|
279
|
+
|
|
280
|
+
Off by default. A `SilloApp()` a developer forgets to
|
|
281
|
+
flip back before deploying should fail closed — generic
|
|
282
|
+
error pages and no internals on the wire — not leak a
|
|
283
|
+
stack trace and a source listing to whoever finds the
|
|
284
|
+
route that 500s. Turn it on for local development.
|
|
233
285
|
"""),
|
|
234
|
-
] =
|
|
286
|
+
] = False,
|
|
235
287
|
title: Annotated[
|
|
236
288
|
str | None,
|
|
237
289
|
Doc("""
|
|
@@ -364,6 +416,23 @@ class SilloApp:
|
|
|
364
416
|
their current behavior; recommended for new applications.
|
|
365
417
|
"""),
|
|
366
418
|
] = False,
|
|
419
|
+
route_order: Annotated[
|
|
420
|
+
Literal["specificity", "registration"],
|
|
421
|
+
Doc("""
|
|
422
|
+
How registered routes are ordered before matching.
|
|
423
|
+
|
|
424
|
+
``"specificity"`` (the default) sorts them so the most
|
|
425
|
+
specific path always wins, whatever order they were
|
|
426
|
+
registered in: a literal segment beats a parameter at the
|
|
427
|
+
same position, so ``/users/me`` is matched before
|
|
428
|
+
``/users/{id}`` even when it is declared later. An explicit
|
|
429
|
+
``priority=`` on a route overrides the computed order.
|
|
430
|
+
|
|
431
|
+
``"registration"`` keeps the historical behavior — routes
|
|
432
|
+
are tried in the order they were added, and an earlier
|
|
433
|
+
dynamic route can shadow a later literal one.
|
|
434
|
+
"""),
|
|
435
|
+
] = "specificity",
|
|
367
436
|
auth: Annotated[
|
|
368
437
|
Sequence[AuthenticationBackend] | None,
|
|
369
438
|
Doc("""
|
|
@@ -403,6 +472,36 @@ class SilloApp:
|
|
|
403
472
|
applications keep building; recommended for new ones.
|
|
404
473
|
"""),
|
|
405
474
|
] = False,
|
|
475
|
+
root_path: Annotated[
|
|
476
|
+
str,
|
|
477
|
+
Doc("""
|
|
478
|
+
A path prefix the application is mounted under, for when a
|
|
479
|
+
reverse proxy strips it before forwarding (``/api`` on the
|
|
480
|
+
proxy, the app sees ``/users``). It is prepended to
|
|
481
|
+
whatever ``root_path`` the ASGI server set, removed before
|
|
482
|
+
route matching, and added back by ``url_for`` and the
|
|
483
|
+
OpenAPI ``servers`` block so generated links stay correct.
|
|
484
|
+
"""),
|
|
485
|
+
] = "",
|
|
486
|
+
force_https: Annotated[
|
|
487
|
+
bool,
|
|
488
|
+
Doc("""
|
|
489
|
+
Answer any plain-``http`` request with a 308 redirect to
|
|
490
|
+
the same URL over ``https``. ``X-Forwarded-Proto: https``
|
|
491
|
+
from a trusted proxy is honoured, so a TLS-terminating
|
|
492
|
+
proxy in front of an ``http`` app does not cause a loop.
|
|
493
|
+
Off by default.
|
|
494
|
+
"""),
|
|
495
|
+
] = False,
|
|
496
|
+
trailing_slash: Annotated[
|
|
497
|
+
Literal["strict", "redirect", "ignore"],
|
|
498
|
+
Doc("""
|
|
499
|
+
How to treat a path that matches only once its trailing
|
|
500
|
+
slash is toggled. ``"strict"`` (default) keeps ``/x`` and
|
|
501
|
+
``/x/`` distinct. ``"redirect"`` sends a 308 to the
|
|
502
|
+
registered form. ``"ignore"`` serves it in place.
|
|
503
|
+
"""),
|
|
504
|
+
] = "strict",
|
|
406
505
|
) -> None:
|
|
407
506
|
"""
|
|
408
507
|
Initialize the sillo application with all core subsystems.
|
|
@@ -472,6 +571,12 @@ class SilloApp:
|
|
|
472
571
|
self._debug = debug
|
|
473
572
|
self.dependencies = dependencies or []
|
|
474
573
|
self.custom_encoders: dict[type, Callable[[Any], Any]] = {}
|
|
574
|
+
#: Test doubles for ``Depend(...)`` callables, keyed by the original
|
|
575
|
+
#: function. ``sillo.core.dependencies.base._resolve_override`` reads
|
|
576
|
+
#: this by identity every time it is about to run a dependency, so
|
|
577
|
+
#: assigning here takes effect on the very next request — nothing to
|
|
578
|
+
#: rebuild. Prefer :meth:`override` for automatic cleanup.
|
|
579
|
+
self.dependency_overrides: dict[Callable[..., Any], Callable[..., Any]] = {}
|
|
475
580
|
|
|
476
581
|
self.http_middleware: list[Middleware] = []
|
|
477
582
|
self.startup_handlers: list[Callable[[], Awaitable[None]]] = []
|
|
@@ -480,6 +585,8 @@ class SilloApp:
|
|
|
480
585
|
|
|
481
586
|
self.route_class = route_class
|
|
482
587
|
self.strict_validation = strict_validation
|
|
588
|
+
self._root_path = root_path.rstrip("/")
|
|
589
|
+
self._force_https = force_https
|
|
483
590
|
# Serialized OpenAPI document per mount prefix, built once.
|
|
484
591
|
self._openapi_documents: dict[str, str] = {}
|
|
485
592
|
self.app = Router(
|
|
@@ -487,6 +594,8 @@ class SilloApp:
|
|
|
487
594
|
dependencies=self.dependencies,
|
|
488
595
|
route_class=self.route_class,
|
|
489
596
|
strict_validation=strict_validation,
|
|
597
|
+
route_order=route_order,
|
|
598
|
+
trailing_slash=trailing_slash,
|
|
490
599
|
)
|
|
491
600
|
self.exceptions_handler = ExceptionMiddleware()
|
|
492
601
|
self.router = self.app
|
|
@@ -1184,6 +1293,65 @@ class SilloApp:
|
|
|
1184
1293
|
CUSTOM_ENCODERS[type_] = encoder
|
|
1185
1294
|
register_encoder(type_, encoder)
|
|
1186
1295
|
|
|
1296
|
+
@contextmanager
|
|
1297
|
+
def override(
|
|
1298
|
+
self,
|
|
1299
|
+
original: Callable[..., Any],
|
|
1300
|
+
replacement: Callable[..., Any],
|
|
1301
|
+
) -> Iterator[None]:
|
|
1302
|
+
"""Swap a ``Depend(...)`` callable for a test double, then restore it.
|
|
1303
|
+
|
|
1304
|
+
A handler written as ``async def me(ctx, db=Depend(get_db))`` cannot
|
|
1305
|
+
be tested without a real database unless something stands in for
|
|
1306
|
+
``get_db``. This is that something:
|
|
1307
|
+
|
|
1308
|
+
async def fake_db(ctx):
|
|
1309
|
+
return FakeSession()
|
|
1310
|
+
|
|
1311
|
+
with app.override(get_db, fake_db):
|
|
1312
|
+
response = client.get("/me")
|
|
1313
|
+
|
|
1314
|
+
The swap is by identity — ``original`` must be the exact function
|
|
1315
|
+
object passed to `Depend`, not a copy or a re-import under another
|
|
1316
|
+
name — and the replacement is looked up on every dependency in the
|
|
1317
|
+
tree, not only the top-level one, so overriding a shared dependency
|
|
1318
|
+
(`get_db`) reaches every route and every nested `Depend(...)` that
|
|
1319
|
+
uses it. The replacement must match what it replaces in shape: a
|
|
1320
|
+
generator dependency needs a generator override, an async one an
|
|
1321
|
+
async override, since the resolver was built from the original's
|
|
1322
|
+
signature and does not re-inspect the double.
|
|
1323
|
+
|
|
1324
|
+
For a suite-wide swap that should not need a `with` block in every
|
|
1325
|
+
test, assign `app.dependency_overrides[original] = replacement`
|
|
1326
|
+
directly and clear it in teardown — this context manager is the
|
|
1327
|
+
same dict, scoped.
|
|
1328
|
+
|
|
1329
|
+
Args:
|
|
1330
|
+
original: The dependency callable to replace, exactly as passed
|
|
1331
|
+
to `Depend(...)`.
|
|
1332
|
+
replacement: The callable to run in its place for the duration
|
|
1333
|
+
of the block.
|
|
1334
|
+
|
|
1335
|
+
Yields:
|
|
1336
|
+
None. Requests made inside the block see `replacement`; the
|
|
1337
|
+
previous mapping (present or absent) is restored on exit even if
|
|
1338
|
+
the block raises.
|
|
1339
|
+
"""
|
|
1340
|
+
had_previous = original in self.dependency_overrides
|
|
1341
|
+
# Fall back to `replacement` itself when there was nothing to save —
|
|
1342
|
+
# `had_previous` gates whether it's ever read, so the fallback value
|
|
1343
|
+
# is never actually used, but it keeps `previous` typed as a plain
|
|
1344
|
+
# callable instead of `Callable | None`.
|
|
1345
|
+
previous = self.dependency_overrides.get(original, replacement)
|
|
1346
|
+
self.dependency_overrides[original] = replacement
|
|
1347
|
+
try:
|
|
1348
|
+
yield
|
|
1349
|
+
finally:
|
|
1350
|
+
if had_previous:
|
|
1351
|
+
self.dependency_overrides[original] = previous
|
|
1352
|
+
else:
|
|
1353
|
+
self.dependency_overrides.pop(original, None)
|
|
1354
|
+
|
|
1187
1355
|
def add_ws_route(
|
|
1188
1356
|
self,
|
|
1189
1357
|
route: Annotated[
|
|
@@ -1193,6 +1361,7 @@ class SilloApp:
|
|
|
1193
1361
|
| None = None,
|
|
1194
1362
|
path: str | None = None,
|
|
1195
1363
|
handler: WsHandlerType | None = None,
|
|
1364
|
+
priority: int = 0,
|
|
1196
1365
|
) -> None:
|
|
1197
1366
|
"""
|
|
1198
1367
|
Adds a WebSocket route to the application.
|
|
@@ -1225,7 +1394,7 @@ class SilloApp:
|
|
|
1225
1394
|
"path and handler are required when 'route' is not provided."
|
|
1226
1395
|
)
|
|
1227
1396
|
|
|
1228
|
-
self.router.add_ws_route(WebsocketRoute(path, handler))
|
|
1397
|
+
self.router.add_ws_route(WebsocketRoute(path, handler, priority=priority))
|
|
1229
1398
|
|
|
1230
1399
|
def add_command(self, command: type[Command]) -> type[Command]:
|
|
1231
1400
|
"""Register a console command on this application.
|
|
@@ -1459,7 +1628,25 @@ class SilloApp:
|
|
|
1459
1628
|
|
|
1460
1629
|
if scope["type"] == "lifespan":
|
|
1461
1630
|
await self.handle_lifespan(receive, send)
|
|
1462
|
-
|
|
1631
|
+
return
|
|
1632
|
+
|
|
1633
|
+
if scope["type"] in ("http", "websocket"):
|
|
1634
|
+
if self._root_path:
|
|
1635
|
+
scope["root_path"] = self._root_path + scope.get("root_path", "")
|
|
1636
|
+
# If the proxy forwarded the prefix in the path (it did not
|
|
1637
|
+
# strip it itself), move it into root_path so mounts and route
|
|
1638
|
+
# matching see the tail. A proxy that already stripped it
|
|
1639
|
+
# leaves `path` not starting with the prefix, and this is a
|
|
1640
|
+
# no-op.
|
|
1641
|
+
if scope["path"].startswith(self._root_path):
|
|
1642
|
+
scope["path"] = scope["path"][len(self._root_path) :] or "/"
|
|
1643
|
+
if (
|
|
1644
|
+
self._force_https
|
|
1645
|
+
and scope["type"] == "http"
|
|
1646
|
+
and _request_scheme(scope) == "http"
|
|
1647
|
+
):
|
|
1648
|
+
await _https_redirect(scope, send)
|
|
1649
|
+
return
|
|
1463
1650
|
await self.handle_request(scope, receive, send)
|
|
1464
1651
|
|
|
1465
1652
|
def get(
|
|
@@ -3025,6 +3212,41 @@ class SilloApp:
|
|
|
3025
3212
|
"""
|
|
3026
3213
|
return self.router.get_all_routes()
|
|
3027
3214
|
|
|
3215
|
+
def print_routes(self, *, file: Any | None = None) -> None:
|
|
3216
|
+
"""Print every registered route as an aligned table.
|
|
3217
|
+
|
|
3218
|
+
Walks the router and all mounted sub-routers and writes
|
|
3219
|
+
``METHODS PATH handler (name)`` rows to ``file`` (stdout by
|
|
3220
|
+
default). Handy from a startup hook or a REPL.
|
|
3221
|
+
"""
|
|
3222
|
+
self.router.print_routes(file=file)
|
|
3223
|
+
|
|
3224
|
+
def redirect(
|
|
3225
|
+
self,
|
|
3226
|
+
path: str,
|
|
3227
|
+
to: str,
|
|
3228
|
+
*,
|
|
3229
|
+
status_code: int = 307,
|
|
3230
|
+
name: str | None = None,
|
|
3231
|
+
methods: Sequence[str] = ("GET",),
|
|
3232
|
+
include_query: bool = True,
|
|
3233
|
+
) -> None:
|
|
3234
|
+
"""Register a redirect-only route — no handler to write.
|
|
3235
|
+
|
|
3236
|
+
``app.redirect("/docs", "/docs/latest")``. Placeholders shared by both
|
|
3237
|
+
sides are substituted (``app.redirect("/u/{id}", "/users/{id}")``).
|
|
3238
|
+
The default 307 preserves the method; use ``301``/``308`` for a
|
|
3239
|
+
permanent move. See :meth:`Router.redirect`.
|
|
3240
|
+
"""
|
|
3241
|
+
self.router.redirect(
|
|
3242
|
+
path,
|
|
3243
|
+
to,
|
|
3244
|
+
status_code=status_code,
|
|
3245
|
+
name=name,
|
|
3246
|
+
methods=methods,
|
|
3247
|
+
include_query=include_query,
|
|
3248
|
+
)
|
|
3249
|
+
|
|
3028
3250
|
def ws_route(
|
|
3029
3251
|
self,
|
|
3030
3252
|
path: Annotated[
|
|
@@ -3043,6 +3265,13 @@ class SilloApp:
|
|
|
3043
3265
|
await websocket.send("Welcome to the chat!")
|
|
3044
3266
|
"""),
|
|
3045
3267
|
] = None,
|
|
3268
|
+
priority: Annotated[
|
|
3269
|
+
int,
|
|
3270
|
+
Doc(
|
|
3271
|
+
"Match-ordering weight. Tried in descending priority, then by "
|
|
3272
|
+
"path specificity, then registration order. Defaults to 0."
|
|
3273
|
+
),
|
|
3274
|
+
] = 0,
|
|
3046
3275
|
):
|
|
3047
3276
|
"""
|
|
3048
3277
|
Register a WebSocket route with the application.
|
|
@@ -3051,6 +3280,7 @@ class SilloApp:
|
|
|
3051
3280
|
path (str): URL path pattern for the WebSocket route.
|
|
3052
3281
|
handler (Callable): Async handler function for WebSocket connections.
|
|
3053
3282
|
Example: async def chat_handler(websocket, path): pass
|
|
3283
|
+
priority (int): Match-ordering weight for the route. Defaults to 0.
|
|
3054
3284
|
|
|
3055
3285
|
Returns:
|
|
3056
3286
|
Callable: A decorator to register the WebSocket route.
|
|
@@ -3058,6 +3288,7 @@ class SilloApp:
|
|
|
3058
3288
|
return self.router.ws_route(
|
|
3059
3289
|
path=path,
|
|
3060
3290
|
handler=handler,
|
|
3291
|
+
priority=priority,
|
|
3061
3292
|
)
|
|
3062
3293
|
|
|
3063
3294
|
def __str__(self) -> str:
|
|
@@ -5,6 +5,7 @@ Implemented from Starlette.
|
|
|
5
5
|
|
|
6
6
|
from __future__ import annotations
|
|
7
7
|
|
|
8
|
+
import datetime as _datetime
|
|
8
9
|
import math
|
|
9
10
|
import re
|
|
10
11
|
import typing
|
|
@@ -516,6 +517,116 @@ class SlugConvertor(Convertor[str]):
|
|
|
516
517
|
return value
|
|
517
518
|
|
|
518
519
|
|
|
520
|
+
class BoolConvertor(Convertor[bool]):
|
|
521
|
+
"""Converter for boolean path parameters.
|
|
522
|
+
|
|
523
|
+
Matches the words a URL commonly carries for a flag —
|
|
524
|
+
``true``/``false``, ``1``/``0``, ``yes``/``no``, ``on``/``off`` — in any
|
|
525
|
+
case, and hands the handler a real ``bool``. ``to_string`` normalises back
|
|
526
|
+
to ``"true"`` / ``"false"``.
|
|
527
|
+
"""
|
|
528
|
+
|
|
529
|
+
regex = "(?i:true|false|1|0|yes|no|on|off)"
|
|
530
|
+
|
|
531
|
+
_TRUE = frozenset({"true", "1", "yes", "on"})
|
|
532
|
+
|
|
533
|
+
def convert(self, value: str) -> bool:
|
|
534
|
+
return value.lower() in self._TRUE
|
|
535
|
+
|
|
536
|
+
def to_string(self, value: bool) -> str:
|
|
537
|
+
return "true" if value else "false"
|
|
538
|
+
|
|
539
|
+
|
|
540
|
+
class DateConvertor(Convertor[_datetime.date]):
|
|
541
|
+
"""Converter for ISO 8601 calendar dates, ``YYYY-MM-DD``.
|
|
542
|
+
|
|
543
|
+
``/reports/{day:date}`` binds ``day`` as a ``datetime.date``. A
|
|
544
|
+
syntactically valid but impossible date (``2026-02-30``) matches the regex
|
|
545
|
+
but raises ``ValueError`` in ``convert``, which the router surfaces the
|
|
546
|
+
same way it does a bad ``int``.
|
|
547
|
+
"""
|
|
548
|
+
|
|
549
|
+
regex = r"[0-9]{4}-[0-9]{2}-[0-9]{2}"
|
|
550
|
+
|
|
551
|
+
def convert(self, value: str) -> _datetime.date:
|
|
552
|
+
return _datetime.date.fromisoformat(value)
|
|
553
|
+
|
|
554
|
+
def to_string(self, value: _datetime.date) -> str:
|
|
555
|
+
return value.isoformat()
|
|
556
|
+
|
|
557
|
+
|
|
558
|
+
class DateTimeConvertor(Convertor[_datetime.datetime]):
|
|
559
|
+
"""Converter for ISO 8601 timestamps.
|
|
560
|
+
|
|
561
|
+
Accepts ``2026-09-10T13:45:00``, an optional fractional second, and an
|
|
562
|
+
optional ``Z`` or ``±HH:MM`` offset. ``Z`` is rewritten to ``+00:00``
|
|
563
|
+
before parsing so it works on Python 3.10 as well.
|
|
564
|
+
"""
|
|
565
|
+
|
|
566
|
+
regex = (
|
|
567
|
+
r"[0-9]{4}-[0-9]{2}-[0-9]{2}[T ][0-9]{2}:[0-9]{2}(:[0-9]{2})?"
|
|
568
|
+
r"(\.[0-9]+)?(Z|[+-][0-9]{2}:[0-9]{2})?"
|
|
569
|
+
)
|
|
570
|
+
|
|
571
|
+
def convert(self, value: str) -> _datetime.datetime:
|
|
572
|
+
return _datetime.datetime.fromisoformat(value.replace("Z", "+00:00"))
|
|
573
|
+
|
|
574
|
+
def to_string(self, value: _datetime.datetime) -> str:
|
|
575
|
+
return value.isoformat()
|
|
576
|
+
|
|
577
|
+
|
|
578
|
+
class ULIDConvertor(Convertor[str]):
|
|
579
|
+
"""Converter for ULIDs — 26 Crockford base32 characters.
|
|
580
|
+
|
|
581
|
+
Kept as a validated ``str`` rather than a bespoke type, so it drops into a
|
|
582
|
+
handler and a database column without a conversion either side. Matching is
|
|
583
|
+
case-insensitive; ``to_string`` upper-cases, which is the canonical form.
|
|
584
|
+
"""
|
|
585
|
+
|
|
586
|
+
regex = r"[0-7][0-9A-HJKMNP-TV-Za-hjkmnp-tv-z]{25}"
|
|
587
|
+
|
|
588
|
+
def convert(self, value: str) -> str:
|
|
589
|
+
return value.upper()
|
|
590
|
+
|
|
591
|
+
def to_string(self, value: str) -> str:
|
|
592
|
+
value = str(value)
|
|
593
|
+
if not re.fullmatch(self.regex, value):
|
|
594
|
+
raise ValueError(f"Invalid ULID: {value}")
|
|
595
|
+
return value.upper()
|
|
596
|
+
|
|
597
|
+
|
|
598
|
+
class AlphaConvertor(Convertor[str]):
|
|
599
|
+
"""Converter for a run of ASCII letters, ``[A-Za-z]+`` — no digits, no
|
|
600
|
+
separators. Narrower than ``str``, so ``/tags/{name:alpha}`` will not
|
|
601
|
+
swallow ``/tags/2026``."""
|
|
602
|
+
|
|
603
|
+
regex = "[A-Za-z]+"
|
|
604
|
+
|
|
605
|
+
def convert(self, value: str) -> str:
|
|
606
|
+
return value
|
|
607
|
+
|
|
608
|
+
def to_string(self, value: str) -> str:
|
|
609
|
+
value = str(value)
|
|
610
|
+
assert value.isalpha(), "Must be ASCII letters only"
|
|
611
|
+
return value
|
|
612
|
+
|
|
613
|
+
|
|
614
|
+
class AlnumConvertor(Convertor[str]):
|
|
615
|
+
"""Converter for a run of ASCII letters and digits, ``[A-Za-z0-9]+`` — no
|
|
616
|
+
hyphens, dots or spaces. The right fit for reference codes and short
|
|
617
|
+
handles that are looser than a slug but still one opaque token."""
|
|
618
|
+
|
|
619
|
+
regex = "[A-Za-z0-9]+"
|
|
620
|
+
|
|
621
|
+
def convert(self, value: str) -> str:
|
|
622
|
+
return value
|
|
623
|
+
|
|
624
|
+
def to_string(self, value: str) -> str:
|
|
625
|
+
value = str(value)
|
|
626
|
+
assert value.isalnum(), "Must be ASCII letters and digits only"
|
|
627
|
+
return value
|
|
628
|
+
|
|
629
|
+
|
|
519
630
|
CONVERTOR_TYPES: dict[str, Convertor[typing.Any]] = {
|
|
520
631
|
"str": StringConvertor(),
|
|
521
632
|
"path": PathConvertor(),
|
|
@@ -523,6 +634,12 @@ CONVERTOR_TYPES: dict[str, Convertor[typing.Any]] = {
|
|
|
523
634
|
"float": FloatConvertor(),
|
|
524
635
|
"uuid": UUIDConvertor(),
|
|
525
636
|
"slug": SlugConvertor(),
|
|
637
|
+
"bool": BoolConvertor(),
|
|
638
|
+
"date": DateConvertor(),
|
|
639
|
+
"datetime": DateTimeConvertor(),
|
|
640
|
+
"ulid": ULIDConvertor(),
|
|
641
|
+
"alpha": AlphaConvertor(),
|
|
642
|
+
"alnum": AlnumConvertor(),
|
|
526
643
|
}
|
|
527
644
|
"""Default registry of built-in URL path converter instances.
|
|
528
645
|
|