workers-runtime-sdk 1.8.0__tar.gz → 1.8.2__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.
- {workers_runtime_sdk-1.8.0 → workers_runtime_sdk-1.8.2}/CHANGELOG.md +17 -0
- {workers_runtime_sdk-1.8.0 → workers_runtime_sdk-1.8.2}/PKG-INFO +1 -1
- {workers_runtime_sdk-1.8.0 → workers_runtime_sdk-1.8.2}/pyproject.toml +1 -1
- {workers_runtime_sdk-1.8.0 → workers_runtime_sdk-1.8.2}/src/workers/utils.py +8 -10
- {workers_runtime_sdk-1.8.0 → workers_runtime_sdk-1.8.2}/tests/conftest.py +1 -1
- workers_runtime_sdk-1.8.2/tests/test_flask.py +26 -0
- workers_runtime_sdk-1.8.2/tests/web-frameworks-test/flask-tests/pyproject.toml +5 -0
- workers_runtime_sdk-1.8.2/tests/web-frameworks-test/flask-tests/src/test_response.py +13 -0
- workers_runtime_sdk-1.8.2/tests/web-frameworks-test/flask-tests/src/worker.py +89 -0
- workers_runtime_sdk-1.8.2/tests/web-frameworks-test/flask-tests/wrangler.jsonc +6 -0
- {workers_runtime_sdk-1.8.0 → workers_runtime_sdk-1.8.2}/uv.lock +1 -1
- {workers_runtime_sdk-1.8.0 → workers_runtime_sdk-1.8.2}/.gitignore +0 -0
- {workers_runtime_sdk-1.8.0 → workers_runtime_sdk-1.8.2}/AGENTS.md +0 -0
- {workers_runtime_sdk-1.8.0 → workers_runtime_sdk-1.8.2}/README.md +0 -0
- {workers_runtime_sdk-1.8.0 → workers_runtime_sdk-1.8.2}/src/_cloudflare_compat_flags.pyi +0 -0
- {workers_runtime_sdk-1.8.0 → workers_runtime_sdk-1.8.2}/src/_pyodide_entrypoint_helper.pyi +0 -0
- {workers_runtime_sdk-1.8.0 → workers_runtime_sdk-1.8.2}/src/_workers_sdk_entropy_import_context.py +0 -0
- {workers_runtime_sdk-1.8.0 → workers_runtime_sdk-1.8.2}/src/_workers_sdk_package_patches.py +0 -0
- {workers_runtime_sdk-1.8.0 → workers_runtime_sdk-1.8.2}/src/_workers_sdk_patch_loader.pth +0 -0
- {workers_runtime_sdk-1.8.0 → workers_runtime_sdk-1.8.2}/src/_workers_sdk_patch_loader.py +0 -0
- {workers_runtime_sdk-1.8.0 → workers_runtime_sdk-1.8.2}/src/asgi.py +0 -0
- {workers_runtime_sdk-1.8.0 → workers_runtime_sdk-1.8.2}/src/workers/__init__.py +0 -0
- {workers_runtime_sdk-1.8.0 → workers_runtime_sdk-1.8.2}/src/workers/asgi.py +0 -0
- {workers_runtime_sdk-1.8.0 → workers_runtime_sdk-1.8.2}/src/workers/blob.py +0 -0
- {workers_runtime_sdk-1.8.0 → workers_runtime_sdk-1.8.2}/src/workers/entrypoints.py +0 -0
- {workers_runtime_sdk-1.8.0 → workers_runtime_sdk-1.8.2}/src/workers/fetch.py +0 -0
- {workers_runtime_sdk-1.8.0 → workers_runtime_sdk-1.8.2}/src/workers/formdata.py +0 -0
- {workers_runtime_sdk-1.8.0 → workers_runtime_sdk-1.8.2}/src/workers/py.typed +0 -0
- {workers_runtime_sdk-1.8.0 → workers_runtime_sdk-1.8.2}/src/workers/request.py +0 -0
- {workers_runtime_sdk-1.8.0 → workers_runtime_sdk-1.8.2}/src/workers/response.py +0 -0
- {workers_runtime_sdk-1.8.0 → workers_runtime_sdk-1.8.2}/src/workers/rpc.py +0 -0
- {workers_runtime_sdk-1.8.0 → workers_runtime_sdk-1.8.2}/src/workers/types.py +0 -0
- {workers_runtime_sdk-1.8.0 → workers_runtime_sdk-1.8.2}/src/workers/workflows.py +0 -0
- {workers_runtime_sdk-1.8.0 → workers_runtime_sdk-1.8.2}/src/workers/wsgi.py +0 -0
- {workers_runtime_sdk-1.8.0 → workers_runtime_sdk-1.8.2}/tests/bindings-test/public/data.json +0 -0
- {workers_runtime_sdk-1.8.0 → workers_runtime_sdk-1.8.2}/tests/bindings-test/public/hello.txt +0 -0
- {workers_runtime_sdk-1.8.0 → workers_runtime_sdk-1.8.2}/tests/bindings-test/pyproject.toml +0 -0
- {workers_runtime_sdk-1.8.0 → workers_runtime_sdk-1.8.2}/tests/bindings-test/src/conftest.py +0 -0
- {workers_runtime_sdk-1.8.0 → workers_runtime_sdk-1.8.2}/tests/bindings-test/src/test_analytics_engine.py +0 -0
- {workers_runtime_sdk-1.8.0 → workers_runtime_sdk-1.8.2}/tests/bindings-test/src/test_assets.py +0 -0
- {workers_runtime_sdk-1.8.0 → workers_runtime_sdk-1.8.2}/tests/bindings-test/src/test_d1.py +0 -0
- {workers_runtime_sdk-1.8.0 → workers_runtime_sdk-1.8.2}/tests/bindings-test/src/test_do.py +0 -0
- {workers_runtime_sdk-1.8.0 → workers_runtime_sdk-1.8.2}/tests/bindings-test/src/test_hyperdrive_mysql.py +0 -0
- {workers_runtime_sdk-1.8.0 → workers_runtime_sdk-1.8.2}/tests/bindings-test/src/test_hyperdrive_postgresql.py +0 -0
- {workers_runtime_sdk-1.8.0 → workers_runtime_sdk-1.8.2}/tests/bindings-test/src/test_images.py +0 -0
- {workers_runtime_sdk-1.8.0 → workers_runtime_sdk-1.8.2}/tests/bindings-test/src/test_kv.py +0 -0
- {workers_runtime_sdk-1.8.0 → workers_runtime_sdk-1.8.2}/tests/bindings-test/src/test_mtls.py +0 -0
- {workers_runtime_sdk-1.8.0 → workers_runtime_sdk-1.8.2}/tests/bindings-test/src/test_queue.py +0 -0
- {workers_runtime_sdk-1.8.0 → workers_runtime_sdk-1.8.2}/tests/bindings-test/src/test_r2.py +0 -0
- {workers_runtime_sdk-1.8.0 → workers_runtime_sdk-1.8.2}/tests/bindings-test/src/test_ratelimit.py +0 -0
- {workers_runtime_sdk-1.8.0 → workers_runtime_sdk-1.8.2}/tests/bindings-test/src/test_vectorize.py +0 -0
- {workers_runtime_sdk-1.8.0 → workers_runtime_sdk-1.8.2}/tests/bindings-test/src/test_version_metadata.py +0 -0
- {workers_runtime_sdk-1.8.0 → workers_runtime_sdk-1.8.2}/tests/bindings-test/src/test_workflow.py +0 -0
- {workers_runtime_sdk-1.8.0 → workers_runtime_sdk-1.8.2}/tests/bindings-test/src/worker.py +0 -0
- {workers_runtime_sdk-1.8.0 → workers_runtime_sdk-1.8.2}/tests/bindings-test/src/worker_durable_object.py +0 -0
- {workers_runtime_sdk-1.8.0 → workers_runtime_sdk-1.8.2}/tests/bindings-test/src/worker_workflow.py +0 -0
- {workers_runtime_sdk-1.8.0 → workers_runtime_sdk-1.8.2}/tests/bindings-test/wrangler.jsonc +0 -0
- {workers_runtime_sdk-1.8.0 → workers_runtime_sdk-1.8.2}/tests/test_bindings.py +0 -0
- {workers_runtime_sdk-1.8.0 → workers_runtime_sdk-1.8.2}/tests/test_fastapi.py +0 -0
- {workers_runtime_sdk-1.8.0 → workers_runtime_sdk-1.8.2}/tests/test_in_workerd.py +0 -0
- {workers_runtime_sdk-1.8.0 → workers_runtime_sdk-1.8.2}/tests/test_web_frameworks.py +0 -0
- {workers_runtime_sdk-1.8.0 → workers_runtime_sdk-1.8.2}/tests/web-frameworks-test/django-async/pyproject.toml +0 -0
- {workers_runtime_sdk-1.8.0 → workers_runtime_sdk-1.8.2}/tests/web-frameworks-test/django-async/src/_client.py +0 -0
- {workers_runtime_sdk-1.8.0 → workers_runtime_sdk-1.8.2}/tests/web-frameworks-test/django-async/src/conftest.py +0 -0
- {workers_runtime_sdk-1.8.0 → workers_runtime_sdk-1.8.2}/tests/web-frameworks-test/django-async/src/django_app/__init__.py +0 -0
- {workers_runtime_sdk-1.8.0 → workers_runtime_sdk-1.8.2}/tests/web-frameworks-test/django-async/src/django_app/api_urls.py +0 -0
- {workers_runtime_sdk-1.8.0 → workers_runtime_sdk-1.8.2}/tests/web-frameworks-test/django-async/src/django_app/auth_backend.py +0 -0
- {workers_runtime_sdk-1.8.0 → workers_runtime_sdk-1.8.2}/tests/web-frameworks-test/django-async/src/django_app/drf_auth.py +0 -0
- {workers_runtime_sdk-1.8.0 → workers_runtime_sdk-1.8.2}/tests/web-frameworks-test/django-async/src/django_app/drf_serializers.py +0 -0
- {workers_runtime_sdk-1.8.0 → workers_runtime_sdk-1.8.2}/tests/web-frameworks-test/django-async/src/django_app/drf_throttling.py +0 -0
- {workers_runtime_sdk-1.8.0 → workers_runtime_sdk-1.8.2}/tests/web-frameworks-test/django-async/src/django_app/drf_views.py +0 -0
- {workers_runtime_sdk-1.8.0 → workers_runtime_sdk-1.8.2}/tests/web-frameworks-test/django-async/src/django_app/forms.py +0 -0
- {workers_runtime_sdk-1.8.0 → workers_runtime_sdk-1.8.2}/tests/web-frameworks-test/django-async/src/django_app/middleware.py +0 -0
- {workers_runtime_sdk-1.8.0 → workers_runtime_sdk-1.8.2}/tests/web-frameworks-test/django-async/src/django_app/templatetags/__init__.py +0 -0
- {workers_runtime_sdk-1.8.0 → workers_runtime_sdk-1.8.2}/tests/web-frameworks-test/django-async/src/django_app/templatetags/custom_tags.py +0 -0
- {workers_runtime_sdk-1.8.0 → workers_runtime_sdk-1.8.2}/tests/web-frameworks-test/django-async/src/django_app/urls.py +0 -0
- {workers_runtime_sdk-1.8.0 → workers_runtime_sdk-1.8.2}/tests/web-frameworks-test/django-async/src/django_app/views.py +0 -0
- {workers_runtime_sdk-1.8.0 → workers_runtime_sdk-1.8.2}/tests/web-frameworks-test/django-async/src/templates/base.html +0 -0
- {workers_runtime_sdk-1.8.0 → workers_runtime_sdk-1.8.2}/tests/web-frameworks-test/django-async/src/templates/context_test.html +0 -0
- {workers_runtime_sdk-1.8.0 → workers_runtime_sdk-1.8.2}/tests/web-frameworks-test/django-async/src/templates/csrf_form.html +0 -0
- {workers_runtime_sdk-1.8.0 → workers_runtime_sdk-1.8.2}/tests/web-frameworks-test/django-async/src/templates/hello.html +0 -0
- {workers_runtime_sdk-1.8.0 → workers_runtime_sdk-1.8.2}/tests/web-frameworks-test/django-async/src/test_async_utilities.py +0 -0
- {workers_runtime_sdk-1.8.0 → workers_runtime_sdk-1.8.2}/tests/web-frameworks-test/django-async/src/test_auth.py +0 -0
- {workers_runtime_sdk-1.8.0 → workers_runtime_sdk-1.8.2}/tests/web-frameworks-test/django-async/src/test_caching.py +0 -0
- {workers_runtime_sdk-1.8.0 → workers_runtime_sdk-1.8.2}/tests/web-frameworks-test/django-async/src/test_cors.py +0 -0
- {workers_runtime_sdk-1.8.0 → workers_runtime_sdk-1.8.2}/tests/web-frameworks-test/django-async/src/test_csrf.py +0 -0
- {workers_runtime_sdk-1.8.0 → workers_runtime_sdk-1.8.2}/tests/web-frameworks-test/django-async/src/test_drf_auth_permissions.py +0 -0
- {workers_runtime_sdk-1.8.0 → workers_runtime_sdk-1.8.2}/tests/web-frameworks-test/django-async/src/test_drf_content_negotiation.py +0 -0
- {workers_runtime_sdk-1.8.0 → workers_runtime_sdk-1.8.2}/tests/web-frameworks-test/django-async/src/test_drf_serializers.py +0 -0
- {workers_runtime_sdk-1.8.0 → workers_runtime_sdk-1.8.2}/tests/web-frameworks-test/django-async/src/test_drf_throttling.py +0 -0
- {workers_runtime_sdk-1.8.0 → workers_runtime_sdk-1.8.2}/tests/web-frameworks-test/django-async/src/test_drf_versioning.py +0 -0
- {workers_runtime_sdk-1.8.0 → workers_runtime_sdk-1.8.2}/tests/web-frameworks-test/django-async/src/test_drf_views.py +0 -0
- {workers_runtime_sdk-1.8.0 → workers_runtime_sdk-1.8.2}/tests/web-frameworks-test/django-async/src/test_error_handling.py +0 -0
- {workers_runtime_sdk-1.8.0 → workers_runtime_sdk-1.8.2}/tests/web-frameworks-test/django-async/src/test_file_uploads.py +0 -0
- {workers_runtime_sdk-1.8.0 → workers_runtime_sdk-1.8.2}/tests/web-frameworks-test/django-async/src/test_forms.py +0 -0
- {workers_runtime_sdk-1.8.0 → workers_runtime_sdk-1.8.2}/tests/web-frameworks-test/django-async/src/test_middleware.py +0 -0
- {workers_runtime_sdk-1.8.0 → workers_runtime_sdk-1.8.2}/tests/web-frameworks-test/django-async/src/test_pagination.py +0 -0
- {workers_runtime_sdk-1.8.0 → workers_runtime_sdk-1.8.2}/tests/web-frameworks-test/django-async/src/test_request_response.py +0 -0
- {workers_runtime_sdk-1.8.0 → workers_runtime_sdk-1.8.2}/tests/web-frameworks-test/django-async/src/test_sessions.py +0 -0
- {workers_runtime_sdk-1.8.0 → workers_runtime_sdk-1.8.2}/tests/web-frameworks-test/django-async/src/test_signals.py +0 -0
- {workers_runtime_sdk-1.8.0 → workers_runtime_sdk-1.8.2}/tests/web-frameworks-test/django-async/src/test_streaming.py +0 -0
- {workers_runtime_sdk-1.8.0 → workers_runtime_sdk-1.8.2}/tests/web-frameworks-test/django-async/src/test_templates.py +0 -0
- {workers_runtime_sdk-1.8.0 → workers_runtime_sdk-1.8.2}/tests/web-frameworks-test/django-async/src/test_url_routing.py +0 -0
- {workers_runtime_sdk-1.8.0 → workers_runtime_sdk-1.8.2}/tests/web-frameworks-test/django-async/src/test_views_basic.py +0 -0
- {workers_runtime_sdk-1.8.0 → workers_runtime_sdk-1.8.2}/tests/web-frameworks-test/django-async/src/worker.py +0 -0
- {workers_runtime_sdk-1.8.0 → workers_runtime_sdk-1.8.2}/tests/web-frameworks-test/django-async/wrangler.jsonc +0 -0
- {workers_runtime_sdk-1.8.0 → workers_runtime_sdk-1.8.2}/tests/web-frameworks-test/fastapi-tests/public/data.json +0 -0
- {workers_runtime_sdk-1.8.0 → workers_runtime_sdk-1.8.2}/tests/web-frameworks-test/fastapi-tests/public/index.html +0 -0
- {workers_runtime_sdk-1.8.0 → workers_runtime_sdk-1.8.2}/tests/web-frameworks-test/fastapi-tests/public/style.css +0 -0
- {workers_runtime_sdk-1.8.0 → workers_runtime_sdk-1.8.2}/tests/web-frameworks-test/fastapi-tests/pyproject.toml +0 -0
- {workers_runtime_sdk-1.8.0 → workers_runtime_sdk-1.8.2}/tests/web-frameworks-test/fastapi-tests/src/_client.py +0 -0
- {workers_runtime_sdk-1.8.0 → workers_runtime_sdk-1.8.2}/tests/web-frameworks-test/fastapi-tests/src/conftest.py +0 -0
- {workers_runtime_sdk-1.8.0 → workers_runtime_sdk-1.8.2}/tests/web-frameworks-test/fastapi-tests/src/static/app.css +0 -0
- {workers_runtime_sdk-1.8.0 → workers_runtime_sdk-1.8.2}/tests/web-frameworks-test/fastapi-tests/src/static/data.json +0 -0
- {workers_runtime_sdk-1.8.0 → workers_runtime_sdk-1.8.2}/tests/web-frameworks-test/fastapi-tests/src/static/hello.txt +0 -0
- {workers_runtime_sdk-1.8.0 → workers_runtime_sdk-1.8.2}/tests/web-frameworks-test/fastapi-tests/src/static/index.html +0 -0
- {workers_runtime_sdk-1.8.0 → workers_runtime_sdk-1.8.2}/tests/web-frameworks-test/fastapi-tests/src/test_assets.py +0 -0
- {workers_runtime_sdk-1.8.0 → workers_runtime_sdk-1.8.2}/tests/web-frameworks-test/fastapi-tests/src/test_error_handling.py +0 -0
- {workers_runtime_sdk-1.8.0 → workers_runtime_sdk-1.8.2}/tests/web-frameworks-test/fastapi-tests/src/test_platform_boundaries.py +0 -0
- {workers_runtime_sdk-1.8.0 → workers_runtime_sdk-1.8.2}/tests/web-frameworks-test/fastapi-tests/src/test_platform_io.py +0 -0
- {workers_runtime_sdk-1.8.0 → workers_runtime_sdk-1.8.2}/tests/web-frameworks-test/fastapi-tests/src/test_platform_lifecycle.py +0 -0
- {workers_runtime_sdk-1.8.0 → workers_runtime_sdk-1.8.2}/tests/web-frameworks-test/fastapi-tests/src/test_response_types.py +0 -0
- {workers_runtime_sdk-1.8.0 → workers_runtime_sdk-1.8.2}/tests/web-frameworks-test/fastapi-tests/src/test_routing.py +0 -0
- {workers_runtime_sdk-1.8.0 → workers_runtime_sdk-1.8.2}/tests/web-frameworks-test/fastapi-tests/src/test_staticfiles.py +0 -0
- {workers_runtime_sdk-1.8.0 → workers_runtime_sdk-1.8.2}/tests/web-frameworks-test/fastapi-tests/src/test_sync_handlers.py +0 -0
- {workers_runtime_sdk-1.8.0 → workers_runtime_sdk-1.8.2}/tests/web-frameworks-test/fastapi-tests/src/test_websocket.py +0 -0
- {workers_runtime_sdk-1.8.0 → workers_runtime_sdk-1.8.2}/tests/web-frameworks-test/fastapi-tests/src/worker.py +0 -0
- {workers_runtime_sdk-1.8.0 → workers_runtime_sdk-1.8.2}/tests/web-frameworks-test/fastapi-tests/wrangler.jsonc +0 -0
- {workers_runtime_sdk-1.8.0 → workers_runtime_sdk-1.8.2}/tests/workerd-test/asgi/asgi.wd-test +0 -0
- {workers_runtime_sdk-1.8.0 → workers_runtime_sdk-1.8.2}/tests/workerd-test/asgi/pyproject.toml +0 -0
- {workers_runtime_sdk-1.8.0 → workers_runtime_sdk-1.8.2}/tests/workerd-test/asgi/tests/test_asgi.py +0 -0
- {workers_runtime_sdk-1.8.0 → workers_runtime_sdk-1.8.2}/tests/workerd-test/asgi/worker.py +0 -0
- {workers_runtime_sdk-1.8.0 → workers_runtime_sdk-1.8.2}/tests/workerd-test/asgi/wrangler.jsonc +0 -0
- {workers_runtime_sdk-1.8.0 → workers_runtime_sdk-1.8.2}/tests/workerd-test/asgi-ws-disconnect/asgi-ws-disconnect.wd-test +0 -0
- {workers_runtime_sdk-1.8.0 → workers_runtime_sdk-1.8.2}/tests/workerd-test/asgi-ws-disconnect/pyproject.toml +0 -0
- {workers_runtime_sdk-1.8.0 → workers_runtime_sdk-1.8.2}/tests/workerd-test/asgi-ws-disconnect/tests/test_ws_disconnect.py +0 -0
- {workers_runtime_sdk-1.8.0 → workers_runtime_sdk-1.8.2}/tests/workerd-test/asgi-ws-disconnect/worker.py +0 -0
- {workers_runtime_sdk-1.8.0 → workers_runtime_sdk-1.8.2}/tests/workerd-test/asgi-ws-disconnect/wrangler.jsonc +0 -0
- {workers_runtime_sdk-1.8.0 → workers_runtime_sdk-1.8.2}/tests/workerd-test/durable-object/durable-object.wd-test +0 -0
- {workers_runtime_sdk-1.8.0 → workers_runtime_sdk-1.8.2}/tests/workerd-test/durable-object/pyproject.toml +0 -0
- {workers_runtime_sdk-1.8.0 → workers_runtime_sdk-1.8.2}/tests/workerd-test/durable-object/worker.py +0 -0
- {workers_runtime_sdk-1.8.0 → workers_runtime_sdk-1.8.2}/tests/workerd-test/durable-object/wrangler.jsonc +0 -0
- {workers_runtime_sdk-1.8.0 → workers_runtime_sdk-1.8.2}/tests/workerd-test/durable-object-abort/durable-object-abort.wd-test +0 -0
- {workers_runtime_sdk-1.8.0 → workers_runtime_sdk-1.8.2}/tests/workerd-test/durable-object-abort/pyproject.toml +0 -0
- {workers_runtime_sdk-1.8.0 → workers_runtime_sdk-1.8.2}/tests/workerd-test/durable-object-abort/worker.py +0 -0
- {workers_runtime_sdk-1.8.0 → workers_runtime_sdk-1.8.2}/tests/workerd-test/durable-object-abort/wrangler.jsonc +0 -0
- {workers_runtime_sdk-1.8.0 → workers_runtime_sdk-1.8.2}/tests/workerd-test/durable-object-inheritance/durable-object-inheritance.wd-test +0 -0
- {workers_runtime_sdk-1.8.0 → workers_runtime_sdk-1.8.2}/tests/workerd-test/durable-object-inheritance/pyproject.toml +0 -0
- {workers_runtime_sdk-1.8.0 → workers_runtime_sdk-1.8.2}/tests/workerd-test/durable-object-inheritance/worker.py +0 -0
- {workers_runtime_sdk-1.8.0 → workers_runtime_sdk-1.8.2}/tests/workerd-test/durable-object-inheritance/wrangler.jsonc +0 -0
- {workers_runtime_sdk-1.8.0 → workers_runtime_sdk-1.8.2}/tests/workerd-test/durable-object-websocket/durable-object-websocket.wd-test +0 -0
- {workers_runtime_sdk-1.8.0 → workers_runtime_sdk-1.8.2}/tests/workerd-test/durable-object-websocket/pyproject.toml +0 -0
- {workers_runtime_sdk-1.8.0 → workers_runtime_sdk-1.8.2}/tests/workerd-test/durable-object-websocket/tester.js +0 -0
- {workers_runtime_sdk-1.8.0 → workers_runtime_sdk-1.8.2}/tests/workerd-test/durable-object-websocket/worker.py +0 -0
- {workers_runtime_sdk-1.8.0 → workers_runtime_sdk-1.8.2}/tests/workerd-test/durable-object-websocket/wrangler.jsonc +0 -0
- {workers_runtime_sdk-1.8.0 → workers_runtime_sdk-1.8.2}/tests/workerd-test/entropy-patches/entropy-patches.wd-test +0 -0
- {workers_runtime_sdk-1.8.0 → workers_runtime_sdk-1.8.2}/tests/workerd-test/entropy-patches/pyproject.toml +0 -0
- {workers_runtime_sdk-1.8.0 → workers_runtime_sdk-1.8.2}/tests/workerd-test/entropy-patches/tests/test_aiohttp_websocket.py +0 -0
- {workers_runtime_sdk-1.8.0 → workers_runtime_sdk-1.8.2}/tests/workerd-test/entropy-patches/tests/test_langsmith.py +0 -0
- {workers_runtime_sdk-1.8.0 → workers_runtime_sdk-1.8.2}/tests/workerd-test/entropy-patches/tests/test_numpy.py +0 -0
- {workers_runtime_sdk-1.8.0 → workers_runtime_sdk-1.8.2}/tests/workerd-test/entropy-patches/tests/test_pydantic.py +0 -0
- {workers_runtime_sdk-1.8.0 → workers_runtime_sdk-1.8.2}/tests/workerd-test/entropy-patches/tests/test_rust_packages.py +0 -0
- {workers_runtime_sdk-1.8.0 → workers_runtime_sdk-1.8.2}/tests/workerd-test/entropy-patches/tests/test_ssl_avoidance.py +0 -0
- {workers_runtime_sdk-1.8.0 → workers_runtime_sdk-1.8.2}/tests/workerd-test/entropy-patches/worker.py +0 -0
- {workers_runtime_sdk-1.8.0 → workers_runtime_sdk-1.8.2}/tests/workerd-test/entropy-patches/wrangler.jsonc +0 -0
- {workers_runtime_sdk-1.8.0 → workers_runtime_sdk-1.8.2}/tests/workerd-test/python-rpc/pyproject.toml +0 -0
- {workers_runtime_sdk-1.8.0 → workers_runtime_sdk-1.8.2}/tests/workerd-test/python-rpc/python-rpc.wd-test +0 -0
- {workers_runtime_sdk-1.8.0 → workers_runtime_sdk-1.8.2}/tests/workerd-test/python-rpc/worker.js +0 -0
- {workers_runtime_sdk-1.8.0 → workers_runtime_sdk-1.8.2}/tests/workerd-test/python-rpc/worker.py +0 -0
- {workers_runtime_sdk-1.8.0 → workers_runtime_sdk-1.8.2}/tests/workerd-test/python-rpc/wrangler.jsonc +0 -0
- {workers_runtime_sdk-1.8.0 → workers_runtime_sdk-1.8.2}/tests/workerd-test/sdk/pyproject.toml +0 -0
- {workers_runtime_sdk-1.8.0 → workers_runtime_sdk-1.8.2}/tests/workerd-test/sdk/sdk.wd-test +0 -0
- {workers_runtime_sdk-1.8.0 → workers_runtime_sdk-1.8.2}/tests/workerd-test/sdk/server.py +0 -0
- {workers_runtime_sdk-1.8.0 → workers_runtime_sdk-1.8.2}/tests/workerd-test/sdk/tests/test_sdk.py +0 -0
- {workers_runtime_sdk-1.8.0 → workers_runtime_sdk-1.8.2}/tests/workerd-test/sdk/worker.py +0 -0
- {workers_runtime_sdk-1.8.0 → workers_runtime_sdk-1.8.2}/tests/workerd-test/sdk/wrangler.jsonc +0 -0
- {workers_runtime_sdk-1.8.0 → workers_runtime_sdk-1.8.2}/tests/workerd-test/wsgi/pyproject.toml +0 -0
- {workers_runtime_sdk-1.8.0 → workers_runtime_sdk-1.8.2}/tests/workerd-test/wsgi/tests/test_wsgi.py +0 -0
- {workers_runtime_sdk-1.8.0 → workers_runtime_sdk-1.8.2}/tests/workerd-test/wsgi/worker.py +0 -0
- {workers_runtime_sdk-1.8.0 → workers_runtime_sdk-1.8.2}/tests/workerd-test/wsgi/wrangler.jsonc +0 -0
- {workers_runtime_sdk-1.8.0 → workers_runtime_sdk-1.8.2}/tests/workerd-test/wsgi/wsgi.wd-test +0 -0
|
@@ -2,6 +2,23 @@
|
|
|
2
2
|
|
|
3
3
|
<!-- version list -->
|
|
4
4
|
|
|
5
|
+
## v1.8.2 (2026-08-31)
|
|
6
|
+
|
|
7
|
+
### Bug Fixes
|
|
8
|
+
|
|
9
|
+
- **cli**: Update compat flag and enable date for python 3.14
|
|
10
|
+
([#235](https://github.com/cloudflare/workers-py/pull/235),
|
|
11
|
+
[`0ece5a2`](https://github.com/cloudflare/workers-py/commit/0ece5a2589513fd7f1d085bb33a4b0c1217e345a))
|
|
12
|
+
|
|
13
|
+
|
|
14
|
+
## v1.8.1 (2026-08-28)
|
|
15
|
+
|
|
16
|
+
### Bug Fixes
|
|
17
|
+
|
|
18
|
+
- Make Headers subclass Mapping ([#233](https://github.com/cloudflare/workers-py/pull/233),
|
|
19
|
+
[`2e0a47f`](https://github.com/cloudflare/workers-py/commit/2e0a47f7aca2091a0396fcd8b04c03979326698a))
|
|
20
|
+
|
|
21
|
+
|
|
5
22
|
## v1.8.0 (2026-08-28)
|
|
6
23
|
|
|
7
24
|
### Bug Fixes
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.5
|
|
2
2
|
Name: workers-runtime-sdk
|
|
3
|
-
Version: 1.8.
|
|
3
|
+
Version: 1.8.2
|
|
4
4
|
Summary: Python SDK for Cloudflare Workers
|
|
5
5
|
Project-URL: Homepage, https://github.com/cloudflare/workers-py
|
|
6
6
|
Project-URL: Bug Tracker, https://github.com/cloudflare/workers-py/issues
|
|
@@ -1,4 +1,5 @@
|
|
|
1
|
-
|
|
1
|
+
import http.client
|
|
2
|
+
from collections.abc import Iterator, Mapping, Sequence
|
|
2
3
|
from contextlib import contextmanager
|
|
3
4
|
from typing import Any
|
|
4
5
|
|
|
@@ -201,22 +202,19 @@ def _to_js_headers(headers):
|
|
|
201
202
|
raise TypeError("Received unexpected type for headers argument")
|
|
202
203
|
|
|
203
204
|
|
|
205
|
+
class HTTPMessageMapping(http.client.HTTPMessage, Mapping):
|
|
206
|
+
pass
|
|
207
|
+
|
|
208
|
+
|
|
204
209
|
def _js_headers_to_http_message(
|
|
205
210
|
js_headers: dict[str, str],
|
|
206
211
|
):
|
|
207
|
-
# `http.client` is imported here because it costs a lot of CPU time when imported at the
|
|
208
|
-
# top-level. At least it does when we do so in our validator tests, doesn't seem to cause
|
|
209
|
-
# trouble in production. So as a workaround we do the import here.
|
|
210
|
-
#
|
|
211
|
-
# TODO(later): when dedicated snapshots are default we can move this import to the top-level.
|
|
212
|
-
import http.client
|
|
213
|
-
|
|
214
212
|
# Newer Pyodide versions already expose headers as an http.client.HTTPMessage,
|
|
215
213
|
# in which case there is nothing to convert.
|
|
216
|
-
if isinstance(js_headers,
|
|
214
|
+
if isinstance(js_headers, HTTPMessageMapping):
|
|
217
215
|
return js_headers
|
|
218
216
|
|
|
219
|
-
result =
|
|
217
|
+
result = HTTPMessageMapping()
|
|
220
218
|
if not get_compat_flag("python_request_headers_preserve_commas"):
|
|
221
219
|
for key, val in js_headers:
|
|
222
220
|
result[key] = val.strip()
|
|
@@ -71,7 +71,7 @@ COMPAT_CONFIGS: list[CompatConfig] = [
|
|
|
71
71
|
compat_date="2026-07-01",
|
|
72
72
|
python_version="3.14",
|
|
73
73
|
# TODO: remove these when 3.14 is stable, and enabled by date
|
|
74
|
-
extra_compat_flags=["
|
|
74
|
+
extra_compat_flags=["python_workers_314", "experimental"],
|
|
75
75
|
),
|
|
76
76
|
]
|
|
77
77
|
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
"""Tests for Flask running against a live pywrangler dev server."""
|
|
2
|
+
|
|
3
|
+
from pathlib import Path
|
|
4
|
+
|
|
5
|
+
import pytest
|
|
6
|
+
from conftest import COMPAT_CONFIGS, CompatConfig, register_in_worker_suites
|
|
7
|
+
|
|
8
|
+
WEB_FRAMEWORKS_DIR = Path(__file__).parent / "web-frameworks-test" / "flask-tests"
|
|
9
|
+
WEB_FRAMEWORKS_SRC_DIR = WEB_FRAMEWORKS_DIR / "src"
|
|
10
|
+
|
|
11
|
+
|
|
12
|
+
@pytest.fixture(scope="module")
|
|
13
|
+
def worker_project_dir() -> Path:
|
|
14
|
+
return WEB_FRAMEWORKS_DIR
|
|
15
|
+
|
|
16
|
+
|
|
17
|
+
@pytest.fixture(
|
|
18
|
+
scope="module",
|
|
19
|
+
params=COMPAT_CONFIGS,
|
|
20
|
+
ids=[config.python_version for config in COMPAT_CONFIGS],
|
|
21
|
+
)
|
|
22
|
+
def compat_config(request: pytest.FixtureRequest) -> CompatConfig:
|
|
23
|
+
return request.param
|
|
24
|
+
|
|
25
|
+
|
|
26
|
+
register_in_worker_suites(globals(), WEB_FRAMEWORKS_SRC_DIR)
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
from flask import Response as FlaskResponse
|
|
2
|
+
|
|
3
|
+
from workers import FetchResponse, Response
|
|
4
|
+
|
|
5
|
+
|
|
6
|
+
def test_fetch_response_headers():
|
|
7
|
+
fetch_response = Response(headers={"X-Workers-Test": "value"})
|
|
8
|
+
|
|
9
|
+
assert isinstance(fetch_response, FetchResponse)
|
|
10
|
+
|
|
11
|
+
flask_response = FlaskResponse(headers=fetch_response.headers)
|
|
12
|
+
|
|
13
|
+
assert flask_response.headers["X-Workers-Test"] == "value"
|
|
@@ -0,0 +1,89 @@
|
|
|
1
|
+
import importlib.util
|
|
2
|
+
from urllib.parse import urlparse
|
|
3
|
+
|
|
4
|
+
import pytest
|
|
5
|
+
from flask import Flask
|
|
6
|
+
|
|
7
|
+
from workers import Response, WorkerEntrypoint, wsgi
|
|
8
|
+
|
|
9
|
+
app = Flask(__name__)
|
|
10
|
+
|
|
11
|
+
|
|
12
|
+
@app.get("/health")
|
|
13
|
+
def health():
|
|
14
|
+
return {"ok": True}
|
|
15
|
+
|
|
16
|
+
|
|
17
|
+
class ResultCollector:
|
|
18
|
+
def __init__(self):
|
|
19
|
+
self.results = {}
|
|
20
|
+
|
|
21
|
+
@staticmethod
|
|
22
|
+
def _key(item):
|
|
23
|
+
name = item.name
|
|
24
|
+
return name[len("test_") :] if name.startswith("test_") else name
|
|
25
|
+
|
|
26
|
+
@pytest.hookimpl(hookwrapper=True)
|
|
27
|
+
def pytest_runtest_makereport(self, item, call):
|
|
28
|
+
outcome = yield
|
|
29
|
+
report = outcome.get_result()
|
|
30
|
+
key = self._key(item)
|
|
31
|
+
|
|
32
|
+
if report.when == "call":
|
|
33
|
+
if report.passed:
|
|
34
|
+
self.results[key] = {"status": "passed"}
|
|
35
|
+
elif report.skipped:
|
|
36
|
+
self.results[key] = {
|
|
37
|
+
"status": "skipped",
|
|
38
|
+
"reason": str(report.longrepr),
|
|
39
|
+
}
|
|
40
|
+
elif report.failed:
|
|
41
|
+
excinfo = call.excinfo
|
|
42
|
+
if excinfo is not None and excinfo.errisinstance(AssertionError):
|
|
43
|
+
self.results[key] = {
|
|
44
|
+
"status": "failed",
|
|
45
|
+
"error": str(excinfo.value),
|
|
46
|
+
}
|
|
47
|
+
else:
|
|
48
|
+
self.results[key] = {
|
|
49
|
+
"status": "error",
|
|
50
|
+
"error": f"{excinfo.typename}: {excinfo.value}"
|
|
51
|
+
if excinfo is not None
|
|
52
|
+
else "unknown error",
|
|
53
|
+
"traceback": report.longreprtext,
|
|
54
|
+
}
|
|
55
|
+
elif report.when in ("setup", "teardown") and report.skipped:
|
|
56
|
+
self.results[key] = {
|
|
57
|
+
"status": "skipped",
|
|
58
|
+
"reason": str(report.longrepr),
|
|
59
|
+
}
|
|
60
|
+
elif report.when in ("setup", "teardown") and report.failed:
|
|
61
|
+
self.results[key] = {
|
|
62
|
+
"status": "error",
|
|
63
|
+
"error": report.longreprtext,
|
|
64
|
+
"traceback": report.longreprtext,
|
|
65
|
+
}
|
|
66
|
+
|
|
67
|
+
|
|
68
|
+
class Default(WorkerEntrypoint):
|
|
69
|
+
async def fetch(self, request):
|
|
70
|
+
path = urlparse(request.url).path
|
|
71
|
+
if path.startswith("/run-tests/"):
|
|
72
|
+
return self._run_suite(path[len("/run-tests/") :])
|
|
73
|
+
return await wsgi.fetch(app, request, self.env, self.ctx)
|
|
74
|
+
|
|
75
|
+
@staticmethod
|
|
76
|
+
def _run_suite(suite_name):
|
|
77
|
+
module = f"test_{suite_name}"
|
|
78
|
+
if importlib.util.find_spec(module) is None:
|
|
79
|
+
return Response.json(
|
|
80
|
+
{"error": f"Unknown suite '{suite_name}' (no module '{module}')"},
|
|
81
|
+
status=404,
|
|
82
|
+
)
|
|
83
|
+
|
|
84
|
+
collector = ResultCollector()
|
|
85
|
+
pytest.main(
|
|
86
|
+
["--pyargs", module, "-p", "no:cacheprovider"],
|
|
87
|
+
plugins=[collector],
|
|
88
|
+
)
|
|
89
|
+
return Response.json(collector.results)
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{workers_runtime_sdk-1.8.0 → workers_runtime_sdk-1.8.2}/src/_workers_sdk_entropy_import_context.py
RENAMED
|
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
|
{workers_runtime_sdk-1.8.0 → workers_runtime_sdk-1.8.2}/tests/bindings-test/public/data.json
RENAMED
|
File without changes
|
{workers_runtime_sdk-1.8.0 → workers_runtime_sdk-1.8.2}/tests/bindings-test/public/hello.txt
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{workers_runtime_sdk-1.8.0 → workers_runtime_sdk-1.8.2}/tests/bindings-test/src/test_assets.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{workers_runtime_sdk-1.8.0 → workers_runtime_sdk-1.8.2}/tests/bindings-test/src/test_images.py
RENAMED
|
File without changes
|
|
File without changes
|
{workers_runtime_sdk-1.8.0 → workers_runtime_sdk-1.8.2}/tests/bindings-test/src/test_mtls.py
RENAMED
|
File without changes
|
{workers_runtime_sdk-1.8.0 → workers_runtime_sdk-1.8.2}/tests/bindings-test/src/test_queue.py
RENAMED
|
File without changes
|
|
File without changes
|
{workers_runtime_sdk-1.8.0 → workers_runtime_sdk-1.8.2}/tests/bindings-test/src/test_ratelimit.py
RENAMED
|
File without changes
|
{workers_runtime_sdk-1.8.0 → workers_runtime_sdk-1.8.2}/tests/bindings-test/src/test_vectorize.py
RENAMED
|
File without changes
|
|
File without changes
|
{workers_runtime_sdk-1.8.0 → workers_runtime_sdk-1.8.2}/tests/bindings-test/src/test_workflow.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{workers_runtime_sdk-1.8.0 → workers_runtime_sdk-1.8.2}/tests/bindings-test/src/worker_workflow.py
RENAMED
|
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
|
{workers_runtime_sdk-1.8.0 → workers_runtime_sdk-1.8.2}/tests/workerd-test/asgi/asgi.wd-test
RENAMED
|
File without changes
|
{workers_runtime_sdk-1.8.0 → workers_runtime_sdk-1.8.2}/tests/workerd-test/asgi/pyproject.toml
RENAMED
|
File without changes
|
{workers_runtime_sdk-1.8.0 → workers_runtime_sdk-1.8.2}/tests/workerd-test/asgi/tests/test_asgi.py
RENAMED
|
File without changes
|
|
File without changes
|
{workers_runtime_sdk-1.8.0 → workers_runtime_sdk-1.8.2}/tests/workerd-test/asgi/wrangler.jsonc
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{workers_runtime_sdk-1.8.0 → workers_runtime_sdk-1.8.2}/tests/workerd-test/durable-object/worker.py
RENAMED
|
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
|
{workers_runtime_sdk-1.8.0 → workers_runtime_sdk-1.8.2}/tests/workerd-test/entropy-patches/worker.py
RENAMED
|
File without changes
|
|
File without changes
|
{workers_runtime_sdk-1.8.0 → workers_runtime_sdk-1.8.2}/tests/workerd-test/python-rpc/pyproject.toml
RENAMED
|
File without changes
|
|
File without changes
|
{workers_runtime_sdk-1.8.0 → workers_runtime_sdk-1.8.2}/tests/workerd-test/python-rpc/worker.js
RENAMED
|
File without changes
|
{workers_runtime_sdk-1.8.0 → workers_runtime_sdk-1.8.2}/tests/workerd-test/python-rpc/worker.py
RENAMED
|
File without changes
|
{workers_runtime_sdk-1.8.0 → workers_runtime_sdk-1.8.2}/tests/workerd-test/python-rpc/wrangler.jsonc
RENAMED
|
File without changes
|
{workers_runtime_sdk-1.8.0 → workers_runtime_sdk-1.8.2}/tests/workerd-test/sdk/pyproject.toml
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{workers_runtime_sdk-1.8.0 → workers_runtime_sdk-1.8.2}/tests/workerd-test/sdk/tests/test_sdk.py
RENAMED
|
File without changes
|
|
File without changes
|
{workers_runtime_sdk-1.8.0 → workers_runtime_sdk-1.8.2}/tests/workerd-test/sdk/wrangler.jsonc
RENAMED
|
File without changes
|
{workers_runtime_sdk-1.8.0 → workers_runtime_sdk-1.8.2}/tests/workerd-test/wsgi/pyproject.toml
RENAMED
|
File without changes
|
{workers_runtime_sdk-1.8.0 → workers_runtime_sdk-1.8.2}/tests/workerd-test/wsgi/tests/test_wsgi.py
RENAMED
|
File without changes
|
|
File without changes
|
{workers_runtime_sdk-1.8.0 → workers_runtime_sdk-1.8.2}/tests/workerd-test/wsgi/wrangler.jsonc
RENAMED
|
File without changes
|
{workers_runtime_sdk-1.8.0 → workers_runtime_sdk-1.8.2}/tests/workerd-test/wsgi/wsgi.wd-test
RENAMED
|
File without changes
|