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.
Files changed (181) hide show
  1. {workers_runtime_sdk-1.8.0 → workers_runtime_sdk-1.8.2}/CHANGELOG.md +17 -0
  2. {workers_runtime_sdk-1.8.0 → workers_runtime_sdk-1.8.2}/PKG-INFO +1 -1
  3. {workers_runtime_sdk-1.8.0 → workers_runtime_sdk-1.8.2}/pyproject.toml +1 -1
  4. {workers_runtime_sdk-1.8.0 → workers_runtime_sdk-1.8.2}/src/workers/utils.py +8 -10
  5. {workers_runtime_sdk-1.8.0 → workers_runtime_sdk-1.8.2}/tests/conftest.py +1 -1
  6. workers_runtime_sdk-1.8.2/tests/test_flask.py +26 -0
  7. workers_runtime_sdk-1.8.2/tests/web-frameworks-test/flask-tests/pyproject.toml +5 -0
  8. workers_runtime_sdk-1.8.2/tests/web-frameworks-test/flask-tests/src/test_response.py +13 -0
  9. workers_runtime_sdk-1.8.2/tests/web-frameworks-test/flask-tests/src/worker.py +89 -0
  10. workers_runtime_sdk-1.8.2/tests/web-frameworks-test/flask-tests/wrangler.jsonc +6 -0
  11. {workers_runtime_sdk-1.8.0 → workers_runtime_sdk-1.8.2}/uv.lock +1 -1
  12. {workers_runtime_sdk-1.8.0 → workers_runtime_sdk-1.8.2}/.gitignore +0 -0
  13. {workers_runtime_sdk-1.8.0 → workers_runtime_sdk-1.8.2}/AGENTS.md +0 -0
  14. {workers_runtime_sdk-1.8.0 → workers_runtime_sdk-1.8.2}/README.md +0 -0
  15. {workers_runtime_sdk-1.8.0 → workers_runtime_sdk-1.8.2}/src/_cloudflare_compat_flags.pyi +0 -0
  16. {workers_runtime_sdk-1.8.0 → workers_runtime_sdk-1.8.2}/src/_pyodide_entrypoint_helper.pyi +0 -0
  17. {workers_runtime_sdk-1.8.0 → workers_runtime_sdk-1.8.2}/src/_workers_sdk_entropy_import_context.py +0 -0
  18. {workers_runtime_sdk-1.8.0 → workers_runtime_sdk-1.8.2}/src/_workers_sdk_package_patches.py +0 -0
  19. {workers_runtime_sdk-1.8.0 → workers_runtime_sdk-1.8.2}/src/_workers_sdk_patch_loader.pth +0 -0
  20. {workers_runtime_sdk-1.8.0 → workers_runtime_sdk-1.8.2}/src/_workers_sdk_patch_loader.py +0 -0
  21. {workers_runtime_sdk-1.8.0 → workers_runtime_sdk-1.8.2}/src/asgi.py +0 -0
  22. {workers_runtime_sdk-1.8.0 → workers_runtime_sdk-1.8.2}/src/workers/__init__.py +0 -0
  23. {workers_runtime_sdk-1.8.0 → workers_runtime_sdk-1.8.2}/src/workers/asgi.py +0 -0
  24. {workers_runtime_sdk-1.8.0 → workers_runtime_sdk-1.8.2}/src/workers/blob.py +0 -0
  25. {workers_runtime_sdk-1.8.0 → workers_runtime_sdk-1.8.2}/src/workers/entrypoints.py +0 -0
  26. {workers_runtime_sdk-1.8.0 → workers_runtime_sdk-1.8.2}/src/workers/fetch.py +0 -0
  27. {workers_runtime_sdk-1.8.0 → workers_runtime_sdk-1.8.2}/src/workers/formdata.py +0 -0
  28. {workers_runtime_sdk-1.8.0 → workers_runtime_sdk-1.8.2}/src/workers/py.typed +0 -0
  29. {workers_runtime_sdk-1.8.0 → workers_runtime_sdk-1.8.2}/src/workers/request.py +0 -0
  30. {workers_runtime_sdk-1.8.0 → workers_runtime_sdk-1.8.2}/src/workers/response.py +0 -0
  31. {workers_runtime_sdk-1.8.0 → workers_runtime_sdk-1.8.2}/src/workers/rpc.py +0 -0
  32. {workers_runtime_sdk-1.8.0 → workers_runtime_sdk-1.8.2}/src/workers/types.py +0 -0
  33. {workers_runtime_sdk-1.8.0 → workers_runtime_sdk-1.8.2}/src/workers/workflows.py +0 -0
  34. {workers_runtime_sdk-1.8.0 → workers_runtime_sdk-1.8.2}/src/workers/wsgi.py +0 -0
  35. {workers_runtime_sdk-1.8.0 → workers_runtime_sdk-1.8.2}/tests/bindings-test/public/data.json +0 -0
  36. {workers_runtime_sdk-1.8.0 → workers_runtime_sdk-1.8.2}/tests/bindings-test/public/hello.txt +0 -0
  37. {workers_runtime_sdk-1.8.0 → workers_runtime_sdk-1.8.2}/tests/bindings-test/pyproject.toml +0 -0
  38. {workers_runtime_sdk-1.8.0 → workers_runtime_sdk-1.8.2}/tests/bindings-test/src/conftest.py +0 -0
  39. {workers_runtime_sdk-1.8.0 → workers_runtime_sdk-1.8.2}/tests/bindings-test/src/test_analytics_engine.py +0 -0
  40. {workers_runtime_sdk-1.8.0 → workers_runtime_sdk-1.8.2}/tests/bindings-test/src/test_assets.py +0 -0
  41. {workers_runtime_sdk-1.8.0 → workers_runtime_sdk-1.8.2}/tests/bindings-test/src/test_d1.py +0 -0
  42. {workers_runtime_sdk-1.8.0 → workers_runtime_sdk-1.8.2}/tests/bindings-test/src/test_do.py +0 -0
  43. {workers_runtime_sdk-1.8.0 → workers_runtime_sdk-1.8.2}/tests/bindings-test/src/test_hyperdrive_mysql.py +0 -0
  44. {workers_runtime_sdk-1.8.0 → workers_runtime_sdk-1.8.2}/tests/bindings-test/src/test_hyperdrive_postgresql.py +0 -0
  45. {workers_runtime_sdk-1.8.0 → workers_runtime_sdk-1.8.2}/tests/bindings-test/src/test_images.py +0 -0
  46. {workers_runtime_sdk-1.8.0 → workers_runtime_sdk-1.8.2}/tests/bindings-test/src/test_kv.py +0 -0
  47. {workers_runtime_sdk-1.8.0 → workers_runtime_sdk-1.8.2}/tests/bindings-test/src/test_mtls.py +0 -0
  48. {workers_runtime_sdk-1.8.0 → workers_runtime_sdk-1.8.2}/tests/bindings-test/src/test_queue.py +0 -0
  49. {workers_runtime_sdk-1.8.0 → workers_runtime_sdk-1.8.2}/tests/bindings-test/src/test_r2.py +0 -0
  50. {workers_runtime_sdk-1.8.0 → workers_runtime_sdk-1.8.2}/tests/bindings-test/src/test_ratelimit.py +0 -0
  51. {workers_runtime_sdk-1.8.0 → workers_runtime_sdk-1.8.2}/tests/bindings-test/src/test_vectorize.py +0 -0
  52. {workers_runtime_sdk-1.8.0 → workers_runtime_sdk-1.8.2}/tests/bindings-test/src/test_version_metadata.py +0 -0
  53. {workers_runtime_sdk-1.8.0 → workers_runtime_sdk-1.8.2}/tests/bindings-test/src/test_workflow.py +0 -0
  54. {workers_runtime_sdk-1.8.0 → workers_runtime_sdk-1.8.2}/tests/bindings-test/src/worker.py +0 -0
  55. {workers_runtime_sdk-1.8.0 → workers_runtime_sdk-1.8.2}/tests/bindings-test/src/worker_durable_object.py +0 -0
  56. {workers_runtime_sdk-1.8.0 → workers_runtime_sdk-1.8.2}/tests/bindings-test/src/worker_workflow.py +0 -0
  57. {workers_runtime_sdk-1.8.0 → workers_runtime_sdk-1.8.2}/tests/bindings-test/wrangler.jsonc +0 -0
  58. {workers_runtime_sdk-1.8.0 → workers_runtime_sdk-1.8.2}/tests/test_bindings.py +0 -0
  59. {workers_runtime_sdk-1.8.0 → workers_runtime_sdk-1.8.2}/tests/test_fastapi.py +0 -0
  60. {workers_runtime_sdk-1.8.0 → workers_runtime_sdk-1.8.2}/tests/test_in_workerd.py +0 -0
  61. {workers_runtime_sdk-1.8.0 → workers_runtime_sdk-1.8.2}/tests/test_web_frameworks.py +0 -0
  62. {workers_runtime_sdk-1.8.0 → workers_runtime_sdk-1.8.2}/tests/web-frameworks-test/django-async/pyproject.toml +0 -0
  63. {workers_runtime_sdk-1.8.0 → workers_runtime_sdk-1.8.2}/tests/web-frameworks-test/django-async/src/_client.py +0 -0
  64. {workers_runtime_sdk-1.8.0 → workers_runtime_sdk-1.8.2}/tests/web-frameworks-test/django-async/src/conftest.py +0 -0
  65. {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
  66. {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
  67. {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
  68. {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
  69. {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
  70. {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
  71. {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
  72. {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
  73. {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
  74. {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
  75. {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
  76. {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
  77. {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
  78. {workers_runtime_sdk-1.8.0 → workers_runtime_sdk-1.8.2}/tests/web-frameworks-test/django-async/src/templates/base.html +0 -0
  79. {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
  80. {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
  81. {workers_runtime_sdk-1.8.0 → workers_runtime_sdk-1.8.2}/tests/web-frameworks-test/django-async/src/templates/hello.html +0 -0
  82. {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
  83. {workers_runtime_sdk-1.8.0 → workers_runtime_sdk-1.8.2}/tests/web-frameworks-test/django-async/src/test_auth.py +0 -0
  84. {workers_runtime_sdk-1.8.0 → workers_runtime_sdk-1.8.2}/tests/web-frameworks-test/django-async/src/test_caching.py +0 -0
  85. {workers_runtime_sdk-1.8.0 → workers_runtime_sdk-1.8.2}/tests/web-frameworks-test/django-async/src/test_cors.py +0 -0
  86. {workers_runtime_sdk-1.8.0 → workers_runtime_sdk-1.8.2}/tests/web-frameworks-test/django-async/src/test_csrf.py +0 -0
  87. {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
  88. {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
  89. {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
  90. {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
  91. {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
  92. {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
  93. {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
  94. {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
  95. {workers_runtime_sdk-1.8.0 → workers_runtime_sdk-1.8.2}/tests/web-frameworks-test/django-async/src/test_forms.py +0 -0
  96. {workers_runtime_sdk-1.8.0 → workers_runtime_sdk-1.8.2}/tests/web-frameworks-test/django-async/src/test_middleware.py +0 -0
  97. {workers_runtime_sdk-1.8.0 → workers_runtime_sdk-1.8.2}/tests/web-frameworks-test/django-async/src/test_pagination.py +0 -0
  98. {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
  99. {workers_runtime_sdk-1.8.0 → workers_runtime_sdk-1.8.2}/tests/web-frameworks-test/django-async/src/test_sessions.py +0 -0
  100. {workers_runtime_sdk-1.8.0 → workers_runtime_sdk-1.8.2}/tests/web-frameworks-test/django-async/src/test_signals.py +0 -0
  101. {workers_runtime_sdk-1.8.0 → workers_runtime_sdk-1.8.2}/tests/web-frameworks-test/django-async/src/test_streaming.py +0 -0
  102. {workers_runtime_sdk-1.8.0 → workers_runtime_sdk-1.8.2}/tests/web-frameworks-test/django-async/src/test_templates.py +0 -0
  103. {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
  104. {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
  105. {workers_runtime_sdk-1.8.0 → workers_runtime_sdk-1.8.2}/tests/web-frameworks-test/django-async/src/worker.py +0 -0
  106. {workers_runtime_sdk-1.8.0 → workers_runtime_sdk-1.8.2}/tests/web-frameworks-test/django-async/wrangler.jsonc +0 -0
  107. {workers_runtime_sdk-1.8.0 → workers_runtime_sdk-1.8.2}/tests/web-frameworks-test/fastapi-tests/public/data.json +0 -0
  108. {workers_runtime_sdk-1.8.0 → workers_runtime_sdk-1.8.2}/tests/web-frameworks-test/fastapi-tests/public/index.html +0 -0
  109. {workers_runtime_sdk-1.8.0 → workers_runtime_sdk-1.8.2}/tests/web-frameworks-test/fastapi-tests/public/style.css +0 -0
  110. {workers_runtime_sdk-1.8.0 → workers_runtime_sdk-1.8.2}/tests/web-frameworks-test/fastapi-tests/pyproject.toml +0 -0
  111. {workers_runtime_sdk-1.8.0 → workers_runtime_sdk-1.8.2}/tests/web-frameworks-test/fastapi-tests/src/_client.py +0 -0
  112. {workers_runtime_sdk-1.8.0 → workers_runtime_sdk-1.8.2}/tests/web-frameworks-test/fastapi-tests/src/conftest.py +0 -0
  113. {workers_runtime_sdk-1.8.0 → workers_runtime_sdk-1.8.2}/tests/web-frameworks-test/fastapi-tests/src/static/app.css +0 -0
  114. {workers_runtime_sdk-1.8.0 → workers_runtime_sdk-1.8.2}/tests/web-frameworks-test/fastapi-tests/src/static/data.json +0 -0
  115. {workers_runtime_sdk-1.8.0 → workers_runtime_sdk-1.8.2}/tests/web-frameworks-test/fastapi-tests/src/static/hello.txt +0 -0
  116. {workers_runtime_sdk-1.8.0 → workers_runtime_sdk-1.8.2}/tests/web-frameworks-test/fastapi-tests/src/static/index.html +0 -0
  117. {workers_runtime_sdk-1.8.0 → workers_runtime_sdk-1.8.2}/tests/web-frameworks-test/fastapi-tests/src/test_assets.py +0 -0
  118. {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
  119. {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
  120. {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
  121. {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
  122. {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
  123. {workers_runtime_sdk-1.8.0 → workers_runtime_sdk-1.8.2}/tests/web-frameworks-test/fastapi-tests/src/test_routing.py +0 -0
  124. {workers_runtime_sdk-1.8.0 → workers_runtime_sdk-1.8.2}/tests/web-frameworks-test/fastapi-tests/src/test_staticfiles.py +0 -0
  125. {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
  126. {workers_runtime_sdk-1.8.0 → workers_runtime_sdk-1.8.2}/tests/web-frameworks-test/fastapi-tests/src/test_websocket.py +0 -0
  127. {workers_runtime_sdk-1.8.0 → workers_runtime_sdk-1.8.2}/tests/web-frameworks-test/fastapi-tests/src/worker.py +0 -0
  128. {workers_runtime_sdk-1.8.0 → workers_runtime_sdk-1.8.2}/tests/web-frameworks-test/fastapi-tests/wrangler.jsonc +0 -0
  129. {workers_runtime_sdk-1.8.0 → workers_runtime_sdk-1.8.2}/tests/workerd-test/asgi/asgi.wd-test +0 -0
  130. {workers_runtime_sdk-1.8.0 → workers_runtime_sdk-1.8.2}/tests/workerd-test/asgi/pyproject.toml +0 -0
  131. {workers_runtime_sdk-1.8.0 → workers_runtime_sdk-1.8.2}/tests/workerd-test/asgi/tests/test_asgi.py +0 -0
  132. {workers_runtime_sdk-1.8.0 → workers_runtime_sdk-1.8.2}/tests/workerd-test/asgi/worker.py +0 -0
  133. {workers_runtime_sdk-1.8.0 → workers_runtime_sdk-1.8.2}/tests/workerd-test/asgi/wrangler.jsonc +0 -0
  134. {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
  135. {workers_runtime_sdk-1.8.0 → workers_runtime_sdk-1.8.2}/tests/workerd-test/asgi-ws-disconnect/pyproject.toml +0 -0
  136. {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
  137. {workers_runtime_sdk-1.8.0 → workers_runtime_sdk-1.8.2}/tests/workerd-test/asgi-ws-disconnect/worker.py +0 -0
  138. {workers_runtime_sdk-1.8.0 → workers_runtime_sdk-1.8.2}/tests/workerd-test/asgi-ws-disconnect/wrangler.jsonc +0 -0
  139. {workers_runtime_sdk-1.8.0 → workers_runtime_sdk-1.8.2}/tests/workerd-test/durable-object/durable-object.wd-test +0 -0
  140. {workers_runtime_sdk-1.8.0 → workers_runtime_sdk-1.8.2}/tests/workerd-test/durable-object/pyproject.toml +0 -0
  141. {workers_runtime_sdk-1.8.0 → workers_runtime_sdk-1.8.2}/tests/workerd-test/durable-object/worker.py +0 -0
  142. {workers_runtime_sdk-1.8.0 → workers_runtime_sdk-1.8.2}/tests/workerd-test/durable-object/wrangler.jsonc +0 -0
  143. {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
  144. {workers_runtime_sdk-1.8.0 → workers_runtime_sdk-1.8.2}/tests/workerd-test/durable-object-abort/pyproject.toml +0 -0
  145. {workers_runtime_sdk-1.8.0 → workers_runtime_sdk-1.8.2}/tests/workerd-test/durable-object-abort/worker.py +0 -0
  146. {workers_runtime_sdk-1.8.0 → workers_runtime_sdk-1.8.2}/tests/workerd-test/durable-object-abort/wrangler.jsonc +0 -0
  147. {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
  148. {workers_runtime_sdk-1.8.0 → workers_runtime_sdk-1.8.2}/tests/workerd-test/durable-object-inheritance/pyproject.toml +0 -0
  149. {workers_runtime_sdk-1.8.0 → workers_runtime_sdk-1.8.2}/tests/workerd-test/durable-object-inheritance/worker.py +0 -0
  150. {workers_runtime_sdk-1.8.0 → workers_runtime_sdk-1.8.2}/tests/workerd-test/durable-object-inheritance/wrangler.jsonc +0 -0
  151. {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
  152. {workers_runtime_sdk-1.8.0 → workers_runtime_sdk-1.8.2}/tests/workerd-test/durable-object-websocket/pyproject.toml +0 -0
  153. {workers_runtime_sdk-1.8.0 → workers_runtime_sdk-1.8.2}/tests/workerd-test/durable-object-websocket/tester.js +0 -0
  154. {workers_runtime_sdk-1.8.0 → workers_runtime_sdk-1.8.2}/tests/workerd-test/durable-object-websocket/worker.py +0 -0
  155. {workers_runtime_sdk-1.8.0 → workers_runtime_sdk-1.8.2}/tests/workerd-test/durable-object-websocket/wrangler.jsonc +0 -0
  156. {workers_runtime_sdk-1.8.0 → workers_runtime_sdk-1.8.2}/tests/workerd-test/entropy-patches/entropy-patches.wd-test +0 -0
  157. {workers_runtime_sdk-1.8.0 → workers_runtime_sdk-1.8.2}/tests/workerd-test/entropy-patches/pyproject.toml +0 -0
  158. {workers_runtime_sdk-1.8.0 → workers_runtime_sdk-1.8.2}/tests/workerd-test/entropy-patches/tests/test_aiohttp_websocket.py +0 -0
  159. {workers_runtime_sdk-1.8.0 → workers_runtime_sdk-1.8.2}/tests/workerd-test/entropy-patches/tests/test_langsmith.py +0 -0
  160. {workers_runtime_sdk-1.8.0 → workers_runtime_sdk-1.8.2}/tests/workerd-test/entropy-patches/tests/test_numpy.py +0 -0
  161. {workers_runtime_sdk-1.8.0 → workers_runtime_sdk-1.8.2}/tests/workerd-test/entropy-patches/tests/test_pydantic.py +0 -0
  162. {workers_runtime_sdk-1.8.0 → workers_runtime_sdk-1.8.2}/tests/workerd-test/entropy-patches/tests/test_rust_packages.py +0 -0
  163. {workers_runtime_sdk-1.8.0 → workers_runtime_sdk-1.8.2}/tests/workerd-test/entropy-patches/tests/test_ssl_avoidance.py +0 -0
  164. {workers_runtime_sdk-1.8.0 → workers_runtime_sdk-1.8.2}/tests/workerd-test/entropy-patches/worker.py +0 -0
  165. {workers_runtime_sdk-1.8.0 → workers_runtime_sdk-1.8.2}/tests/workerd-test/entropy-patches/wrangler.jsonc +0 -0
  166. {workers_runtime_sdk-1.8.0 → workers_runtime_sdk-1.8.2}/tests/workerd-test/python-rpc/pyproject.toml +0 -0
  167. {workers_runtime_sdk-1.8.0 → workers_runtime_sdk-1.8.2}/tests/workerd-test/python-rpc/python-rpc.wd-test +0 -0
  168. {workers_runtime_sdk-1.8.0 → workers_runtime_sdk-1.8.2}/tests/workerd-test/python-rpc/worker.js +0 -0
  169. {workers_runtime_sdk-1.8.0 → workers_runtime_sdk-1.8.2}/tests/workerd-test/python-rpc/worker.py +0 -0
  170. {workers_runtime_sdk-1.8.0 → workers_runtime_sdk-1.8.2}/tests/workerd-test/python-rpc/wrangler.jsonc +0 -0
  171. {workers_runtime_sdk-1.8.0 → workers_runtime_sdk-1.8.2}/tests/workerd-test/sdk/pyproject.toml +0 -0
  172. {workers_runtime_sdk-1.8.0 → workers_runtime_sdk-1.8.2}/tests/workerd-test/sdk/sdk.wd-test +0 -0
  173. {workers_runtime_sdk-1.8.0 → workers_runtime_sdk-1.8.2}/tests/workerd-test/sdk/server.py +0 -0
  174. {workers_runtime_sdk-1.8.0 → workers_runtime_sdk-1.8.2}/tests/workerd-test/sdk/tests/test_sdk.py +0 -0
  175. {workers_runtime_sdk-1.8.0 → workers_runtime_sdk-1.8.2}/tests/workerd-test/sdk/worker.py +0 -0
  176. {workers_runtime_sdk-1.8.0 → workers_runtime_sdk-1.8.2}/tests/workerd-test/sdk/wrangler.jsonc +0 -0
  177. {workers_runtime_sdk-1.8.0 → workers_runtime_sdk-1.8.2}/tests/workerd-test/wsgi/pyproject.toml +0 -0
  178. {workers_runtime_sdk-1.8.0 → workers_runtime_sdk-1.8.2}/tests/workerd-test/wsgi/tests/test_wsgi.py +0 -0
  179. {workers_runtime_sdk-1.8.0 → workers_runtime_sdk-1.8.2}/tests/workerd-test/wsgi/worker.py +0 -0
  180. {workers_runtime_sdk-1.8.0 → workers_runtime_sdk-1.8.2}/tests/workerd-test/wsgi/wrangler.jsonc +0 -0
  181. {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.0
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
@@ -4,7 +4,7 @@ build-backend = "hatchling.build"
4
4
 
5
5
  [project]
6
6
  name = "workers-runtime-sdk"
7
- version = "1.8.0"
7
+ version = "1.8.2"
8
8
  description = "Python SDK for Cloudflare Workers"
9
9
  readme = "README.md"
10
10
  requires-python = ">=3.11"
@@ -1,4 +1,5 @@
1
- from collections.abc import Iterator, Sequence
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, http.client.HTTPMessage):
214
+ if isinstance(js_headers, HTTPMessageMapping):
217
215
  return js_headers
218
216
 
219
- result = http.client.HTTPMessage()
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=["python_workers_20260610", "experimental"],
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,5 @@
1
+ [project]
2
+ name = "flask-tests"
3
+ version = "0.1.0"
4
+ requires-python = ">=3.12"
5
+ dependencies = ["flask", "pytest"]
@@ -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)
@@ -0,0 +1,6 @@
1
+ {
2
+ "name": "flask-tests",
3
+ "main": "src/worker.py",
4
+ "compatibility_date": "%COMPAT_DATE",
5
+ "compatibility_flags": ["python_workers"]
6
+ }
@@ -345,7 +345,7 @@ wheels = [
345
345
 
346
346
  [[package]]
347
347
  name = "workers-runtime-sdk"
348
- version = "1.8.0"
348
+ version = "1.8.2"
349
349
  source = { editable = "." }
350
350
 
351
351
  [package.dev-dependencies]