bustapi 0.13.8__tar.gz → 0.13.9__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.
- {bustapi-0.13.8 → bustapi-0.13.9}/CHANGELOG.md +6 -0
- {bustapi-0.13.8 → bustapi-0.13.9}/Cargo.lock +5 -5
- {bustapi-0.13.8 → bustapi-0.13.9}/Cargo.toml +1 -1
- {bustapi-0.13.8 → bustapi-0.13.9}/PKG-INFO +1 -1
- {bustapi-0.13.8 → bustapi-0.13.9}/docs/changelog.md +6 -0
- {bustapi-0.13.8 → bustapi-0.13.9}/pyproject.toml +1 -1
- {bustapi-0.13.8 → bustapi-0.13.9}/python/bustapi/__init__.py +1 -1
- {bustapi-0.13.8 → bustapi-0.13.9}/python/bustapi/auth/login.py +2 -0
- {bustapi-0.13.8 → bustapi-0.13.9}/python/bustapi/sessions.py +2 -3
- {bustapi-0.13.8 → bustapi-0.13.9}/- +0 -0
- {bustapi-0.13.8 → bustapi-0.13.9}/.github/FUNDING.yml +0 -0
- {bustapi-0.13.8 → bustapi-0.13.9}/.github/workflows/ci-multiplatform.yml +0 -0
- {bustapi-0.13.8 → bustapi-0.13.9}/.github/workflows/ci.yml +0 -0
- {bustapi-0.13.8 → bustapi-0.13.9}/.github/workflows/docs.yml +0 -0
- {bustapi-0.13.8 → bustapi-0.13.9}/.github/workflows/manual-publish.yml +0 -0
- {bustapi-0.13.8 → bustapi-0.13.9}/.gitignore +0 -0
- {bustapi-0.13.8 → bustapi-0.13.9}/.python-version +0 -0
- {bustapi-0.13.8 → bustapi-0.13.9}/AGENT_KNOWLEDGE.md +0 -0
- {bustapi-0.13.8 → bustapi-0.13.9}/Dockerfile +0 -0
- {bustapi-0.13.8 → bustapi-0.13.9}/LICENSE +0 -0
- {bustapi-0.13.8 → bustapi-0.13.9}/README.md +0 -0
- {bustapi-0.13.8 → bustapi-0.13.9}/benchmarks/CACHE_BENCHMARK.md +0 -0
- {bustapi-0.13.8 → bustapi-0.13.9}/benchmarks/README.md +0 -0
- {bustapi-0.13.8 → bustapi-0.13.9}/benchmarks/app.py +0 -0
- {bustapi-0.13.8 → bustapi-0.13.9}/benchmarks/benchmark_all.py +0 -0
- {bustapi-0.13.8 → bustapi-0.13.9}/benchmarks/benchmark_avg.py +0 -0
- {bustapi-0.13.8 → bustapi-0.13.9}/benchmarks/benchmark_cache.py +0 -0
- {bustapi-0.13.8 → bustapi-0.13.9}/benchmarks/benchmark_combined.png +0 -0
- {bustapi-0.13.8 → bustapi-0.13.9}/benchmarks/bustapi.md +0 -0
- {bustapi-0.13.8 → bustapi-0.13.9}/benchmarks/bustapi_bench.py +0 -0
- {bustapi-0.13.8 → bustapi-0.13.9}/benchmarks/bustapi_internal.py +0 -0
- {bustapi-0.13.8 → bustapi-0.13.9}/benchmarks/comparison_bench.py +0 -0
- {bustapi-0.13.8 → bustapi-0.13.9}/benchmarks/comprehensive_benchmark.py +0 -0
- {bustapi-0.13.8 → bustapi-0.13.9}/benchmarks/gen_graph.py +0 -0
- {bustapi-0.13.8 → bustapi-0.13.9}/benchmarks/quick_bench.py +0 -0
- {bustapi-0.13.8 → bustapi-0.13.9}/benchmarks/resource_bench.py +0 -0
- {bustapi-0.13.8 → bustapi-0.13.9}/benchmarks/rps_comparison.png +0 -0
- {bustapi-0.13.8 → bustapi-0.13.9}/benchmarks/run_comparison_auto.py +0 -0
- {bustapi-0.13.8 → bustapi-0.13.9}/benchmarks/ws_benchmark.py +0 -0
- {bustapi-0.13.8 → bustapi-0.13.9}/docs/advanced/async.md +0 -0
- {bustapi-0.13.8 → bustapi-0.13.9}/docs/advanced/blueprints.md +0 -0
- {bustapi-0.13.8 → bustapi-0.13.9}/docs/advanced/dependency_injection.md +0 -0
- {bustapi-0.13.8 → bustapi-0.13.9}/docs/advanced/deployment.md +0 -0
- {bustapi-0.13.8 → bustapi-0.13.9}/docs/advanced/middleware.md +0 -0
- {bustapi-0.13.8 → bustapi-0.13.9}/docs/advanced/security.md +0 -0
- {bustapi-0.13.8 → bustapi-0.13.9}/docs/advanced/validation.md +0 -0
- {bustapi-0.13.8 → bustapi-0.13.9}/docs/api-reference.md +0 -0
- {bustapi-0.13.8 → bustapi-0.13.9}/docs/assets/logo.png +0 -0
- {bustapi-0.13.8 → bustapi-0.13.9}/docs/complete-api-reference.md +0 -0
- {bustapi-0.13.8 → bustapi-0.13.9}/docs/deployment-performance-guide.md +0 -0
- {bustapi-0.13.8 → bustapi-0.13.9}/docs/deployment.md +0 -0
- {bustapi-0.13.8 → bustapi-0.13.9}/docs/examples-guide.md +0 -0
- {bustapi-0.13.8 → bustapi-0.13.9}/docs/index.md +0 -0
- {bustapi-0.13.8 → bustapi-0.13.9}/docs/installation.md +0 -0
- {bustapi-0.13.8 → bustapi-0.13.9}/docs/overrides/.gitkeep +0 -0
- {bustapi-0.13.8 → bustapi-0.13.9}/docs/quickstart.md +0 -0
- {bustapi-0.13.8 → bustapi-0.13.9}/docs/release_track.md +0 -0
- {bustapi-0.13.8 → bustapi-0.13.9}/docs/site/advanced/async_support.html +0 -0
- {bustapi-0.13.8 → bustapi-0.13.9}/docs/site/advanced/blueprints.html +0 -0
- {bustapi-0.13.8 → bustapi-0.13.9}/docs/site/advanced/dependency_injection.html +0 -0
- {bustapi-0.13.8 → bustapi-0.13.9}/docs/site/advanced/middleware.html +0 -0
- {bustapi-0.13.8 → bustapi-0.13.9}/docs/site/advanced/validation.html +0 -0
- {bustapi-0.13.8 → bustapi-0.13.9}/docs/site/api/all.html +0 -0
- {bustapi-0.13.8 → bustapi-0.13.9}/docs/site/api/app.html +0 -0
- {bustapi-0.13.8 → bustapi-0.13.9}/docs/site/api/context.html +0 -0
- {bustapi-0.13.8 → bustapi-0.13.9}/docs/site/api/utilities.html +0 -0
- {bustapi-0.13.8 → bustapi-0.13.9}/docs/site/assets/logo.png +0 -0
- {bustapi-0.13.8 → bustapi-0.13.9}/docs/site/changelog.html +0 -0
- {bustapi-0.13.8 → bustapi-0.13.9}/docs/site/core_concepts/request_data.html +0 -0
- {bustapi-0.13.8 → bustapi-0.13.9}/docs/site/core_concepts/responses.html +0 -0
- {bustapi-0.13.8 → bustapi-0.13.9}/docs/site/core_concepts/routing.html +0 -0
- {bustapi-0.13.8 → bustapi-0.13.9}/docs/site/core_concepts/templates.html +0 -0
- {bustapi-0.13.8 → bustapi-0.13.9}/docs/site/examples/index.html +0 -0
- {bustapi-0.13.8 → bustapi-0.13.9}/docs/site/getting_started/index.html +0 -0
- {bustapi-0.13.8 → bustapi-0.13.9}/docs/site/getting_started/quickstart.html +0 -0
- {bustapi-0.13.8 → bustapi-0.13.9}/docs/site/index.html +0 -0
- {bustapi-0.13.8 → bustapi-0.13.9}/docs/site/script.js +0 -0
- {bustapi-0.13.8 → bustapi-0.13.9}/docs/site/style.css +0 -0
- {bustapi-0.13.8 → bustapi-0.13.9}/docs/stylesheets/extra.css +0 -0
- {bustapi-0.13.8 → bustapi-0.13.9}/docs/user-guide/authentication.md +0 -0
- {bustapi-0.13.8 → bustapi-0.13.9}/docs/user-guide/caching.md +0 -0
- {bustapi-0.13.8 → bustapi-0.13.9}/docs/user-guide/cli.md +0 -0
- {bustapi-0.13.8 → bustapi-0.13.9}/docs/user-guide/database.md +0 -0
- {bustapi-0.13.8 → bustapi-0.13.9}/docs/user-guide/documentation.md +0 -0
- {bustapi-0.13.8 → bustapi-0.13.9}/docs/user-guide/error_handling.md +0 -0
- {bustapi-0.13.8 → bustapi-0.13.9}/docs/user-guide/jwt.md +0 -0
- {bustapi-0.13.8 → bustapi-0.13.9}/docs/user-guide/logging.md +0 -0
- {bustapi-0.13.8 → bustapi-0.13.9}/docs/user-guide/multiprocessing.md +0 -0
- {bustapi-0.13.8 → bustapi-0.13.9}/docs/user-guide/request_data.md +0 -0
- {bustapi-0.13.8 → bustapi-0.13.9}/docs/user-guide/responses.md +0 -0
- {bustapi-0.13.8 → bustapi-0.13.9}/docs/user-guide/routing.md +0 -0
- {bustapi-0.13.8 → bustapi-0.13.9}/docs/user-guide/sessions.md +0 -0
- {bustapi-0.13.8 → bustapi-0.13.9}/docs/user-guide/static_files.md +0 -0
- {bustapi-0.13.8 → bustapi-0.13.9}/docs/user-guide/templates.md +0 -0
- {bustapi-0.13.8 → bustapi-0.13.9}/docs/user-guide/turbo-routes.md +0 -0
- {bustapi-0.13.8 → bustapi-0.13.9}/docs/user-guide/video-streaming.md +0 -0
- {bustapi-0.13.8 → bustapi-0.13.9}/docs/websockets.md +0 -0
- {bustapi-0.13.8 → bustapi-0.13.9}/examples/advanced/08_auto_docs.py +0 -0
- {bustapi-0.13.8 → bustapi-0.13.9}/examples/advanced/12_test_modes.py +0 -0
- {bustapi-0.13.8 → bustapi-0.13.9}/examples/advanced/13_error_handling.py +0 -0
- {bustapi-0.13.8 → bustapi-0.13.9}/examples/advanced/14_middleware.py +0 -0
- {bustapi-0.13.8 → bustapi-0.13.9}/examples/advanced/16_middleware_session.py +0 -0
- {bustapi-0.13.8 → bustapi-0.13.9}/examples/advanced/20_file_uploads.py +0 -0
- {bustapi-0.13.8 → bustapi-0.13.9}/examples/advanced/24_body_and_depends.py +0 -0
- {bustapi-0.13.8 → bustapi-0.13.9}/examples/advanced/27_video_stream.py +0 -0
- {bustapi-0.13.8 → bustapi-0.13.9}/examples/advanced/28_websocket.py +0 -0
- {bustapi-0.13.8 → bustapi-0.13.9}/examples/advanced/29_turbo_websocket.py +0 -0
- {bustapi-0.13.8 → bustapi-0.13.9}/examples/basics/01_hello_world.py +0 -0
- {bustapi-0.13.8 → bustapi-0.13.9}/examples/basics/02_parameters.py +0 -0
- {bustapi-0.13.8 → bustapi-0.13.9}/examples/basics/03_async.py +0 -0
- {bustapi-0.13.8 → bustapi-0.13.9}/examples/basics/04_request_data.py +0 -0
- {bustapi-0.13.8 → bustapi-0.13.9}/examples/basics/19_all_types.py +0 -0
- {bustapi-0.13.8 → bustapi-0.13.9}/examples/database/07_database_raw.py +0 -0
- {bustapi-0.13.8 → bustapi-0.13.9}/examples/database/10_database_sqlmodel.py +0 -0
- {bustapi-0.13.8 → bustapi-0.13.9}/examples/routing/06_blueprints.py +0 -0
- {bustapi-0.13.8 → bustapi-0.13.9}/examples/routing/09_complex_routing.py +0 -0
- {bustapi-0.13.8 → bustapi-0.13.9}/examples/routing/21_path_validation.py +0 -0
- {bustapi-0.13.8 → bustapi-0.13.9}/examples/routing/22_path_docs.py +0 -0
- {bustapi-0.13.8 → bustapi-0.13.9}/examples/routing/23_query_validation.py +0 -0
- {bustapi-0.13.8 → bustapi-0.13.9}/examples/routing/blueprint_with_jwt.py +0 -0
- {bustapi-0.13.8 → bustapi-0.13.9}/examples/security/10_rate_limit_demo.py +0 -0
- {bustapi-0.13.8 → bustapi-0.13.9}/examples/security/11_security_demo.py +0 -0
- {bustapi-0.13.8 → bustapi-0.13.9}/examples/security/17_jwt_auth.py +0 -0
- {bustapi-0.13.8 → bustapi-0.13.9}/examples/security/17_safe_features.py +0 -0
- {bustapi-0.13.8 → bustapi-0.13.9}/examples/security/18_jwt_cookies.py +0 -0
- {bustapi-0.13.8 → bustapi-0.13.9}/examples/security/18_safe_advanced.py +0 -0
- {bustapi-0.13.8 → bustapi-0.13.9}/examples/security/18_session_login.py +0 -0
- {bustapi-0.13.8 → bustapi-0.13.9}/examples/templates/05_templates.py +0 -0
- {bustapi-0.13.8 → bustapi-0.13.9}/examples/templates/26_complex_template.py +0 -0
- {bustapi-0.13.8 → bustapi-0.13.9}/examples/templates/templates/index.html +0 -0
- {bustapi-0.13.8 → bustapi-0.13.9}/examples/turbo/cache_test.py +0 -0
- {bustapi-0.13.8 → bustapi-0.13.9}/examples/turbo/fair_benchmark.py +0 -0
- {bustapi-0.13.8 → bustapi-0.13.9}/examples/turbo/typed_turbo_example.py +0 -0
- {bustapi-0.13.8 → bustapi-0.13.9}/examples/ws/app.py +0 -0
- {bustapi-0.13.8 → bustapi-0.13.9}/examples/ws/templates/index.html +0 -0
- {bustapi-0.13.8 → bustapi-0.13.9}/examples/ws/websockets_demo.py +0 -0
- {bustapi-0.13.8 → bustapi-0.13.9}/examples/ws/ws_limit.py +0 -0
- {bustapi-0.13.8 → bustapi-0.13.9}/mkdocs.yml +0 -0
- {bustapi-0.13.8 → bustapi-0.13.9}/python/bustapi/app.py +0 -0
- {bustapi-0.13.8 → bustapi-0.13.9}/python/bustapi/auth/__init__.py +0 -0
- {bustapi-0.13.8 → bustapi-0.13.9}/python/bustapi/auth/csrf.py +0 -0
- {bustapi-0.13.8 → bustapi-0.13.9}/python/bustapi/auth/decorators.py +0 -0
- {bustapi-0.13.8 → bustapi-0.13.9}/python/bustapi/auth/password.py +0 -0
- {bustapi-0.13.8 → bustapi-0.13.9}/python/bustapi/auth/tokens.py +0 -0
- {bustapi-0.13.8 → bustapi-0.13.9}/python/bustapi/auth/user.py +0 -0
- {bustapi-0.13.8 → bustapi-0.13.9}/python/bustapi/cli/__init__.py +0 -0
- {bustapi-0.13.8 → bustapi-0.13.9}/python/bustapi/cli/main.py +0 -0
- {bustapi-0.13.8 → bustapi-0.13.9}/python/bustapi/context.py +0 -0
- {bustapi-0.13.8 → bustapi-0.13.9}/python/bustapi/core/__init__.py +0 -0
- {bustapi-0.13.8 → bustapi-0.13.9}/python/bustapi/core/asgi.py +0 -0
- {bustapi-0.13.8 → bustapi-0.13.9}/python/bustapi/core/exceptions.py +0 -0
- {bustapi-0.13.8 → bustapi-0.13.9}/python/bustapi/core/helpers.py +0 -0
- {bustapi-0.13.8 → bustapi-0.13.9}/python/bustapi/core/logging.py +0 -0
- {bustapi-0.13.8 → bustapi-0.13.9}/python/bustapi/dependencies.py +0 -0
- {bustapi-0.13.8 → bustapi-0.13.9}/python/bustapi/dispatch.py +0 -0
- {bustapi-0.13.8 → bustapi-0.13.9}/python/bustapi/documentation/__init__.py +0 -0
- {bustapi-0.13.8 → bustapi-0.13.9}/python/bustapi/documentation/generator.py +0 -0
- {bustapi-0.13.8 → bustapi-0.13.9}/python/bustapi/extraction.py +0 -0
- {bustapi-0.13.8 → bustapi-0.13.9}/python/bustapi/fastapi_compat.py +0 -0
- {bustapi-0.13.8 → bustapi-0.13.9}/python/bustapi/hooks.py +0 -0
- {bustapi-0.13.8 → bustapi-0.13.9}/python/bustapi/http/__init__.py +0 -0
- {bustapi-0.13.8 → bustapi-0.13.9}/python/bustapi/http/request.py +0 -0
- {bustapi-0.13.8 → bustapi-0.13.9}/python/bustapi/http/response.py +0 -0
- {bustapi-0.13.8 → bustapi-0.13.9}/python/bustapi/jwt.py +0 -0
- {bustapi-0.13.8 → bustapi-0.13.9}/python/bustapi/logging.py +0 -0
- {bustapi-0.13.8 → bustapi-0.13.9}/python/bustapi/middleware.py +0 -0
- {bustapi-0.13.8 → bustapi-0.13.9}/python/bustapi/multiprocess.py +0 -0
- {bustapi-0.13.8 → bustapi-0.13.9}/python/bustapi/params.py +0 -0
- {bustapi-0.13.8 → bustapi-0.13.9}/python/bustapi/py.typed +0 -0
- {bustapi-0.13.8 → bustapi-0.13.9}/python/bustapi/responses.py +0 -0
- {bustapi-0.13.8 → bustapi-0.13.9}/python/bustapi/routing/__init__.py +0 -0
- {bustapi-0.13.8 → bustapi-0.13.9}/python/bustapi/routing/blueprints.py +0 -0
- {bustapi-0.13.8 → bustapi-0.13.9}/python/bustapi/routing/decorators.py +0 -0
- {bustapi-0.13.8 → bustapi-0.13.9}/python/bustapi/safe/__init__.py +0 -0
- {bustapi-0.13.8 → bustapi-0.13.9}/python/bustapi/safe/concurrency.py +0 -0
- {bustapi-0.13.8 → bustapi-0.13.9}/python/bustapi/safe/types.py +0 -0
- {bustapi-0.13.8 → bustapi-0.13.9}/python/bustapi/security/__init__.py +0 -0
- {bustapi-0.13.8 → bustapi-0.13.9}/python/bustapi/security/extension.py +0 -0
- {bustapi-0.13.8 → bustapi-0.13.9}/python/bustapi/security/rate_limit.py +0 -0
- {bustapi-0.13.8 → bustapi-0.13.9}/python/bustapi/server/__init__.py +0 -0
- {bustapi-0.13.8 → bustapi-0.13.9}/python/bustapi/server/runner.py +0 -0
- {bustapi-0.13.8 → bustapi-0.13.9}/python/bustapi/server/wsgi.py +0 -0
- {bustapi-0.13.8 → bustapi-0.13.9}/python/bustapi/templating/__init__.py +0 -0
- {bustapi-0.13.8 → bustapi-0.13.9}/python/bustapi/templating/engine.py +0 -0
- {bustapi-0.13.8 → bustapi-0.13.9}/python/bustapi/templating/mixin.py +0 -0
- {bustapi-0.13.8 → bustapi-0.13.9}/python/bustapi/testing/__init__.py +0 -0
- {bustapi-0.13.8 → bustapi-0.13.9}/python/bustapi/testing/client.py +0 -0
- {bustapi-0.13.8 → bustapi-0.13.9}/python/bustapi/utils.py +0 -0
- {bustapi-0.13.8 → bustapi-0.13.9}/python/bustapi/websocket.py +0 -0
- {bustapi-0.13.8 → bustapi-0.13.9}/run_all_examples.py +0 -0
- {bustapi-0.13.8 → bustapi-0.13.9}/scratch/test_abort.py +0 -0
- {bustapi-0.13.8 → bustapi-0.13.9}/scratch/test_headers.py +0 -0
- {bustapi-0.13.8 → bustapi-0.13.9}/src/bindings/app.rs +0 -0
- {bustapi-0.13.8 → bustapi-0.13.9}/src/bindings/converters.rs +0 -0
- {bustapi-0.13.8 → bustapi-0.13.9}/src/bindings/handlers.rs +0 -0
- {bustapi-0.13.8 → bustapi-0.13.9}/src/bindings/mod.rs +0 -0
- {bustapi-0.13.8 → bustapi-0.13.9}/src/bindings/request.rs +0 -0
- {bustapi-0.13.8 → bustapi-0.13.9}/src/bindings/typed_turbo.rs +0 -0
- {bustapi-0.13.8 → bustapi-0.13.9}/src/bindings/websocket.rs +0 -0
- {bustapi-0.13.8 → bustapi-0.13.9}/src/crypto.rs +0 -0
- {bustapi-0.13.8 → bustapi-0.13.9}/src/jwt.rs +0 -0
- {bustapi-0.13.8 → bustapi-0.13.9}/src/lib.rs +0 -0
- {bustapi-0.13.8 → bustapi-0.13.9}/src/logger.rs +0 -0
- {bustapi-0.13.8 → bustapi-0.13.9}/src/rate_limiter.rs +0 -0
- {bustapi-0.13.8 → bustapi-0.13.9}/src/request/methods.rs +0 -0
- {bustapi-0.13.8 → bustapi-0.13.9}/src/request/mod.rs +0 -0
- {bustapi-0.13.8 → bustapi-0.13.9}/src/request/tests.rs +0 -0
- {bustapi-0.13.8 → bustapi-0.13.9}/src/response/builders.rs +0 -0
- {bustapi-0.13.8 → bustapi-0.13.9}/src/response/methods.rs +0 -0
- {bustapi-0.13.8 → bustapi-0.13.9}/src/response/mod.rs +0 -0
- {bustapi-0.13.8 → bustapi-0.13.9}/src/router/handlers.rs +0 -0
- {bustapi-0.13.8 → bustapi-0.13.9}/src/router/matching.rs +0 -0
- {bustapi-0.13.8 → bustapi-0.13.9}/src/router/middleware.rs +0 -0
- {bustapi-0.13.8 → bustapi-0.13.9}/src/router/mod.rs +0 -0
- {bustapi-0.13.8 → bustapi-0.13.9}/src/router/tests.rs +0 -0
- {bustapi-0.13.8 → bustapi-0.13.9}/src/server/handlers.rs +0 -0
- {bustapi-0.13.8 → bustapi-0.13.9}/src/server/mod.rs +0 -0
- {bustapi-0.13.8 → bustapi-0.13.9}/src/server/startup.rs +0 -0
- {bustapi-0.13.8 → bustapi-0.13.9}/src/server/stream.rs +0 -0
- {bustapi-0.13.8 → bustapi-0.13.9}/src/static_files.rs +0 -0
- {bustapi-0.13.8 → bustapi-0.13.9}/src/templating.rs +0 -0
- {bustapi-0.13.8 → bustapi-0.13.9}/src/watcher.rs +0 -0
- {bustapi-0.13.8 → bustapi-0.13.9}/src/websocket/config.rs +0 -0
- {bustapi-0.13.8 → bustapi-0.13.9}/src/websocket/mod.rs +0 -0
- {bustapi-0.13.8 → bustapi-0.13.9}/src/websocket/session.rs +0 -0
- {bustapi-0.13.8 → bustapi-0.13.9}/src/websocket/turbo.rs +0 -0
- {bustapi-0.13.8 → bustapi-0.13.9}/static/style.css +0 -0
- {bustapi-0.13.8 → bustapi-0.13.9}/templates/base.html +0 -0
- {bustapi-0.13.8 → bustapi-0.13.9}/templates/complex.html +0 -0
- {bustapi-0.13.8 → bustapi-0.13.9}/tests/docs_test_all.py +0 -0
- {bustapi-0.13.8 → bustapi-0.13.9}/tests/docs_test_api_reference.py +0 -0
- {bustapi-0.13.8 → bustapi-0.13.9}/tests/docs_test_installation.py +0 -0
- {bustapi-0.13.8 → bustapi-0.13.9}/tests/docs_test_quickstart.py +0 -0
- {bustapi-0.13.8 → bustapi-0.13.9}/tests/docs_test_simple.py +0 -0
- {bustapi-0.13.8 → bustapi-0.13.9}/tests/test_050_features.py +0 -0
- {bustapi-0.13.8 → bustapi-0.13.9}/tests/test_async_hooks.py +0 -0
- {bustapi-0.13.8 → bustapi-0.13.9}/tests/test_async_login.py +0 -0
- {bustapi-0.13.8 → bustapi-0.13.9}/tests/test_auth.py +0 -0
- {bustapi-0.13.8 → bustapi-0.13.9}/tests/test_discussion_21.py +0 -0
- {bustapi-0.13.8 → bustapi-0.13.9}/tests/test_discussion_22.py +0 -0
- {bustapi-0.13.8 → bustapi-0.13.9}/tests/test_discussion_28.py +0 -0
- {bustapi-0.13.8 → bustapi-0.13.9}/tests/test_examples.py +0 -0
- {bustapi-0.13.8 → bustapi-0.13.9}/tests/test_hot_reload.py +0 -0
- {bustapi-0.13.8 → bustapi-0.13.9}/tests/test_issue_18.py +0 -0
- {bustapi-0.13.8 → bustapi-0.13.9}/tests/test_issue_23.py +0 -0
- {bustapi-0.13.8 → bustapi-0.13.9}/tests/test_issue_24.py +0 -0
- {bustapi-0.13.8 → bustapi-0.13.9}/tests/test_jwt.py +0 -0
- {bustapi-0.13.8 → bustapi-0.13.9}/tests/test_jwt_cookies.py +0 -0
- {bustapi-0.13.8 → bustapi-0.13.9}/tests/test_login_manager.py +0 -0
- {bustapi-0.13.8 → bustapi-0.13.9}/tests/test_middleware.py +0 -0
- {bustapi-0.13.8 → bustapi-0.13.9}/tests/test_multiprocess_stability.py +0 -0
- {bustapi-0.13.8 → bustapi-0.13.9}/tests/test_new_examples.py +0 -0
- {bustapi-0.13.8 → bustapi-0.13.9}/tests/test_orm_conflict.py +0 -0
- {bustapi-0.13.8 → bustapi-0.13.9}/tests/test_path_standalone.py +0 -0
- {bustapi-0.13.8 → bustapi-0.13.9}/tests/test_path_validation.py +0 -0
- {bustapi-0.13.8 → bustapi-0.13.9}/tests/test_rate_limit_rust.py +0 -0
- {bustapi-0.13.8 → bustapi-0.13.9}/tests/test_safe.py +0 -0
- {bustapi-0.13.8 → bustapi-0.13.9}/tests/test_security_unit.py +0 -0
- {bustapi-0.13.8 → bustapi-0.13.9}/tests/test_sessions.py +0 -0
- {bustapi-0.13.8 → bustapi-0.13.9}/tests/test_zero_copy.py +0 -0
- {bustapi-0.13.8 → bustapi-0.13.9}/tests/verify_router.py +0 -0
|
@@ -2,6 +2,12 @@
|
|
|
2
2
|
|
|
3
3
|
All notable changes to this project will be documented here.
|
|
4
4
|
|
|
5
|
+
## [0.13.9] - 2026-06-12
|
|
6
|
+
|
|
7
|
+
### Fixed
|
|
8
|
+
- **Session Permanence**: Fixed a bug in `SessionMixin` where `session.permanent` was not serialized into the session payload, causing it to drop across requests. It now functions correctly as a persistent session setting.
|
|
9
|
+
- **Login Manager Remember**: `login_user(user, remember=True)` now automatically sets `session.permanent = True` as expected, tying persistent logins to the application's permanent session lifetime configuration.
|
|
10
|
+
|
|
5
11
|
## [0.13.8] - 2026-06-11
|
|
6
12
|
|
|
7
13
|
### Added
|
|
@@ -432,7 +432,7 @@ checksum = "72f5acc6cb2ba439de613abc23857ec3d78374d8ed5ac84e9d11336e87da8649"
|
|
|
432
432
|
|
|
433
433
|
[[package]]
|
|
434
434
|
name = "bustapi_core"
|
|
435
|
-
version = "0.13.
|
|
435
|
+
version = "0.13.9"
|
|
436
436
|
dependencies = [
|
|
437
437
|
"actix-files",
|
|
438
438
|
"actix-http",
|
|
@@ -1452,9 +1452,9 @@ checksum = "2f926ade0c4e170215ae43342bf13b9310a437609c81f29f86c5df6657582ef9"
|
|
|
1452
1452
|
|
|
1453
1453
|
[[package]]
|
|
1454
1454
|
name = "memchr"
|
|
1455
|
-
version = "2.8.
|
|
1455
|
+
version = "2.8.2"
|
|
1456
1456
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
1457
|
-
checksum = "
|
|
1457
|
+
checksum = "88904434abc2901f197fe8cc55f0445e7ded921dba5911dad2e2b39b48e663c4"
|
|
1458
1458
|
|
|
1459
1459
|
[[package]]
|
|
1460
1460
|
name = "memo-map"
|
|
@@ -2088,9 +2088,9 @@ checksum = "0c790de23124f9ab44544d7ac05d60440adc586479ce501c1d6d7da3cd8c9cf5"
|
|
|
2088
2088
|
|
|
2089
2089
|
[[package]]
|
|
2090
2090
|
name = "smallvec"
|
|
2091
|
-
version = "1.15.
|
|
2091
|
+
version = "1.15.2"
|
|
2092
2092
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
2093
|
-
checksum = "
|
|
2093
|
+
checksum = "8ed6a63f02c8539c91a8685a86f4099661ba3da017932f6ebbea6de3f0fa7c90"
|
|
2094
2094
|
|
|
2095
2095
|
[[package]]
|
|
2096
2096
|
name = "socket2"
|
|
@@ -2,6 +2,12 @@
|
|
|
2
2
|
|
|
3
3
|
All notable changes to this project will be documented here.
|
|
4
4
|
|
|
5
|
+
## [0.13.9] - 2026-06-12
|
|
6
|
+
|
|
7
|
+
### Fixed
|
|
8
|
+
- **Session Permanence**: Fixed a bug in `SessionMixin` where `session.permanent` was not serialized into the session payload, causing it to drop across requests. It now functions correctly as a persistent session setting.
|
|
9
|
+
- **Login Manager Remember**: `login_user(user, remember=True)` now automatically sets `session.permanent = True` as expected, tying persistent logins to the application's permanent session lifetime configuration.
|
|
10
|
+
|
|
5
11
|
## [0.13.8] - 2026-06-11
|
|
6
12
|
|
|
7
13
|
### Added
|
|
@@ -142,6 +142,8 @@ def login_user(user, remember: bool = False, fresh: bool = True) -> bool:
|
|
|
142
142
|
session[session_key] = user_id
|
|
143
143
|
session[fresh_key] = fresh
|
|
144
144
|
session[remember_key] = remember
|
|
145
|
+
if remember:
|
|
146
|
+
session.permanent = True
|
|
145
147
|
|
|
146
148
|
# Update request
|
|
147
149
|
request._login_user = user
|
|
@@ -15,15 +15,14 @@ class SessionMixin(dict):
|
|
|
15
15
|
def __init__(self, initial=None):
|
|
16
16
|
super().__init__(initial or {})
|
|
17
17
|
self.modified = False
|
|
18
|
-
self._permanent = False
|
|
19
18
|
|
|
20
19
|
@property
|
|
21
20
|
def permanent(self) -> bool:
|
|
22
|
-
return self._permanent
|
|
21
|
+
return self.get("_permanent", False)
|
|
23
22
|
|
|
24
23
|
@permanent.setter
|
|
25
24
|
def permanent(self, value: bool) -> None:
|
|
26
|
-
self
|
|
25
|
+
self["_permanent"] = bool(value)
|
|
27
26
|
self.modified = True
|
|
28
27
|
|
|
29
28
|
def __setitem__(self, key, value):
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|