pyfect-dev 0.1.0__tar.gz → 0.1.1__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 (1294) hide show
  1. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/PKG-INFO +11 -7
  2. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/README.md +10 -6
  3. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/pyproject.toml +1 -1
  4. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/pyproject.toml.orig +1 -1
  5. pyfect_dev-0.1.1/src/pyfect/_version.py +9 -0
  6. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/ai/_mcp/dispatch.py +20 -4
  7. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/cache/_cache.py +19 -6
  8. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/cause.py +12 -11
  9. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/encoding/schema_binary/_compile.py +2 -2
  10. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/http/asgi/_mount.py +43 -23
  11. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/http/asgi/_web_socket.py +20 -4
  12. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/http/incoming_message.py +3 -19
  13. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/http/live_server/_listener.py +1 -1
  14. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/http/multipart_parser/__init__.py +116 -92
  15. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/http/multipart_parser/_headers.py +9 -1
  16. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/managed_runtime.py +4 -2
  17. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/metric/_kinds.py +6 -6
  18. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/metric/_metric.py +5 -2
  19. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/metric/_refs.py +3 -0
  20. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/metric/_snapshot.py +1 -1
  21. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/metric/_state.py +2 -0
  22. pyfect_dev-0.1.1/src/pyfect/observability/__init__.py +17 -0
  23. pyfect_dev-0.1.1/src/pyfect/observability/_otlp_env.py +108 -0
  24. pyfect_dev-0.1.1/src/pyfect/observability/_otlp_metric_points.py +246 -0
  25. pyfect_dev-0.1.1/src/pyfect/observability/_otlp_protobuf.py +326 -0
  26. pyfect_dev-0.1.1/src/pyfect/observability/_pretty.py +43 -0
  27. pyfect_dev-0.1.1/src/pyfect/observability/_protobuf.py +122 -0
  28. pyfect_dev-0.1.1/src/pyfect/observability/otlp.py +175 -0
  29. pyfect_dev-0.1.1/src/pyfect/observability/otlp_exporter.py +264 -0
  30. pyfect_dev-0.1.1/src/pyfect/observability/otlp_logger.py +257 -0
  31. pyfect_dev-0.1.1/src/pyfect/observability/otlp_metrics.py +208 -0
  32. pyfect_dev-0.1.1/src/pyfect/observability/otlp_proxy.py +252 -0
  33. pyfect_dev-0.1.1/src/pyfect/observability/otlp_resource.py +263 -0
  34. pyfect_dev-0.1.1/src/pyfect/observability/otlp_serialization.py +83 -0
  35. pyfect_dev-0.1.1/src/pyfect/observability/otlp_tracer.py +428 -0
  36. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/otel/_attributes.py +2 -3
  37. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/process/_live.py +9 -1
  38. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/process/_pipes.py +22 -21
  39. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/schema/__init__.py +26 -0
  40. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/schema/_adapters.py +1 -0
  41. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/schema/_arbitrary_constraint.py +3 -1
  42. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/schema/_checks_size.py +9 -1
  43. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/schema/_class.py +33 -3
  44. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/schema/_codec_derivation.py +2 -1
  45. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/schema/_codecs.py +13 -4
  46. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/schema/_derive.py +10 -2
  47. pyfect_dev-0.1.1/src/pyfect/schema/_ecma_flags.py +74 -0
  48. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/schema/_ecma_pattern.py +96 -36
  49. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/schema/_jsonschema/_checks.py +12 -3
  50. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/schema/_literals.py +31 -1
  51. pyfect_dev-0.1.1/src/pyfect/schema/_make.py +64 -0
  52. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/schema/_middleware.py +86 -3
  53. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/schema/_parse.py +122 -22
  54. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/schema/_refine.py +29 -8
  55. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/schema/_schema.py +12 -6
  56. pyfect_dev-0.1.1/src/pyfect/schema/_standard_schema.py +278 -0
  57. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/schema/_tagged.py +2 -2
  58. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/schema/_transform.py +18 -2
  59. pyfect_dev-0.1.1/src/pyfect/schema/aot_compiler/__init__.py +184 -0
  60. pyfect_dev-0.1.1/src/pyfect/schema/aot_compiler/build.py +222 -0
  61. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/schema/ast/__init__.py +21 -1
  62. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/schema/ast/_arrays.py +12 -10
  63. pyfect_dev-0.1.1/src/pyfect/schema/ast/_base.py +544 -0
  64. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/schema/ast/_candidates.py +93 -30
  65. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/schema/ast/_class.py +8 -3
  66. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/schema/ast/_declaration.py +15 -7
  67. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/schema/ast/_encoding.py +10 -2
  68. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/schema/ast/_literal.py +8 -3
  69. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/schema/ast/_objects.py +125 -40
  70. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/schema/ast/_suspend.py +13 -4
  71. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/schema/ast/_template_literal.py +6 -4
  72. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/schema/ast/_union.py +6 -7
  73. pyfect_dev-0.1.1/src/pyfect/schema/compiler/__init__.py +69 -0
  74. pyfect_dev-0.1.1/src/pyfect/schema/compiler/_codegen.py +626 -0
  75. pyfect_dev-0.1.1/src/pyfect/schema/compiler/_registry.py +365 -0
  76. pyfect_dev-0.1.1/src/pyfect/schema/compiler/runtime.py +363 -0
  77. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/schema/getter/__init__.py +3 -0
  78. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/schema/getter/_coerce.py +26 -13
  79. pyfect_dev-0.1.1/src/pyfect/schema/getter/_json_options.py +60 -0
  80. pyfect_dev-0.1.1/src/pyfect/schema/jit_compiler/__init__.py +122 -0
  81. pyfect_dev-0.1.1/src/pyfect/schema/jit_compiler/install.py +10 -0
  82. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/schema/representation/_builtin_revivers.py +7 -9
  83. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/schema/representation/_code_builtins.py +4 -0
  84. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/schema/transformation/_builtins.py +15 -6
  85. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/socket/_connection.py +34 -27
  86. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/socket/_tls_session.py +29 -9
  87. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/sql/pg/connection.py +59 -36
  88. pyfect_dev-0.1.1/src/pyfect/terminal/_keys.py +262 -0
  89. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/terminal/_live.py +27 -11
  90. pyfect_dev-0.1.0/src/pyfect/schema/ast/_base.py +0 -295
  91. pyfect_dev-0.1.0/src/pyfect/terminal/_keys.py +0 -113
  92. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/LICENSE +0 -0
  93. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/__init__.py +0 -0
  94. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/_all.py +0 -0
  95. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/_background.py +0 -0
  96. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/_binary_codecs.py +0 -0
  97. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/_cached.py +0 -0
  98. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/_catch.py +0 -0
  99. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/_catch_reason.py +0 -0
  100. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/_concurrency.py +0 -0
  101. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/_context_effects.py +0 -0
  102. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/_context_managers.py +0 -0
  103. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/_core.py +0 -0
  104. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/_digits.py +0 -0
  105. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/_effect_args.py +0 -0
  106. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/_effect_base.py +0 -0
  107. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/_effect_concurrency.py +0 -0
  108. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/_effect_eager.py +0 -0
  109. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/_effect_errors.py +0 -0
  110. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/_effect_folding.py +0 -0
  111. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/_effect_hash.py +0 -0
  112. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/_effect_logging.py +0 -0
  113. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/_effect_metrics.py +0 -0
  114. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/_effect_resources.py +0 -0
  115. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/_effect_services.py +0 -0
  116. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/_effect_timing.py +0 -0
  117. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/_effect_tracing.py +0 -0
  118. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/_equal.py +0 -0
  119. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/_extras.py +0 -0
  120. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/_fiber.py +0 -0
  121. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/_fiber_all.py +0 -0
  122. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/_fiber_collections.py +0 -0
  123. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/_fn.py +0 -0
  124. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/_hamt.py +0 -0
  125. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/_interrupt_reason.py +0 -0
  126. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/_isaac.py +0 -0
  127. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/_iterables.py +0 -0
  128. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/_js.py +0 -0
  129. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/_js_date.py +0 -0
  130. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/_json_text.py +0 -0
  131. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/_json_value.py +0 -0
  132. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/_layer_core.py +0 -0
  133. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/_layer_for_life.py +0 -0
  134. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/_layer_tracing.py +0 -0
  135. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/_locked_ref.py +0 -0
  136. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/_loop_thread.py +0 -0
  137. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/_metric_ref.py +0 -0
  138. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/_one_or_many.py +0 -0
  139. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/_os_wait.py +0 -0
  140. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/_path_posix.py +0 -0
  141. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/_primitives.py +0 -0
  142. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/_public.py +0 -0
  143. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/_reasons.py +0 -0
  144. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/_released.py +0 -0
  145. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/_root.py +0 -0
  146. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/_round_robin.py +0 -0
  147. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/_some.py +0 -0
  148. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/_stack.py +0 -0
  149. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/_stack_frame.py +0 -0
  150. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/_string_hash.py +0 -0
  151. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/_subscriber_queue.py +0 -0
  152. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/_tags.py +0 -0
  153. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/_tracer_ref.py +0 -0
  154. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/_tx_ops.py +0 -0
  155. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/_unsubscripted.py +0 -0
  156. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/_url.py +0 -0
  157. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/_waiters.py +0 -0
  158. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/_wake_tracking.py +0 -0
  159. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/_wire_codec.py +0 -0
  160. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/ai/__init__.py +0 -0
  161. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/ai/_approvals.py +0 -0
  162. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/ai/_decision_answers.py +0 -0
  163. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/ai/_generated_client.py +0 -0
  164. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/ai/_generated_support.py +0 -0
  165. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/ai/_mcp/__init__.py +0 -0
  166. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/ai/_mcp/batch.py +0 -0
  167. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/ai/_mcp/client_transport.py +0 -0
  168. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/ai/_mcp/client_wire.py +0 -0
  169. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/ai/_mcp/core.py +0 -0
  170. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/ai/_mcp/http.py +0 -0
  171. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/ai/_mcp/http_admission.py +0 -0
  172. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/ai/_mcp/http_status.py +0 -0
  173. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/ai/_mcp/input_wire.py +0 -0
  174. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/ai/_mcp/log_levels.py +0 -0
  175. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/ai/_mcp/param_headers.py +0 -0
  176. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/ai/_mcp/projection.py +0 -0
  177. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/ai/_mcp/register.py +0 -0
  178. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/ai/_mcp/reverse_policy.py +0 -0
  179. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/ai/_mcp/routing_header.py +0 -0
  180. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/ai/_mcp/sessions.py +0 -0
  181. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/ai/_mcp/stdio.py +0 -0
  182. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/ai/_mcp/subscriptions.py +0 -0
  183. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/ai/_mcp/tool_schema.py +0 -0
  184. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/ai/_noul_answers.py +0 -0
  185. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/ai/_openai_all_of.py +0 -0
  186. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/ai/_openai_errors.py +0 -0
  187. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/ai/_provider.py +0 -0
  188. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/ai/_provider_tools.py +0 -0
  189. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/ai/_stream_resolution.py +0 -0
  190. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/ai/_structured_output_checks.py +0 -0
  191. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/ai/_structured_output_codec.py +0 -0
  192. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/ai/_structured_output_json.py +0 -0
  193. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/ai/_tool_call_ids.py +0 -0
  194. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/ai/ai_error.py +0 -0
  195. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/ai/anthropic/__init__.py +0 -0
  196. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/ai/anthropic/_errors.py +0 -0
  197. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/ai/anthropic/_prompt.py +0 -0
  198. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/ai/anthropic/_response.py +0 -0
  199. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/ai/anthropic/_schema.py +0 -0
  200. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/ai/anthropic/_stream.py +0 -0
  201. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/ai/anthropic/_tools.py +0 -0
  202. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/ai/anthropic/client.py +0 -0
  203. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/ai/anthropic/config.py +0 -0
  204. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/ai/anthropic/error.py +0 -0
  205. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/ai/anthropic/language_model.py +0 -0
  206. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/ai/anthropic/telemetry.py +0 -0
  207. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/ai/anthropic/tool.py +0 -0
  208. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/ai/anthropic_structured_output.py +0 -0
  209. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/ai/chat.py +0 -0
  210. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/ai/cloudflare/__init__.py +0 -0
  211. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/ai/cloudflare/_errors.py +0 -0
  212. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/ai/cloudflare/client.py +0 -0
  213. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/ai/cloudflare/decision_model.py +0 -0
  214. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/ai/cloudflare/schema.py +0 -0
  215. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/ai/decision.py +0 -0
  216. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/ai/decision_model.py +0 -0
  217. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/ai/embedding_model.py +0 -0
  218. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/ai/id_generator.py +0 -0
  219. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/ai/language_model.py +0 -0
  220. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/ai/mcp_client.py +0 -0
  221. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/ai/mcp_client_error.py +0 -0
  222. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/ai/mcp_protocol.py +0 -0
  223. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/ai/mcp_schema.py +0 -0
  224. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/ai/mcp_server.py +0 -0
  225. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/ai/model.py +0 -0
  226. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/ai/openai/__init__.py +0 -0
  227. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/ai/openai/_errors.py +0 -0
  228. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/ai/openai/_prompt.py +0 -0
  229. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/ai/openai/_requests.py +0 -0
  230. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/ai/openai/_response.py +0 -0
  231. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/ai/openai/_schema.py +0 -0
  232. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/ai/openai/_stream.py +0 -0
  233. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/ai/openai/_tools.py +0 -0
  234. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/ai/openai/_web_socket.py +0 -0
  235. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/ai/openai/client.py +0 -0
  236. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/ai/openai/client_generated.py +0 -0
  237. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/ai/openai/config.py +0 -0
  238. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/ai/openai/decision_model.py +0 -0
  239. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/ai/openai/embedding_model.py +0 -0
  240. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/ai/openai/error.py +0 -0
  241. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/ai/openai/generated/__init__.py +0 -0
  242. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/ai/openai/generated/_recursive.py +0 -0
  243. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/ai/openai/generated/_schemas_0.py +0 -0
  244. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/ai/openai/generated/_schemas_1.py +0 -0
  245. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/ai/openai/generated/_schemas_2.py +0 -0
  246. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/ai/openai/generated/_schemas_3.py +0 -0
  247. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/ai/openai/generated/client.py +0 -0
  248. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/ai/openai/generated/types.py +0 -0
  249. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/ai/openai/language_model.py +0 -0
  250. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/ai/openai/telemetry.py +0 -0
  251. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/ai/openai/tool.py +0 -0
  252. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/ai/openai_compat/__init__.py +0 -0
  253. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/ai/openai_compat/_prompt.py +0 -0
  254. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/ai/openai_compat/_request.py +0 -0
  255. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/ai/openai_compat/_response.py +0 -0
  256. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/ai/openai_compat/_schema.py +0 -0
  257. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/ai/openai_compat/client.py +0 -0
  258. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/ai/openai_compat/config.py +0 -0
  259. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/ai/openai_compat/embedding_model.py +0 -0
  260. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/ai/openai_compat/error.py +0 -0
  261. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/ai/openai_compat/language_model.py +0 -0
  262. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/ai/openai_compat/telemetry.py +0 -0
  263. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/ai/openai_structured_output.py +0 -0
  264. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/ai/openrouter/__init__.py +0 -0
  265. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/ai/openrouter/_errors.py +0 -0
  266. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/ai/openrouter/_prompt.py +0 -0
  267. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/ai/openrouter/_response.py +0 -0
  268. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/ai/openrouter/_stream.py +0 -0
  269. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/ai/openrouter/client.py +0 -0
  270. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/ai/openrouter/config.py +0 -0
  271. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/ai/openrouter/decision_model.py +0 -0
  272. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/ai/openrouter/error.py +0 -0
  273. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/ai/openrouter/generated/__init__.py +0 -0
  274. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/ai/openrouter/generated/_recursive.py +0 -0
  275. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/ai/openrouter/generated/_schemas_0.py +0 -0
  276. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/ai/openrouter/generated/_schemas_1.py +0 -0
  277. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/ai/openrouter/generated/client.py +0 -0
  278. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/ai/openrouter/generated/types.py +0 -0
  279. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/ai/openrouter/language_model.py +0 -0
  280. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/ai/openrouter/schema.py +0 -0
  281. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/ai/prompt.py +0 -0
  282. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/ai/response.py +0 -0
  283. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/ai/response_id_tracker.py +0 -0
  284. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/ai/telemetry.py +0 -0
  285. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/ai/tokenizer.py +0 -0
  286. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/ai/tool.py +0 -0
  287. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/ai/toolkit.py +0 -0
  288. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/ai/typesafe/__init__.py +0 -0
  289. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/ai/typesafe/_errors.py +0 -0
  290. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/ai/typesafe/client.py +0 -0
  291. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/ai/typesafe/config.py +0 -0
  292. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/ai/typesafe/decision_model.py +0 -0
  293. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/ai/typesafe/schema.py +0 -0
  294. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/batching/__init__.py +0 -0
  295. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/batching/_api.py +0 -0
  296. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/batching/_engine.py +0 -0
  297. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/batching/_from_effect.py +0 -0
  298. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/batching/_persisted.py +0 -0
  299. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/batching/_request.py +0 -0
  300. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/batching/_resolver.py +0 -0
  301. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/batching/_with_cache.py +0 -0
  302. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/big_decimal.py +0 -0
  303. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/brand.py +0 -0
  304. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/byte_size.py +0 -0
  305. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/cache/__init__.py +0 -0
  306. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/cache/_expiry.py +0 -0
  307. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/cache/_scoped_cache.py +0 -0
  308. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/case.py +0 -0
  309. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/channel/__init__.py +0 -0
  310. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/channel/_base.py +0 -0
  311. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/channel/_catch.py +0 -0
  312. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/channel/_catch_reason.py +0 -0
  313. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/channel/_channel.py +0 -0
  314. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/channel/_combinators.py +0 -0
  315. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/channel/_concurrency_methods.py +0 -0
  316. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/channel/_concurrent_map.py +0 -0
  317. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/channel/_constructors.py +0 -0
  318. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/channel/_context.py +0 -0
  319. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/channel/_error_methods.py +0 -0
  320. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/channel/_errors.py +0 -0
  321. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/channel/_filters.py +0 -0
  322. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/channel/_lifecycle.py +0 -0
  323. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/channel/_lifecycle_methods.py +0 -0
  324. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/channel/_loop.py +0 -0
  325. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/channel/_merge.py +0 -0
  326. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/channel/_repeat.py +0 -0
  327. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/channel/_run.py +0 -0
  328. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/channel/_run_methods.py +0 -0
  329. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/channel/_sinks.py +0 -0
  330. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/channel/_sources.py +0 -0
  331. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/channel/_text.py +0 -0
  332. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/channel/_transform_methods.py +0 -0
  333. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/channel/_upstream.py +0 -0
  334. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/channel_schema.py +0 -0
  335. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/cli/__init__.py +0 -0
  336. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/cli/_ansi.py +0 -0
  337. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/cli/_command.py +0 -0
  338. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/cli/_config.py +0 -0
  339. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/cli/_environment.py +0 -0
  340. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/cli/_help.py +0 -0
  341. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/cli/_lexer.py +0 -0
  342. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/cli/_parser.py +0 -0
  343. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/cli/_settings.py +0 -0
  344. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/cli/_suggest.py +0 -0
  345. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/cli/_width.py +0 -0
  346. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/cli/_wizard.py +0 -0
  347. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/cli/argument.py +0 -0
  348. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/cli/cli_config.py +0 -0
  349. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/cli/cli_error.py +0 -0
  350. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/cli/cli_output.py +0 -0
  351. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/cli/command.py +0 -0
  352. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/cli/completions/__init__.py +0 -0
  353. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/cli/completions/_completer.ps1 +0 -0
  354. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/cli/completions/_descriptor.py +0 -0
  355. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/cli/completions/bash.py +0 -0
  356. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/cli/completions/fish.py +0 -0
  357. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/cli/completions/powershell.py +0 -0
  358. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/cli/completions/zsh.py +0 -0
  359. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/cli/flag.py +0 -0
  360. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/cli/global_flag.py +0 -0
  361. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/cli/help_doc.py +0 -0
  362. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/cli/param.py +0 -0
  363. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/cli/primitive.py +0 -0
  364. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/cli/prompt/__init__.py +0 -0
  365. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/cli/prompt/_auto_complete.py +0 -0
  366. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/cli/prompt/_choices.py +0 -0
  367. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/cli/prompt/_confirm.py +0 -0
  368. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/cli/prompt/_core.py +0 -0
  369. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/cli/prompt/_date.py +0 -0
  370. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/cli/prompt/_date_parts.py +0 -0
  371. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/cli/prompt/_file.py +0 -0
  372. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/cli/prompt/_multi_select.py +0 -0
  373. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/cli/prompt/_number.py +0 -0
  374. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/cli/prompt/_select.py +0 -0
  375. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/cli/prompt/_text.py +0 -0
  376. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/cli/terminal_capabilities.py +0 -0
  377. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/clock.py +0 -0
  378. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/cluster/__init__.py +0 -0
  379. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/cluster/_cluster_abandon.py +0 -0
  380. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/cluster/_cluster_layer.py +0 -0
  381. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/cluster/_entity_activation.py +0 -0
  382. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/cluster/_entity_manager/__init__.py +0 -0
  383. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/cluster/_entity_manager/_activation.py +0 -0
  384. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/cluster/_entity_manager/_core.py +0 -0
  385. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/cluster/_entity_manager/_decode.py +0 -0
  386. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/cluster/_entity_manager/_manager.py +0 -0
  387. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/cluster/_entity_manager/_state.py +0 -0
  388. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/cluster/_entity_reaper.py +0 -0
  389. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/cluster/_hash.py +0 -0
  390. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/cluster/_interruptors.py +0 -0
  391. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/cluster/_resource_map.py +0 -0
  392. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/cluster/_resource_ref.py +0 -0
  393. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/cluster/_shard_lock.py +0 -0
  394. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/cluster/cluster_cron.py +0 -0
  395. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/cluster/cluster_error.py +0 -0
  396. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/cluster/cluster_http.py +0 -0
  397. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/cluster/cluster_metrics.py +0 -0
  398. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/cluster/cluster_schema.py +0 -0
  399. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/cluster/cluster_socket.py +0 -0
  400. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/cluster/cluster_workflow_engine/__init__.py +0 -0
  401. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/cluster/cluster_workflow_engine/_engine.py +0 -0
  402. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/cluster/cluster_workflow_engine/_entities.py +0 -0
  403. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/cluster/deliver_at.py +0 -0
  404. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/cluster/entity/__init__.py +0 -0
  405. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/cluster/entity/_entity.py +0 -0
  406. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/cluster/entity/_handlers.py +0 -0
  407. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/cluster/entity/_keep_alive.py +0 -0
  408. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/cluster/entity/_queue.py +0 -0
  409. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/cluster/entity/_request.py +0 -0
  410. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/cluster/entity/_services.py +0 -0
  411. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/cluster/entity/_test_client.py +0 -0
  412. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/cluster/entity_address.py +0 -0
  413. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/cluster/entity_id.py +0 -0
  414. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/cluster/entity_proxy.py +0 -0
  415. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/cluster/entity_proxy_server.py +0 -0
  416. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/cluster/entity_resource.py +0 -0
  417. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/cluster/entity_type.py +0 -0
  418. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/cluster/envelope.py +0 -0
  419. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/cluster/http_runner.py +0 -0
  420. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/cluster/k8s_http_client.py +0 -0
  421. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/cluster/k8s_types.py +0 -0
  422. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/cluster/machine_id.py +0 -0
  423. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/cluster/message.py +0 -0
  424. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/cluster/message_storage/__init__.py +0 -0
  425. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/cluster/message_storage/_encoded.py +0 -0
  426. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/cluster/message_storage/_memory.py +0 -0
  427. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/cluster/message_storage/_noop.py +0 -0
  428. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/cluster/message_storage/_service.py +0 -0
  429. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/cluster/reply.py +0 -0
  430. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/cluster/runner.py +0 -0
  431. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/cluster/runner_address.py +0 -0
  432. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/cluster/runner_health.py +0 -0
  433. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/cluster/runner_server.py +0 -0
  434. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/cluster/runner_storage.py +0 -0
  435. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/cluster/runners/__init__.py +0 -0
  436. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/cluster/runners/_local.py +0 -0
  437. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/cluster/runners/_noop.py +0 -0
  438. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/cluster/runners/_rpc.py +0 -0
  439. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/cluster/runners/_service.py +0 -0
  440. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/cluster/shard_id.py +0 -0
  441. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/cluster/sharding/__init__.py +0 -0
  442. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/cluster/sharding/_acquisition.py +0 -0
  443. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/cluster/sharding/_clients.py +0 -0
  444. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/cluster/sharding/_make.py +0 -0
  445. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/cluster/sharding/_routing.py +0 -0
  446. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/cluster/sharding/_runners_sync.py +0 -0
  447. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/cluster/sharding/_service.py +0 -0
  448. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/cluster/sharding/_singletons.py +0 -0
  449. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/cluster/sharding/_state.py +0 -0
  450. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/cluster/sharding/_storage_loop.py +0 -0
  451. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/cluster/sharding_config.py +0 -0
  452. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/cluster/sharding_registration_event.py +0 -0
  453. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/cluster/single_runner.py +0 -0
  454. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/cluster/singleton.py +0 -0
  455. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/cluster/singleton_address.py +0 -0
  456. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/cluster/snowflake.py +0 -0
  457. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/cluster/socket_runner.py +0 -0
  458. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/cluster/sql_message_storage.py +0 -0
  459. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/cluster/sql_runner_storage.py +0 -0
  460. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/cluster/test_runner.py +0 -0
  461. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/config/__init__.py +0 -0
  462. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/config/_all.py +0 -0
  463. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/config/_collections.py +0 -0
  464. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/config/_config.py +0 -0
  465. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/config/_constructors.py +0 -0
  466. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/config/_error.py +0 -0
  467. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/config/_leaf.py +0 -0
  468. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/config/_scalars.py +0 -0
  469. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/config/_schema.py +0 -0
  470. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/config_provider/__init__.py +0 -0
  471. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/config_provider/_dir.py +0 -0
  472. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/config_provider/_dotenv.py +0 -0
  473. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/config_provider/_env.py +0 -0
  474. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/config_provider/_layers.py +0 -0
  475. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/config_provider/_node.py +0 -0
  476. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/config_provider/_provider.py +0 -0
  477. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/config_provider/_unknown.py +0 -0
  478. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/console/__init__.py +0 -0
  479. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/console/_effects.py +0 -0
  480. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/console/_live.py +0 -0
  481. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/console/_service.py +0 -0
  482. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/console/_table.py +0 -0
  483. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/context.py +0 -0
  484. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/cron/__init__.py +0 -0
  485. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/cron/_model.py +0 -0
  486. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/cron/_search.py +0 -0
  487. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/cron/_text.py +0 -0
  488. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/cron/_wall.py +0 -0
  489. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/crypto.py +0 -0
  490. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/date_time/__init__.py +0 -0
  491. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/date_time/_calendar.py +0 -0
  492. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/date_time/_current.py +0 -0
  493. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/date_time/_epoch.py +0 -0
  494. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/date_time/_iso.py +0 -0
  495. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/date_time/_zones.py +0 -0
  496. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/date_time/intl.py +0 -0
  497. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/deferred.py +0 -0
  498. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/devtools/__init__.py +0 -0
  499. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/devtools/client.py +0 -0
  500. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/devtools/layers.py +0 -0
  501. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/devtools/schema.py +0 -0
  502. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/devtools/server.py +0 -0
  503. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/duration.py +0 -0
  504. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/effect.py +0 -0
  505. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/effectable.py +0 -0
  506. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/encoding/__init__.py +0 -0
  507. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/encoding/_archive.py +0 -0
  508. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/encoding/_json_array_scanner.py +0 -0
  509. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/encoding/base64.py +0 -0
  510. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/encoding/base64_url.py +0 -0
  511. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/encoding/encoding_error.py +0 -0
  512. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/encoding/hex.py +0 -0
  513. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/encoding/ini.py +0 -0
  514. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/encoding/json_array.py +0 -0
  515. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/encoding/ndjson.py +0 -0
  516. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/encoding/schema_binary/__init__.py +0 -0
  517. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/encoding/schema_binary/_channels.py +0 -0
  518. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/encoding/schema_binary/_decode.py +0 -0
  519. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/encoding/schema_binary/_dictionary.py +0 -0
  520. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/encoding/schema_binary/_encode.py +0 -0
  521. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/encoding/schema_binary/_fingerprint.py +0 -0
  522. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/encoding/schema_binary/_layout.py +0 -0
  523. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/encoding/schema_binary/_literals.py +0 -0
  524. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/encoding/schema_binary/_parser.py +0 -0
  525. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/encoding/schema_binary/_reader.py +0 -0
  526. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/encoding/schema_binary/_target.py +0 -0
  527. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/encoding/schema_binary/_values.py +0 -0
  528. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/encoding/schema_binary/_wire.py +0 -0
  529. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/encoding/sse.py +0 -0
  530. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/encoding/tar/__init__.py +0 -0
  531. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/encoding/tar/_decoder.py +0 -0
  532. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/encoding/tar/_encoder.py +0 -0
  533. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/encoding/tar/_header.py +0 -0
  534. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/encoding/tar/_model.py +0 -0
  535. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/encoding/toml.py +0 -0
  536. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/encoding/xml/__init__.py +0 -0
  537. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/encoding/xml/_chars.py +0 -0
  538. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/encoding/xml/_collector.py +0 -0
  539. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/encoding/xml/_inputs.py +0 -0
  540. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/encoding/xml/_model.py +0 -0
  541. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/encoding/xml/_parser.py +0 -0
  542. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/encoding/xml/_scanner.py +0 -0
  543. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/encoding/xml/_writer.py +0 -0
  544. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/encoding/yaml.py +0 -0
  545. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/encoding/zip/__init__.py +0 -0
  546. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/encoding/zip/_decoder.py +0 -0
  547. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/encoding/zip/_format.py +0 -0
  548. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/encoding/zip/_inflate.py +0 -0
  549. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/encoding/zip/_model.py +0 -0
  550. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/encoding/zip/_writer.py +0 -0
  551. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/error_reporter.py +0 -0
  552. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/errors.py +0 -0
  553. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/eventlog/__init__.py +0 -0
  554. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/eventlog/_conflicts.py +0 -0
  555. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/eventlog/_crypto.py +0 -0
  556. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/eventlog/_identity.py +0 -0
  557. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/eventlog/_identity_derivation.py +0 -0
  558. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/eventlog/_transferable_bytes.py +0 -0
  559. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/eventlog/_uuid.py +0 -0
  560. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/eventlog/event.py +0 -0
  561. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/eventlog/event_group.py +0 -0
  562. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/eventlog/event_journal.py +0 -0
  563. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/eventlog/event_log.py +0 -0
  564. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/eventlog/event_log_encryption.py +0 -0
  565. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/eventlog/event_log_message.py +0 -0
  566. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/eventlog/event_log_remote.py +0 -0
  567. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/eventlog/event_log_server.py +0 -0
  568. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/eventlog/event_log_server_encrypted.py +0 -0
  569. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/eventlog/event_log_server_unencrypted.py +0 -0
  570. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/eventlog/event_log_session_auth.py +0 -0
  571. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/eventlog/event_row.py +0 -0
  572. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/eventlog/sql_event_journal.py +0 -0
  573. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/eventlog/sql_event_log_server_encrypted.py +0 -0
  574. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/eventlog/sql_event_log_server_unencrypted.py +0 -0
  575. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/execution_plan/__init__.py +0 -0
  576. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/execution_plan/_events.py +0 -0
  577. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/execution_plan/_model.py +0 -0
  578. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/execution_plan/_run.py +0 -0
  579. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/exit.py +0 -0
  580. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/fiber_handle.py +0 -0
  581. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/fiber_map.py +0 -0
  582. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/fiber_set.py +0 -0
  583. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/file_system/__init__.py +0 -0
  584. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/file_system/_copy.py +0 -0
  585. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/file_system/_errors.py +0 -0
  586. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/file_system/_file.py +0 -0
  587. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/file_system/_live.py +0 -0
  588. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/file_system/_model.py +0 -0
  589. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/file_system/_noop.py +0 -0
  590. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/file_system/_service.py +0 -0
  591. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/file_system/_stat.py +0 -0
  592. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/file_system/_watch.py +0 -0
  593. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/filters.py +0 -0
  594. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/graph/__init__.py +0 -0
  595. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/graph/_all_pairs.py +0 -0
  596. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/graph/_combine.py +0 -0
  597. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/graph/_compact.py +0 -0
  598. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/graph/_components.py +0 -0
  599. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/graph/_cycles.py +0 -0
  600. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/graph/_enumerate.py +0 -0
  601. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/graph/_errors.py +0 -0
  602. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/graph/_flow.py +0 -0
  603. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/graph/_forest.py +0 -0
  604. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/graph/_graph.py +0 -0
  605. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/graph/_lowlink.py +0 -0
  606. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/graph/_matching.py +0 -0
  607. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/graph/_mutate.py +0 -0
  608. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/graph/_query.py +0 -0
  609. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/graph/_records.py +0 -0
  610. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/graph/_render.py +0 -0
  611. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/graph/_shortest.py +0 -0
  612. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/graph/_snapshot.py +0 -0
  613. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/graph/_store.py +0 -0
  614. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/graph/_traverse.py +0 -0
  615. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/graph/_view.py +0 -0
  616. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/graph/_walker.py +0 -0
  617. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/graphql/__init__.py +0 -0
  618. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/graphql/_codec.py +0 -0
  619. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/graphql/_http.py +0 -0
  620. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/graphql/_schemas.py +0 -0
  621. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/graphql/_slices.py +0 -0
  622. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/graphql/_template.py +0 -0
  623. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/graphql/_types.py +0 -0
  624. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/graphql/_ws.py +0 -0
  625. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/graphql/_ws_messages.py +0 -0
  626. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/graphql/client.py +0 -0
  627. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/graphql/client_error.py +0 -0
  628. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/graphql/group.py +0 -0
  629. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/graphql/middleware.py +0 -0
  630. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/graphql/operation.py +0 -0
  631. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/graphql/protocol.py +0 -0
  632. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/graphql/resolver.py +0 -0
  633. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/graphql/template.py +0 -0
  634. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/hash_map.py +0 -0
  635. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/hash_ring.py +0 -0
  636. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/hash_set.py +0 -0
  637. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/http/__init__.py +0 -0
  638. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/http/_asgi_listener.py +0 -0
  639. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/http/_authority.py +0 -0
  640. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/http/_brotli.py +0 -0
  641. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/http/_compression.py +0 -0
  642. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/http/_field.py +0 -0
  643. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/http/_foreign_path.py +0 -0
  644. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/http/_form_data.py +0 -0
  645. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/http/_httpx_options.py +0 -0
  646. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/http/_in_memory.py +0 -0
  647. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/http/_request_state.py +0 -0
  648. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/http/_vary.py +0 -0
  649. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/http/abort.py +0 -0
  650. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/http/asgi/__init__.py +0 -0
  651. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/http/asgi/_app.py +0 -0
  652. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/http/asgi/_http.py +0 -0
  653. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/http/asgi/_scope.py +0 -0
  654. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/http/asgi/_serve.py +0 -0
  655. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/http/asgi/_types.py +0 -0
  656. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/http/body.py +0 -0
  657. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/http/client/__init__.py +0 -0
  658. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/http/client/_circuit_breaker.py +0 -0
  659. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/http/client/_cookie_jar.py +0 -0
  660. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/http/client/_make.py +0 -0
  661. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/http/client/_rate_limit.py +0 -0
  662. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/http/client/_redirects.py +0 -0
  663. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/http/client/_retry.py +0 -0
  664. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/http/client/_service.py +0 -0
  665. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/http/cookies.py +0 -0
  666. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/http/error.py +0 -0
  667. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/http/etag.py +0 -0
  668. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/http/file_like.py +0 -0
  669. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/http/find_my_way/__init__.py +0 -0
  670. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/http/find_my_way/_nodes.py +0 -0
  671. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/http/find_my_way/_paths.py +0 -0
  672. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/http/find_my_way/_query_string.py +0 -0
  673. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/http/find_my_way/_router.py +0 -0
  674. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/http/headers.py +0 -0
  675. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/http/http_effect.py +0 -0
  676. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/http/httpx_client.py +0 -0
  677. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/http/hypercorn_server.py +0 -0
  678. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/http/live_server/__init__.py +0 -0
  679. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/http/live_server/_body.py +0 -0
  680. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/http/live_server/_exchange.py +0 -0
  681. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/http/live_server/_head.py +0 -0
  682. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/http/live_server/_inbound.py +0 -0
  683. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/http/live_server/_serve.py +0 -0
  684. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/http/live_server/_timers.py +0 -0
  685. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/http/live_server/_upgrade.py +0 -0
  686. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/http/live_server/_websocket.py +0 -0
  687. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/http/live_server/_ws_frames.py +0 -0
  688. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/http/method.py +0 -0
  689. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/http/middleware/__init__.py +0 -0
  690. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/http/middleware/_compression.py +0 -0
  691. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/http/middleware/_cors.py +0 -0
  692. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/http/middleware/_decompression.py +0 -0
  693. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/http/middleware/_forwarded.py +0 -0
  694. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/http/middleware/_logger.py +0 -0
  695. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/http/middleware/_search_params.py +0 -0
  696. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/http/middleware/_tracer.py +0 -0
  697. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/http/middleware/_types.py +0 -0
  698. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/http/mime/__init__.py +0 -0
  699. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/http/mime/_types.py +0 -0
  700. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/http/multipart.py +0 -0
  701. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/http/multipart_parser/_content_type.py +0 -0
  702. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/http/multipart_parser/_search.py +0 -0
  703. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/http/origin.py +0 -0
  704. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/http/platform.py +0 -0
  705. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/http/prometheus.py +0 -0
  706. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/http/request.py +0 -0
  707. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/http/response.py +0 -0
  708. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/http/router/__init__.py +0 -0
  709. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/http/router/_api.py +0 -0
  710. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/http/router/_in_memory.py +0 -0
  711. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/http/router/_markers.py +0 -0
  712. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/http/router/_middleware.py +0 -0
  713. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/http/router/_middleware_stack.py +0 -0
  714. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/http/router/_provided.py +0 -0
  715. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/http/router/_route.py +0 -0
  716. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/http/router/_router.py +0 -0
  717. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/http/schema.py +0 -0
  718. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/http/server.py +0 -0
  719. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/http/server_error.py +0 -0
  720. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/http/server_request.py +0 -0
  721. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/http/server_respondable.py +0 -0
  722. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/http/server_response.py +0 -0
  723. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/http/static_server/__init__.py +0 -0
  724. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/http/static_server/_conditional.py +0 -0
  725. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/http/static_server/_mime.py +0 -0
  726. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/http/static_server/_range.py +0 -0
  727. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/http/status.py +0 -0
  728. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/http/template.py +0 -0
  729. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/http/trace_context.py +0 -0
  730. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/http/url.py +0 -0
  731. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/http/url_params.py +0 -0
  732. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/http/uvicorn_server.py +0 -0
  733. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/http/web.py +0 -0
  734. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/http/web_handler.py +0 -0
  735. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/http/wire.py +0 -0
  736. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/http_api/__init__.py +0 -0
  737. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/http_api/_assets/scalar.js +0 -0
  738. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/http_api/_assets/swagger-ui.css +0 -0
  739. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/http_api/_assets/swagger-ui.js +0 -0
  740. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/http_api/_client_method.py +0 -0
  741. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/http_api/_client_payload.py +0 -0
  742. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/http_api/_client_response.py +0 -0
  743. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/http_api/_handlers.py +0 -0
  744. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/http_api/_html.py +0 -0
  745. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/http_api/_media_type.py +0 -0
  746. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/http_api/_openapi_responses.py +0 -0
  747. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/http_api/_openapi_schemas.py +0 -0
  748. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/http_api/_path.py +0 -0
  749. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/http_api/_payload.py +0 -0
  750. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/http_api/_response.py +0 -0
  751. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/http_api/_security.py +0 -0
  752. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/http_api/api.py +0 -0
  753. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/http_api/builder.py +0 -0
  754. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/http_api/client.py +0 -0
  755. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/http_api/endpoint.py +0 -0
  756. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/http_api/error.py +0 -0
  757. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/http_api/group.py +0 -0
  758. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/http_api/middleware.py +0 -0
  759. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/http_api/openapi.py +0 -0
  760. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/http_api/scalar.py +0 -0
  761. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/http_api/schema.py +0 -0
  762. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/http_api/security.py +0 -0
  763. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/http_api/swagger.py +0 -0
  764. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/http_api/test.py +0 -0
  765. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/json_patch.py +0 -0
  766. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/json_pointer.py +0 -0
  767. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/json_schema/__init__.py +0 -0
  768. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/json_schema/_api.py +0 -0
  769. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/json_schema/_converter.py +0 -0
  770. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/json_schema/_draft04.py +0 -0
  771. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/json_schema/_draft07.py +0 -0
  772. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/json_schema/_keywords.py +0 -0
  773. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/json_schema/_model.py +0 -0
  774. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/json_schema/_openapi.py +0 -0
  775. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/latch.py +0 -0
  776. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/layer.py +0 -0
  777. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/layer_map.py +0 -0
  778. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/layer_ref.py +0 -0
  779. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/logger/__init__.py +0 -0
  780. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/logger/_batched.py +0 -0
  781. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/logger/_console.py +0 -0
  782. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/logger/_file.py +0 -0
  783. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/logger/_formats.py +0 -0
  784. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/logger/_layer.py +0 -0
  785. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/logger/_level.py +0 -0
  786. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/logger/_log.py +0 -0
  787. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/logger/_model.py +0 -0
  788. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/logger/_refs.py +0 -0
  789. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/logger/_stdlib.py +0 -0
  790. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/logger/_text.py +0 -0
  791. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/logger/_tracer.py +0 -0
  792. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/metric/__init__.py +0 -0
  793. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/metric/_boundaries.py +0 -0
  794. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/metric/_prometheus.py +0 -0
  795. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/metric/_runtime.py +0 -0
  796. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/msgspec.py +0 -0
  797. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/mutable_hash_map.py +0 -0
  798. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/mutable_hash_set.py +0 -0
  799. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/net/__init__.py +0 -0
  800. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/net/_errors.py +0 -0
  801. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/net/address_resolver.py +0 -0
  802. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/net/dns/__init__.py +0 -0
  803. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/net/dns/_error.py +0 -0
  804. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/net/dns/_records.py +0 -0
  805. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/net/dns/_service.py +0 -0
  806. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/net/dns/_system.py +0 -0
  807. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/net/host.py +0 -0
  808. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/net/ip_interface.py +0 -0
  809. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/net/ip_network.py +0 -0
  810. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/net/net_address/__init__.py +0 -0
  811. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/net/net_address/_inet.py +0 -0
  812. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/net/net_address/_ip.py +0 -0
  813. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/net/net_address/_mac.py +0 -0
  814. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/optic/__init__.py +0 -0
  815. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/optic/_builtins.py +0 -0
  816. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/optic/_data.py +0 -0
  817. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/optic/_optic.py +0 -0
  818. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/optic/_steps.py +0 -0
  819. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/option.py +0 -0
  820. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/otel/__init__.py +0 -0
  821. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/otel/_producer.py +0 -0
  822. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/otel/_shutdown.py +0 -0
  823. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/otel/_span.py +0 -0
  824. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/otel/_wrapper.py +0 -0
  825. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/otel/logger.py +0 -0
  826. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/otel/metrics.py +0 -0
  827. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/otel/resource.py +0 -0
  828. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/otel/sdk.py +0 -0
  829. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/otel/tracer.py +0 -0
  830. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/partitioned_semaphore.py +0 -0
  831. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/path.py +0 -0
  832. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/persistence/__init__.py +0 -0
  833. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/persistence/_columns.py +0 -0
  834. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/persistence/_error.py +0 -0
  835. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/persistence/_seconds.py +0 -0
  836. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/persistence/_sql_keys.py +0 -0
  837. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/persistence/circuit_breaker/__init__.py +0 -0
  838. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/persistence/circuit_breaker/_breaker.py +0 -0
  839. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/persistence/circuit_breaker/_errors.py +0 -0
  840. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/persistence/circuit_breaker/_memory.py +0 -0
  841. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/persistence/circuit_breaker/_redis.py +0 -0
  842. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/persistence/circuit_breaker/_store.py +0 -0
  843. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/persistence/circuit_breaker/_types.py +0 -0
  844. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/persistence/key_value_store/__init__.py +0 -0
  845. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/persistence/key_value_store/_layers.py +0 -0
  846. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/persistence/key_value_store/_schema_store.py +0 -0
  847. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/persistence/key_value_store/_sql.py +0 -0
  848. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/persistence/key_value_store/_store.py +0 -0
  849. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/persistence/persistable.py +0 -0
  850. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/persistence/persisted_cache.py +0 -0
  851. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/persistence/persisted_queue/__init__.py +0 -0
  852. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/persistence/persisted_queue/_error.py +0 -0
  853. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/persistence/persisted_queue/_mailbox.py +0 -0
  854. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/persistence/persisted_queue/_memory.py +0 -0
  855. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/persistence/persisted_queue/_queue.py +0 -0
  856. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/persistence/persisted_queue/_redis.py +0 -0
  857. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/persistence/persisted_queue/_redis_scripts.py +0 -0
  858. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/persistence/persisted_queue/_sql.py +0 -0
  859. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/persistence/persisted_queue/_sql_migrations.py +0 -0
  860. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/persistence/persisted_queue/_sql_statements.py +0 -0
  861. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/persistence/persisted_queue/_store.py +0 -0
  862. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/persistence/persistence/__init__.py +0 -0
  863. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/persistence/persistence/_kvs.py +0 -0
  864. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/persistence/persistence/_memory.py +0 -0
  865. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/persistence/persistence/_redis.py +0 -0
  866. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/persistence/persistence/_service.py +0 -0
  867. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/persistence/persistence/_sql.py +0 -0
  868. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/persistence/rate_limiter/__init__.py +0 -0
  869. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/persistence/rate_limiter/_errors.py +0 -0
  870. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/persistence/rate_limiter/_limiter.py +0 -0
  871. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/persistence/rate_limiter/_memory.py +0 -0
  872. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/persistence/rate_limiter/_redis.py +0 -0
  873. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/persistence/rate_limiter/_store.py +0 -0
  874. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/persistence/redis/__init__.py +0 -0
  875. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/persistence/redis/_error.py +0 -0
  876. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/persistence/redis/_make.py +0 -0
  877. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/persistence/redis/_script.py +0 -0
  878. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/persistence/redis/_service.py +0 -0
  879. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/persistence/redis_py.py +0 -0
  880. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/persistence/user_directories.py +0 -0
  881. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/platform.py +0 -0
  882. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/platform_error.py +0 -0
  883. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/pool/__init__.py +0 -0
  884. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/pool/_pool.py +0 -0
  885. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/pool/_state.py +0 -0
  886. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/pool/_ttl.py +0 -0
  887. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/pool/_waiters.py +0 -0
  888. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/primary_key.py +0 -0
  889. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/process/__init__.py +0 -0
  890. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/process/_child.py +0 -0
  891. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/process/_command.py +0 -0
  892. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/process/_handle.py +0 -0
  893. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/process/_os.py +0 -0
  894. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/process/_spawner.py +0 -0
  895. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/pubsub/__init__.py +0 -0
  896. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/pubsub/_atomic.py +0 -0
  897. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/pubsub/_hub.py +0 -0
  898. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/pubsub/_pubsub.py +0 -0
  899. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/pubsub/_replay.py +0 -0
  900. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/pubsub/_subscription.py +0 -0
  901. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/pull.py +0 -0
  902. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/py.typed +0 -0
  903. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/pydantic.py +0 -0
  904. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/queue/__init__.py +0 -0
  905. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/queue/_queue.py +0 -0
  906. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/queue/_state.py +0 -0
  907. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/queue/_views.py +0 -0
  908. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/random.py +0 -0
  909. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/rc_map.py +0 -0
  910. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/rc_ref.py +0 -0
  911. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/reactivity/__init__.py +0 -0
  912. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/reactivity/_async_result_schema.py +0 -0
  913. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/reactivity/_hydration.py +0 -0
  914. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/reactivity/_live.py +0 -0
  915. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/reactivity/_reactivity.py +0 -0
  916. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/reactivity/_result_effect.py +0 -0
  917. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/reactivity/_time.py +0 -0
  918. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/reactivity/async_result.py +0 -0
  919. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/reactivity/atom/__init__.py +0 -0
  920. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/reactivity/atom/_combinators.py +0 -0
  921. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/reactivity/atom/_constructors.py +0 -0
  922. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/reactivity/atom/_conversions.py +0 -0
  923. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/reactivity/atom/_effect.py +0 -0
  924. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/reactivity/atom/_fn.py +0 -0
  925. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/reactivity/atom/_kvs.py +0 -0
  926. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/reactivity/atom/_optimistic.py +0 -0
  927. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/reactivity/atom/_runtime.py +0 -0
  928. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/reactivity/atom/_serializable.py +0 -0
  929. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/reactivity/atom/_subscription_ref.py +0 -0
  930. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/reactivity/atom/_swr.py +0 -0
  931. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/reactivity/atom/_types.py +0 -0
  932. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/reactivity/atom_http_api.py +0 -0
  933. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/reactivity/atom_ref.py +0 -0
  934. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/reactivity/atom_registry/__init__.py +0 -0
  935. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/reactivity/atom_registry/_batch.py +0 -0
  936. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/reactivity/atom_registry/_dispatcher.py +0 -0
  937. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/reactivity/atom_registry/_lifetime.py +0 -0
  938. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/reactivity/atom_registry/_node.py +0 -0
  939. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/reactivity/atom_registry/_registry.py +0 -0
  940. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/reactivity/atom_rpc.py +0 -0
  941. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/reactivity/hydration.py +0 -0
  942. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/redacted.py +0 -0
  943. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/ref.py +0 -0
  944. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/resource.py +0 -0
  945. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/result.py +0 -0
  946. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/rpc/__init__.py +0 -0
  947. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/rpc/_encoded_schema.py +0 -0
  948. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/rpc/_json_rpc.py +0 -0
  949. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/rpc/_methods.py +0 -0
  950. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/rpc/_rpc.py +0 -0
  951. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/rpc/client/__init__.py +0 -0
  952. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/rpc/client/_core.py +0 -0
  953. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/rpc/client/_http.py +0 -0
  954. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/rpc/client/_protocol.py +0 -0
  955. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/rpc/client/_serialized.py +0 -0
  956. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/rpc/client/_transports.py +0 -0
  957. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/rpc/client/_worker.py +0 -0
  958. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/rpc/client_error.py +0 -0
  959. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/rpc/group.py +0 -0
  960. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/rpc/message.py +0 -0
  961. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/rpc/middleware.py +0 -0
  962. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/rpc/schema.py +0 -0
  963. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/rpc/serialization.py +0 -0
  964. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/rpc/server/__init__.py +0 -0
  965. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/rpc/server/_core.py +0 -0
  966. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/rpc/server/_protocol.py +0 -0
  967. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/rpc/server/_serialized.py +0 -0
  968. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/rpc/server/_stdio.py +0 -0
  969. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/rpc/server/_transports.py +0 -0
  970. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/rpc/server/_worker.py +0 -0
  971. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/rpc/test.py +0 -0
  972. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/rpc/worker.py +0 -0
  973. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/run.py +0 -0
  974. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/schedule/__init__.py +0 -0
  975. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/schedule/_combinators.py +0 -0
  976. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/schedule/_constructors.py +0 -0
  977. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/schedule/_cron.py +0 -0
  978. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/schedule/_drive.py +0 -0
  979. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/schedule/_model.py +0 -0
  980. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/scheduler.py +0 -0
  981. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/schema/_arbitrary_graph.py +0 -0
  982. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/schema/_arbitrary_links.py +0 -0
  983. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/schema/_arbitrary_number.py +0 -0
  984. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/schema/_arrays.py +0 -0
  985. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/schema/_assignable.py +0 -0
  986. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/schema/_boolean_literals.py +0 -0
  987. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/schema/_checks_number.py +0 -0
  988. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/schema/_checks_order.py +0 -0
  989. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/schema/_checks_string.py +0 -0
  990. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/schema/_codec_links.py +0 -0
  991. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/schema/_collections.py +0 -0
  992. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/schema/_constructor_default.py +0 -0
  993. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/schema/_data.py +0 -0
  994. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/schema/_data_codecs.py +0 -0
  995. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/schema/_decimal_regexp.py +0 -0
  996. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/schema/_declare.py +0 -0
  997. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/schema/_duration_codecs.py +0 -0
  998. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/schema/_error.py +0 -0
  999. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/schema/_error_instance.py +0 -0
  1000. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/schema/_graph.py +0 -0
  1001. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/schema/_instances.py +0 -0
  1002. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/schema/_jsonschema/__init__.py +0 -0
  1003. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/schema/_jsonschema/_annotations.py +0 -0
  1004. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/schema/_jsonschema/_compile.py +0 -0
  1005. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/schema/_jsonschema/_exact.py +0 -0
  1006. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/schema/_jsonschema/_merge.py +0 -0
  1007. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/schema/_jsonschema/_objects.py +0 -0
  1008. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/schema/_jsonschema/_references.py +0 -0
  1009. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/schema/_jsonschema/_template.py +0 -0
  1010. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/schema/_net.py +0 -0
  1011. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/schema/_options.py +0 -0
  1012. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/schema/_parsed_text.py +0 -0
  1013. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/schema/_primitives.py +0 -0
  1014. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/schema/_record.py +0 -0
  1015. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/schema/_semver.py +0 -0
  1016. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/schema/_strategy/__init__.py +0 -0
  1017. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/schema/_strategy/_big_decimal.py +0 -0
  1018. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/schema/_strategy/_composites.py +0 -0
  1019. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/schema/_strategy/_leaves.py +0 -0
  1020. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/schema/_strategy/_net.py +0 -0
  1021. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/schema/_struct.py +0 -0
  1022. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/schema/_struct_keys.py +0 -0
  1023. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/schema/_template_literal.py +0 -0
  1024. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/schema/_to_codec_array_from_single.py +0 -0
  1025. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/schema/_to_codec_go_json.py +0 -0
  1026. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/schema/_to_codec_json.py +0 -0
  1027. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/schema/_to_codec_string_tree.py +0 -0
  1028. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/schema/_to_differ_json_patch.py +0 -0
  1029. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/schema/_to_encoder_xml.py +0 -0
  1030. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/schema/_to_equivalence.py +0 -0
  1031. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/schema/_to_formatter.py +0 -0
  1032. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/schema/_to_iso.py +0 -0
  1033. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/schema/_to_strategy.py +0 -0
  1034. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/schema/_tree.py +0 -0
  1035. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/schema/_type_walk.py +0 -0
  1036. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/schema/_undefined.py +0 -0
  1037. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/schema/_value_codecs.py +0 -0
  1038. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/schema/_values.py +0 -0
  1039. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/schema/_void.py +0 -0
  1040. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/schema/ast/_annotations.py +0 -0
  1041. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/schema/ast/_check.py +0 -0
  1042. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/schema/ast/_constructors.py +0 -0
  1043. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/schema/ast/_json.py +0 -0
  1044. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/schema/ast/_keywords.py +0 -0
  1045. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/schema/ast/_record.py +0 -0
  1046. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/schema/ast/_result.py +0 -0
  1047. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/schema/ast/_steps.py +0 -0
  1048. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/schema/getter/_binary.py +0 -0
  1049. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/schema/getter/_getter.py +0 -0
  1050. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/schema/getter/_make.py +0 -0
  1051. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/schema/getter/_text.py +0 -0
  1052. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/schema/getter/_tree_record.py +0 -0
  1053. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/schema/issue.py +0 -0
  1054. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/schema/model/__init__.py +0 -0
  1055. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/schema/model/_class.py +0 -0
  1056. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/schema/model/_dates.py +0 -0
  1057. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/schema/model/_fields.py +0 -0
  1058. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/schema/model/_toolkit.py +0 -0
  1059. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/schema/model/_uuid.py +0 -0
  1060. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/schema/representation/__init__.py +0 -0
  1061. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/schema/representation/_code.py +0 -0
  1062. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/schema/representation/_code_document.py +0 -0
  1063. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/schema/representation/_code_sort.py +0 -0
  1064. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/schema/representation/_from.py +0 -0
  1065. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/schema/representation/_import/__init__.py +0 -0
  1066. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/schema/representation/_import/_finalize.py +0 -0
  1067. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/schema/representation/_import/_intersect.py +0 -0
  1068. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/schema/representation/_import/_js_order.py +0 -0
  1069. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/schema/representation/_import/_keywords.py +0 -0
  1070. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/schema/representation/_import/_nodes.py +0 -0
  1071. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/schema/representation/_import/_translate.py +0 -0
  1072. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/schema/representation/_json.py +0 -0
  1073. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/schema/representation/_json_schema.py +0 -0
  1074. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/schema/representation/_model.py +0 -0
  1075. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/schema/representation/_revivers.py +0 -0
  1076. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/schema/representation/_to.py +0 -0
  1077. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/schema/transformation/__init__.py +0 -0
  1078. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/schema/transformation/_durations.py +0 -0
  1079. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/schema/transformation/_transformation.py +0 -0
  1080. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/schema/variant_schema/__init__.py +0 -0
  1081. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/schema/variant_schema/_class.py +0 -0
  1082. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/schema/variant_schema/_defaults.py +0 -0
  1083. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/schema/variant_schema/_field.py +0 -0
  1084. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/schema/variant_schema/_struct.py +0 -0
  1085. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/schema/variant_schema/_toolkit.py +0 -0
  1086. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/scope.py +0 -0
  1087. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/scoped_ref.py +0 -0
  1088. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/semaphore.py +0 -0
  1089. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/semver.py +0 -0
  1090. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/semver_range.py +0 -0
  1091. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/sink/__init__.py +0 -0
  1092. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/sink/_combinators.py +0 -0
  1093. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/sink/_constructors.py +0 -0
  1094. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/sink/_context.py +0 -0
  1095. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/sink/_folds.py +0 -0
  1096. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/sink/_for_each.py +0 -0
  1097. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/sink/_sink.py +0 -0
  1098. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/sink/_steps.py +0 -0
  1099. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/sink/_taking.py +0 -0
  1100. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/socket/__init__.py +0 -0
  1101. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/socket/_accepted.py +0 -0
  1102. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/socket/_errors.py +0 -0
  1103. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/socket/_loop.py +0 -0
  1104. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/socket/_net.py +0 -0
  1105. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/socket/_socket.py +0 -0
  1106. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/socket/_tls.py +0 -0
  1107. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/socket/_web_socket.py +0 -0
  1108. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/socket/datagram/__init__.py +0 -0
  1109. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/socket/datagram/_core.py +0 -0
  1110. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/socket/datagram/_errors.py +0 -0
  1111. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/socket/datagram/_live.py +0 -0
  1112. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/socket/datagram/_model.py +0 -0
  1113. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/socket/server.py +0 -0
  1114. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/socket/ws.py +0 -0
  1115. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/sql/__init__.py +0 -0
  1116. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/sql/_loop.py +0 -0
  1117. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/sql/clickhouse/__init__.py +0 -0
  1118. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/sql/clickhouse/_connection.py +0 -0
  1119. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/sql/clickhouse/_rows.py +0 -0
  1120. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/sql/clickhouse/client.py +0 -0
  1121. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/sql/clickhouse/config.py +0 -0
  1122. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/sql/clickhouse/driver.py +0 -0
  1123. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/sql/clickhouse/error.py +0 -0
  1124. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/sql/clickhouse/migrator.py +0 -0
  1125. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/sql/clickhouse/params.py +0 -0
  1126. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/sql/client/__init__.py +0 -0
  1127. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/sql/client/_client.py +0 -0
  1128. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/sql/client/_sqlite_acquirers.py +0 -0
  1129. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/sql/client/_transaction.py +0 -0
  1130. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/sql/connection.py +0 -0
  1131. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/sql/d1/__init__.py +0 -0
  1132. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/sql/d1/api.py +0 -0
  1133. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/sql/d1/client.py +0 -0
  1134. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/sql/d1/config.py +0 -0
  1135. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/sql/error.py +0 -0
  1136. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/sql/libsql/__init__.py +0 -0
  1137. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/sql/libsql/_connection.py +0 -0
  1138. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/sql/libsql/_hrana.py +0 -0
  1139. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/sql/libsql/_local.py +0 -0
  1140. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/sql/libsql/_targets.py +0 -0
  1141. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/sql/libsql/_values.py +0 -0
  1142. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/sql/libsql/client.py +0 -0
  1143. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/sql/libsql/config.py +0 -0
  1144. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/sql/libsql/migrator.py +0 -0
  1145. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/sql/libsql/sdk.py +0 -0
  1146. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/sql/migrator.py +0 -0
  1147. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/sql/model.py +0 -0
  1148. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/sql/mssql/__init__.py +0 -0
  1149. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/sql/mssql/_connection.py +0 -0
  1150. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/sql/mssql/_driver.py +0 -0
  1151. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/sql/mssql/_names.py +0 -0
  1152. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/sql/mssql/_pool.py +0 -0
  1153. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/sql/mssql/_tds.py +0 -0
  1154. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/sql/mssql/_tds_params.py +0 -0
  1155. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/sql/mssql/_worker.py +0 -0
  1156. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/sql/mssql/client.py +0 -0
  1157. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/sql/mssql/config.py +0 -0
  1158. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/sql/mssql/error.py +0 -0
  1159. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/sql/mssql/migrator.py +0 -0
  1160. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/sql/mssql/parameter.py +0 -0
  1161. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/sql/mssql/procedure.py +0 -0
  1162. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/sql/mssql/types.py +0 -0
  1163. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/sql/mysql/__init__.py +0 -0
  1164. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/sql/mysql/_asyncmy.py +0 -0
  1165. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/sql/mysql/_bind.py +0 -0
  1166. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/sql/mysql/_connection.py +0 -0
  1167. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/sql/mysql/_pool.py +0 -0
  1168. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/sql/mysql/_session.py +0 -0
  1169. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/sql/mysql/client.py +0 -0
  1170. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/sql/mysql/config.py +0 -0
  1171. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/sql/mysql/error.py +0 -0
  1172. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/sql/mysql/migrator.py +0 -0
  1173. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/sql/pg/__init__.py +0 -0
  1174. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/sql/pg/_resolve.py +0 -0
  1175. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/sql/pg/_session.py +0 -0
  1176. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/sql/pg/client.py +0 -0
  1177. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/sql/pg/config.py +0 -0
  1178. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/sql/pg/error.py +0 -0
  1179. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/sql/pg/migrator.py +0 -0
  1180. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/sql/pg/pool.py +0 -0
  1181. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/sql/resolver.py +0 -0
  1182. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/sql/result.py +0 -0
  1183. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/sql/schema.py +0 -0
  1184. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/sql/sqlite/__init__.py +0 -0
  1185. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/sql/sqlite/_connection.py +0 -0
  1186. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/sql/sqlite/_worker.py +0 -0
  1187. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/sql/sqlite/client.py +0 -0
  1188. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/sql/sqlite/migrator.py +0 -0
  1189. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/sql/statement/__init__.py +0 -0
  1190. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/sql/statement/_compiler.py +0 -0
  1191. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/sql/statement/_segments.py +0 -0
  1192. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/sql/statement/_statement.py +0 -0
  1193. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/sql/statement/_transforms.py +0 -0
  1194. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/sql/stream.py +0 -0
  1195. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/stdio.py +0 -0
  1196. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/stream/__init__.py +0 -0
  1197. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/stream/_async_iterable.py +0 -0
  1198. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/stream/_base.py +0 -0
  1199. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/stream/_bridge_methods.py +0 -0
  1200. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/stream/_catch.py +0 -0
  1201. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/stream/_catch_reason.py +0 -0
  1202. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/stream/_channel_methods.py +0 -0
  1203. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/stream/_chunk_methods.py +0 -0
  1204. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/stream/_chunking.py +0 -0
  1205. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/stream/_concat.py +0 -0
  1206. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/stream/_constructors.py +0 -0
  1207. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/stream/_context.py +0 -0
  1208. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/stream/_error_methods.py +0 -0
  1209. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/stream/_execution_plan.py +0 -0
  1210. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/stream/_fanout.py +0 -0
  1211. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/stream/_fanout_methods.py +0 -0
  1212. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/stream/_filter_methods.py +0 -0
  1213. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/stream/_grouping.py +0 -0
  1214. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/stream/_many.py +0 -0
  1215. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/stream/_map_methods.py +0 -0
  1216. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/stream/_mapping.py +0 -0
  1217. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/stream/_run.py +0 -0
  1218. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/stream/_run_methods.py +0 -0
  1219. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/stream/_service_methods.py +0 -0
  1220. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/stream/_sink_methods.py +0 -0
  1221. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/stream/_sinking.py +0 -0
  1222. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/stream/_sources.py +0 -0
  1223. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/stream/_stream.py +0 -0
  1224. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/stream/_taking.py +0 -0
  1225. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/stream/_text.py +0 -0
  1226. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/stream/_timing.py +0 -0
  1227. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/stream/_timing_methods.py +0 -0
  1228. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/stream/_zip_methods.py +0 -0
  1229. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/stream/_zipping.py +0 -0
  1230. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/subscription_ref.py +0 -0
  1231. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/synchronized_ref.py +0 -0
  1232. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/take.py +0 -0
  1233. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/terminal/__init__.py +0 -0
  1234. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/terminal/_service.py +0 -0
  1235. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/testing/__init__.py +0 -0
  1236. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/testing/_assertions.py +0 -0
  1237. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/testing/_clock.py +0 -0
  1238. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/testing/_console.py +0 -0
  1239. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/testing/_crypto.py +0 -0
  1240. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/testing/_decorators.py +0 -0
  1241. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/testing/_flaky.py +0 -0
  1242. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/testing/_layers.py +0 -0
  1243. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/testing/_prop.py +0 -0
  1244. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/testing/_runners.py +0 -0
  1245. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/testing/_runtime.py +0 -0
  1246. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/testing/_schema.py +0 -0
  1247. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/testing/plugin.py +0 -0
  1248. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/tracer/__init__.py +0 -0
  1249. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/tracer/_model.py +0 -0
  1250. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/tracer/_native.py +0 -0
  1251. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/tracer/_refs.py +0 -0
  1252. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/tracer/_spans.py +0 -0
  1253. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/transaction.py +0 -0
  1254. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/trie.py +0 -0
  1255. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/tx_chunk.py +0 -0
  1256. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/tx_deferred.py +0 -0
  1257. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/tx_hash_map.py +0 -0
  1258. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/tx_hash_set.py +0 -0
  1259. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/tx_priority_queue.py +0 -0
  1260. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/tx_pubsub.py +0 -0
  1261. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/tx_queue/__init__.py +0 -0
  1262. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/tx_queue/_queue.py +0 -0
  1263. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/tx_queue/_views.py +0 -0
  1264. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/tx_reentrant_lock.py +0 -0
  1265. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/tx_ref.py +0 -0
  1266. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/tx_semaphore.py +0 -0
  1267. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/tx_subscription_ref.py +0 -0
  1268. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/workers/__init__.py +0 -0
  1269. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/workers/_frames.py +0 -0
  1270. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/workers/_mailbox.py +0 -0
  1271. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/workers/_port.py +0 -0
  1272. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/workers/_process.py +0 -0
  1273. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/workers/_thread.py +0 -0
  1274. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/workers/python_worker.py +0 -0
  1275. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/workers/python_worker_runner.py +0 -0
  1276. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/workers/transferable.py +0 -0
  1277. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/workers/worker.py +0 -0
  1278. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/workers/worker_error.py +0 -0
  1279. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/workers/worker_runner.py +0 -0
  1280. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/workflow/__init__.py +0 -0
  1281. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/workflow/_crypto.py +0 -0
  1282. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/workflow/_encoded.py +0 -0
  1283. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/workflow/_memory.py +0 -0
  1284. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/workflow/_result.py +0 -0
  1285. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/workflow/_services.py +0 -0
  1286. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/workflow/_suspension.py +0 -0
  1287. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/workflow/activity.py +0 -0
  1288. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/workflow/durable_clock.py +0 -0
  1289. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/workflow/durable_deferred.py +0 -0
  1290. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/workflow/durable_queue.py +0 -0
  1291. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/workflow/workflow.py +0 -0
  1292. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/workflow/workflow_engine.py +0 -0
  1293. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/workflow/workflow_proxy.py +0 -0
  1294. {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/workflow/workflow_proxy_server.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: pyfect-dev
3
- Version: 0.1.0
3
+ Version: 0.1.1
4
4
  Summary: Effect-TS for Python: typed effects, a real fiber runtime, structured concurrency, services and layers.
5
5
  Author: Tyler Gibbs
6
6
  Author-email: Tyler Gibbs <tylergibbs048@gmail.com>
@@ -63,6 +63,7 @@ Description-Content-Type: text/markdown
63
63
  </p>
64
64
 
65
65
  <p align="center">
66
+ <a href="https://pypi.org/project/pyfect-dev/"><img alt="PyPI" src="https://img.shields.io/pypi/v/pyfect-dev?color=0a0a0a&label=pypi"></a>
66
67
  <a href="https://pyfect.dev/docs"><img alt="Docs" src="https://img.shields.io/badge/docs-pyfect.dev-0a0a0a"></a>
67
68
  <img alt="Python 3.13+" src="https://img.shields.io/badge/python-3.13%2B-0a0a0a">
68
69
  <img alt="pyright strict" src="https://img.shields.io/badge/pyright-strict-0a0a0a">
@@ -179,9 +180,9 @@ layer, concurrency, retries and timeouts.
179
180
  and `repeat`. [Schedules →](https://pyfect.dev/docs/schedules)
180
181
  - **Streams.** Pull-based streams, sinks and channels with backpressure, plus NDJSON, JSON
181
182
  array and Server-Sent Events framers. [Streams →](https://pyfect.dev/docs/streams)
182
- - **Schema.** Decode and encode data with Effect's error messages, generate JSON Schema and
183
- Hypothesis strategies, store schemas themselves as JSON documents, and plug into pydantic
184
- or msgspec.
183
+ - **Schema.** Decode and encode data with Effect's error messages, compile decoders at run
184
+ time or ahead of time, generate JSON Schema and Hypothesis strategies, store schemas
185
+ themselves as JSON documents, and plug into Standard Schema, pydantic or msgspec.
185
186
  [Schema →](https://pyfect.dev/docs/schema)
186
187
  - **Transactions.** Software transactional memory: `TxRef`, transactional queues, maps,
187
188
  locks and semaphores that commit atomically and retry without blocking a thread.
@@ -191,7 +192,8 @@ layer, concurrency, retries and timeouts.
191
192
  them as JSON. [Graphs →](https://pyfect.dev/docs/graph)
192
193
  - **Config.** Typed settings from the environment, `.env` files or dicts, with secrets kept
193
194
  out of logs. [Config →](https://pyfect.dev/docs/config)
194
- - **Observability.** Logging, spans, metrics and an OpenTelemetry bridge.
195
+ - **Observability.** Logging, spans and metrics, exported through Effect's own OTLP exporters
196
+ or the OpenTelemetry SDK.
195
197
  [Observability →](https://pyfect.dev/docs/observability)
196
198
  - **Platform.** Files, child processes, an HTTP client (httpx), an HTTP server (standard library,
197
199
  uvicorn, hypercorn for HTTP/2, or any ASGI server), and TCP, TLS, WebSocket
@@ -243,11 +245,12 @@ layer, concurrency, retries and timeouts.
243
245
  retry takes no real time. [Testing →](https://pyfect.dev/docs/testing)
244
246
 
245
247
  pyfect follows Effect v4, does what Effect does wherever Python can express it, and runs
246
- Effect's own test cases as its spec: over 21,000 tests, with a test that fails on any Effect
247
- test title neither ported nor omitted with a reason, and about 94% of Effect's API so far. Every
248
+ Effect's own test cases as its spec: over 22,000 tests, with a test that fails on any Effect
249
+ test title neither ported nor omitted with a reason, and about 95% of Effect's API so far. Every
248
250
  export of the core modules is listed against Effect's in [`docs/coverage/`](docs/coverage), and
249
251
  [`docs/PARITY.md`](docs/PARITY.md) tracks what is done, what is open and what still differs. One
250
252
  difference to know: a bare number as a `Duration` is seconds here and milliseconds in Effect.
253
+ 0.2.0 will switch to milliseconds; write `"5 seconds"` or a `timedelta` to be unaffected.
251
254
 
252
255
  ## Installation
253
256
 
@@ -277,6 +280,7 @@ generators never use it. See [Installation](https://pyfect.dev/docs/installation
277
280
 
278
281
  - [Documentation](https://pyfect.dev/docs): guides for each part of the library.
279
282
  - [API reference](https://pyfect.dev/docs/reference): every public function and class.
283
+ - [Changelog](CHANGELOG.md): what each release changed.
280
284
  - [Examples](examples/): a quickstart, batching, a FastAPI-style service, a stream pipeline
281
285
  and schema decoding, all checked by pyright.
282
286
  - [Effect's docs](https://effect.website/docs): the concepts carry over; pyfect uses
@@ -9,6 +9,7 @@
9
9
  </p>
10
10
 
11
11
  <p align="center">
12
+ <a href="https://pypi.org/project/pyfect-dev/"><img alt="PyPI" src="https://img.shields.io/pypi/v/pyfect-dev?color=0a0a0a&label=pypi"></a>
12
13
  <a href="https://pyfect.dev/docs"><img alt="Docs" src="https://img.shields.io/badge/docs-pyfect.dev-0a0a0a"></a>
13
14
  <img alt="Python 3.13+" src="https://img.shields.io/badge/python-3.13%2B-0a0a0a">
14
15
  <img alt="pyright strict" src="https://img.shields.io/badge/pyright-strict-0a0a0a">
@@ -125,9 +126,9 @@ layer, concurrency, retries and timeouts.
125
126
  and `repeat`. [Schedules →](https://pyfect.dev/docs/schedules)
126
127
  - **Streams.** Pull-based streams, sinks and channels with backpressure, plus NDJSON, JSON
127
128
  array and Server-Sent Events framers. [Streams →](https://pyfect.dev/docs/streams)
128
- - **Schema.** Decode and encode data with Effect's error messages, generate JSON Schema and
129
- Hypothesis strategies, store schemas themselves as JSON documents, and plug into pydantic
130
- or msgspec.
129
+ - **Schema.** Decode and encode data with Effect's error messages, compile decoders at run
130
+ time or ahead of time, generate JSON Schema and Hypothesis strategies, store schemas
131
+ themselves as JSON documents, and plug into Standard Schema, pydantic or msgspec.
131
132
  [Schema →](https://pyfect.dev/docs/schema)
132
133
  - **Transactions.** Software transactional memory: `TxRef`, transactional queues, maps,
133
134
  locks and semaphores that commit atomically and retry without blocking a thread.
@@ -137,7 +138,8 @@ layer, concurrency, retries and timeouts.
137
138
  them as JSON. [Graphs →](https://pyfect.dev/docs/graph)
138
139
  - **Config.** Typed settings from the environment, `.env` files or dicts, with secrets kept
139
140
  out of logs. [Config →](https://pyfect.dev/docs/config)
140
- - **Observability.** Logging, spans, metrics and an OpenTelemetry bridge.
141
+ - **Observability.** Logging, spans and metrics, exported through Effect's own OTLP exporters
142
+ or the OpenTelemetry SDK.
141
143
  [Observability →](https://pyfect.dev/docs/observability)
142
144
  - **Platform.** Files, child processes, an HTTP client (httpx), an HTTP server (standard library,
143
145
  uvicorn, hypercorn for HTTP/2, or any ASGI server), and TCP, TLS, WebSocket
@@ -189,11 +191,12 @@ layer, concurrency, retries and timeouts.
189
191
  retry takes no real time. [Testing →](https://pyfect.dev/docs/testing)
190
192
 
191
193
  pyfect follows Effect v4, does what Effect does wherever Python can express it, and runs
192
- Effect's own test cases as its spec: over 21,000 tests, with a test that fails on any Effect
193
- test title neither ported nor omitted with a reason, and about 94% of Effect's API so far. Every
194
+ Effect's own test cases as its spec: over 22,000 tests, with a test that fails on any Effect
195
+ test title neither ported nor omitted with a reason, and about 95% of Effect's API so far. Every
194
196
  export of the core modules is listed against Effect's in [`docs/coverage/`](docs/coverage), and
195
197
  [`docs/PARITY.md`](docs/PARITY.md) tracks what is done, what is open and what still differs. One
196
198
  difference to know: a bare number as a `Duration` is seconds here and milliseconds in Effect.
199
+ 0.2.0 will switch to milliseconds; write `"5 seconds"` or a `timedelta` to be unaffected.
197
200
 
198
201
  ## Installation
199
202
 
@@ -223,6 +226,7 @@ generators never use it. See [Installation](https://pyfect.dev/docs/installation
223
226
 
224
227
  - [Documentation](https://pyfect.dev/docs): guides for each part of the library.
225
228
  - [API reference](https://pyfect.dev/docs/reference): every public function and class.
229
+ - [Changelog](CHANGELOG.md): what each release changed.
226
230
  - [Examples](examples/): a quickstart, batching, a FastAPI-style service, a stream pipeline
227
231
  and schema decoding, all checked by pyright.
228
232
  - [Effect's docs](https://effect.website/docs): the concepts carry over; pyfect uses
@@ -1,6 +1,6 @@
1
1
  [project]
2
2
  name = "pyfect-dev"
3
- version = "0.1.0"
3
+ version = "0.1.1"
4
4
  description = "Effect-TS for Python: typed effects, a real fiber runtime, structured concurrency, services and layers."
5
5
  readme = "README.md"
6
6
  license = "MIT"
@@ -1,6 +1,6 @@
1
1
  [project]
2
2
  name = "pyfect-dev"
3
- version = "0.1.0"
3
+ version = "0.1.1"
4
4
  description = "Effect-TS for Python: typed effects, a real fiber runtime, structured concurrency, services and layers."
5
5
  readme = "README.md"
6
6
  authors = [{ name = "Tyler Gibbs", email = "tylergibbs048@gmail.com" }]
@@ -0,0 +1,9 @@
1
+ """pyfect's version (Effect's ``Version.getCurrentVersion()``)."""
2
+
3
+ from importlib.metadata import version
4
+ from typing import Final
5
+
6
+ from pyfect._extras import DISTRIBUTION
7
+
8
+ VERSION: Final = version(DISTRIBUTION)
9
+ """The installed distribution's version."""
@@ -78,6 +78,7 @@ from pyfect.ai.mcp_schema import (
78
78
  from pyfect.cause import Cause, Fail
79
79
  from pyfect.deferred import Deferred
80
80
  from pyfect.effect import (
81
+ die,
81
82
  fail,
82
83
  fail_cause,
83
84
  gen,
@@ -382,7 +383,14 @@ class Connection:
382
383
  self._listening.add(id)
383
384
  return fiber
384
385
 
385
- return served.fork_daemon().map(track)
386
+ def begin() -> Effect[Fiber[None, Never]]:
387
+ if id in self._inflight:
388
+ # As Effect's RpcServer: a request reusing an id still in
389
+ # flight is refused, unanswered, and the first keeps the id.
390
+ return _VOID.fork_daemon()
391
+ return served.fork_daemon().map(track)
392
+
393
+ return suspend(begin)
386
394
 
387
395
  def answer(
388
396
  self, id: RequestId, method: str, params: JsonObject, out: Send
@@ -390,7 +398,11 @@ class Connection:
390
398
  """The response to a request (``None`` when it was cancelled)."""
391
399
  version = requested_protocol_version(params)
392
400
  stateless = self.registry.find(version) if version is not None else None
393
- if stateless is not None and stateless.is_stateless:
401
+ if self.closed:
402
+ # A batch read on after its session ended: as Effect's
403
+ # clientMiddleware, the request dies before it is served.
404
+ answered: Effect[Wire, McpError] = die(RuntimeError("Mcp-Session-Id does not exist"))
405
+ elif stateless is not None and stateless.is_stateless:
394
406
  answered = self._stateless(stateless, id, method, params, out)
395
407
  elif version is not None and stateless is None and _offers_stateless(self.registry):
396
408
  answered = fail(_unsupported_version(version, self.registry))
@@ -658,8 +670,12 @@ class Connection:
658
670
  return self._feature(protocol, self.identity, method, params, out)
659
671
 
660
672
  def _initialize(self, params: JsonObject) -> Effect[Wire, McpError]:
661
- offered = params.get("protocolVersion")
662
- protocol = self.registry.select_stateful(offered if isinstance(offered, str) else None)
673
+ # The first initialize chooses the protocol for the session's life; a
674
+ # later one, as in Effect, keeps it and replaces only the client.
675
+ protocol = self.protocol
676
+ if protocol is None:
677
+ offered = params.get("protocolVersion")
678
+ protocol = self.registry.select_stateful(offered if isinstance(offered, str) else None)
663
679
  if protocol is None:
664
680
  return fail(_method_not_found("initialize"))
665
681
 
@@ -31,7 +31,7 @@ from pyfect.cache._expiry import (
31
31
  )
32
32
  from pyfect.cause import Cause
33
33
  from pyfect.context import Context
34
- from pyfect.duration import Seconds
34
+ from pyfect.duration import ZERO, Seconds
35
35
  from pyfect.exit import Exit, Failure, Success
36
36
  from pyfect.option import Option, Some
37
37
 
@@ -252,7 +252,7 @@ class Cache[K: Hashable = Unsubscripted, A = Unsubscripted, E = Never, R = Never
252
252
  if _interrupted(ex):
253
253
  self._remove(key, entry)
254
254
  return
255
- ttl = self._time_to_live(ex, key)
255
+ ttl = entry.time_to_live
256
256
  if ttl == 0:
257
257
  skip = True
258
258
  self._remove(key, entry)
@@ -281,7 +281,7 @@ class Cache[K: Hashable = Unsubscripted, A = Unsubscripted, E = Never, R = Never
281
281
  if _interrupted(ex):
282
282
  self._remove(key, entry)
283
283
  return
284
- ttl = self._time_to_live(ex, key)
284
+ ttl = entry.time_to_live
285
285
  if ttl == 0:
286
286
  if existing:
287
287
  self._discard(key)
@@ -300,14 +300,25 @@ class Cache[K: Hashable = Unsubscripted, A = Unsubscripted, E = Never, R = Never
300
300
  """An entry whose lookup has run up to its first wait (Effect's
301
301
  immediate fork), on a root fiber with this cache's services
302
302
  overridden by the caller's. A raising ``lookup`` fails the caller
303
- with a defect, as in Effect."""
303
+ with a defect, as in Effect.
304
+
305
+ The time to live is decided inside the lookup fiber, so the fiber's
306
+ observers call no user code: a raising ``time_to_live`` keeps
307
+ nothing and becomes the lookup's defect, which ends every caller.
308
+ (Effect calls it in an observer, where a raise hangs the callers.)"""
304
309
  lookup = self._lookup(key)
305
310
  lookup_fiber: Fiber[A, E] = new_root(
306
311
  fiber._run_scheduler, self._context.merge(fiber._context)
307
312
  )
308
313
  entry = _Entry[A, E](lookup_fiber)
309
314
  entry.release = lambda: self._remove(key, entry)
310
- start_root(lookup_fiber, lookup)
315
+
316
+ def decide_time_to_live(ex: Exit[A, E]) -> Effect[None]:
317
+ if not _interrupted(ex):
318
+ entry.time_to_live = self._time_to_live(ex, key)
319
+ return _VOID
320
+
321
+ start_root(lookup_fiber, lookup.on_exit(decide_time_to_live))
311
322
  return entry
312
323
 
313
324
  def _find(self, fiber: Fiber[Any, Any], key: K, *, touch: bool) -> _Entry[A, E] | None:
@@ -351,12 +362,14 @@ class Cache[K: Hashable = Unsubscripted, A = Unsubscripted, E = Never, R = Never
351
362
  class _Entry[A, E]:
352
363
  """A lookup and the callers waiting on it."""
353
364
 
354
- __slots__ = ("awaiters", "expires_at", "fiber", "release")
365
+ __slots__ = ("awaiters", "expires_at", "fiber", "release", "time_to_live")
355
366
 
356
367
  def __init__(self, fiber: Fiber[A, E]) -> None:
357
368
  self.fiber = fiber
358
369
  self.awaiters = 0
359
370
  self.expires_at: int | None = None
371
+ # Set as the lookup ends; stays zero if ``time_to_live`` raised.
372
+ self.time_to_live: Seconds = ZERO
360
373
  # Drops the entry from the cache when its waiters abandon it.
361
374
  self.release: Callable[[], None] | None = None
362
375
 
@@ -264,24 +264,25 @@ class Cause(Generic[E_co]):
264
264
  )
265
265
  return errors if errors or not self.reasons else (_interrupted(self),)
266
266
 
267
- def pretty(self) -> str:
268
- """``pretty_errors`` rendered with their tracebacks and cause chains,
269
- each followed by the span frames its reason records (Effect's
270
- `` at span (location)`` lines)."""
267
+ def pretty_stacks(self) -> tuple[str, ...]:
268
+ """Each of ``pretty_errors`` rendered with its traceback and cause
269
+ chain, followed by the span frames its reason records (Effect's
270
+ ``stack`` of each ``prettyErrors(cause, { includeCauseInStack })``
271
+ error)."""
271
272
  from pyfect._stack_frame import StackTrace, render
272
273
 
273
274
  errors = self.pretty_errors()
274
275
  reasons = [r for r in self.reasons if not isinstance(r, Interrupt)] or self.reasons[:1]
275
- return "\n\n".join(
276
- "\n".join(
277
- [
278
- _render_error(e),
279
- *render(_frame(r.annotations, StackTrace)),
280
- ]
281
- )
276
+ return tuple(
277
+ "\n".join([_render_error(e), *render(_frame(r.annotations, StackTrace))])
282
278
  for e, r in zip(errors, reasons, strict=True)
283
279
  )
284
280
 
281
+ def pretty(self) -> str:
282
+ """``pretty_stacks`` joined by blank lines (Effect's `` at span
283
+ (location)`` lines after each error)."""
284
+ return "\n\n".join(self.pretty_stacks())
285
+
285
286
 
286
287
  def _render_error(error: BaseException) -> str:
287
288
  """``error`` with its traceback and cause chain; a defect decoded from
@@ -14,7 +14,7 @@ from pyfect.encoding.schema_binary import _wire as W
14
14
  from pyfect.encoding.schema_binary._literals import literal_key, literal_kind_code, literal_text
15
15
  from pyfect.schema import ast
16
16
  from pyfect.schema._undefined import UNDEFINED_ID
17
- from pyfect.schema.ast._candidates import Sentinel, sentinels
17
+ from pyfect.schema.ast._candidates import Sentinel, collect_sentinels
18
18
  from pyfect.schema.ast._check import FilterGroup
19
19
 
20
20
  FIELD_ID_KEY = "~effect/encoding/SchemaBinary/fieldId"
@@ -438,7 +438,7 @@ class _Compiler:
438
438
  values.append(member.literal)
439
439
  continue
440
440
  if isinstance(member, ast.Objects | ast.Arrays):
441
- found = sentinels(member)
441
+ found = collect_sentinels(member)
442
442
  if found:
443
443
  variant_members.append((member, found))
444
444
  continue
@@ -15,8 +15,9 @@ from urllib.parse import urlsplit
15
15
 
16
16
  from pyfect._core import Effect, _WithFiber
17
17
  from pyfect._fiber import Fiber
18
- from pyfect.effect import fail, from_async, try_async
18
+ from pyfect.effect import fail, from_async, sync, try_async
19
19
  from pyfect.errors import TaggedError
20
+ from pyfect.exit import Exit
20
21
  from pyfect.http._foreign_path import decode_path
21
22
  from pyfect.http.abort import AbortController
22
23
  from pyfect.http.asgi._types import AsgiApplication, Message
@@ -83,15 +84,26 @@ def _scope(request: ServerRequest, state: Mapping[str, Any] | None) -> dict[str,
83
84
 
84
85
  class _Exchange:
85
86
  """One call of the application: ``receive`` reads the request body,
86
- ``send`` hands the response over."""
87
+ ``send`` hands the response over, and ``finish`` ends the call however
88
+ the response ended (read, dropped, bodyless, client gone)."""
87
89
 
88
- def __init__(self, body: AsyncIterator[bytes] | None) -> None:
90
+ def __init__(
91
+ self, app: AsgiApplication, scope: dict[str, Any], body: AsyncIterator[bytes] | None
92
+ ) -> None:
89
93
  loop = asyncio.get_running_loop()
90
94
  self._body = body
91
95
  self._body_done = False
92
- self.finished = asyncio.Event()
96
+ self._finished = asyncio.Event()
93
97
  self.started: asyncio.Future[tuple[int, list[tuple[str, str]]]] = loop.create_future()
94
98
  self.chunks: asyncio.Queue[bytes | None] = asyncio.Queue(_QUEUED_CHUNKS)
99
+ self.task = asyncio.ensure_future(app(scope, self.receive, self.send))
100
+
101
+ def finish(self) -> None:
102
+ """The response ended: the application sees a disconnect and is
103
+ cancelled if it still runs. Idempotent."""
104
+ self._finished.set()
105
+ if not self.task.done():
106
+ self.task.cancel()
95
107
 
96
108
  async def receive(self) -> Message:
97
109
  if not self._body_done:
@@ -104,7 +116,7 @@ class _Exchange:
104
116
  return {"type": "http.request", "body": chunk, "more_body": True}
105
117
  self._body_done = True
106
118
  return {"type": "http.request", "body": b"", "more_body": False}
107
- await self.finished.wait()
119
+ await self._finished.wait()
108
120
  return {"type": "http.disconnect"}
109
121
 
110
122
  async def send(self, message: Message) -> None:
@@ -116,16 +128,17 @@ class _Exchange:
116
128
  [(name.decode("latin-1"), value.decode("latin-1")) for name, value in headers],
117
129
  )
118
130
  )
119
- elif message["type"] == "http.response.body" and not self.finished.is_set():
131
+ elif message["type"] == "http.response.body" and not self._finished.is_set():
120
132
  chunk: bytes = message.get("body", b"")
121
133
  if chunk:
122
134
  await self.chunks.put(chunk)
123
135
  if not message.get("more_body", False):
124
- self.finished.set()
136
+ self._finished.set()
125
137
  await self.chunks.put(None)
126
138
 
127
139
 
128
- async def _body(exchange: _Exchange, task: asyncio.Task[None]) -> AsyncIterator[bytes]:
140
+ async def _body(exchange: _Exchange) -> AsyncIterator[bytes]:
141
+ task = exchange.task
129
142
  try:
130
143
  while True:
131
144
  getting = asyncio.ensure_future(exchange.chunks.get())
@@ -140,27 +153,20 @@ async def _body(exchange: _Exchange, task: asyncio.Task[None]) -> AsyncIterator[
140
153
  return
141
154
  yield chunk
142
155
  finally:
143
- exchange.finished.set()
144
- if not task.done():
145
- task.cancel()
156
+ exchange.finish()
146
157
 
147
158
 
148
- async def _call(
149
- app: AsgiApplication, scope: dict[str, Any], body: AsyncIterator[bytes] | None
150
- ) -> WebResponse:
151
- exchange = _Exchange(body)
152
- task = asyncio.ensure_future(app(scope, exchange.receive, exchange.send))
159
+ async def _call(exchange: _Exchange) -> WebResponse:
153
160
  try:
154
- await asyncio.wait((exchange.started, task), return_when=asyncio.FIRST_COMPLETED)
161
+ await asyncio.wait((exchange.started, exchange.task), return_when=asyncio.FIRST_COMPLETED)
155
162
  except asyncio.CancelledError:
156
- exchange.finished.set()
157
- task.cancel()
163
+ exchange.finish()
158
164
  raise
159
165
  if not exchange.started.done():
160
- task.result()
166
+ exchange.task.result()
161
167
  raise AsgiNoResponseError("the ASGI application returned without a response")
162
168
  status, headers = exchange.started.result()
163
- return WebResponse(_body(exchange, task), status=status, headers=headers)
169
+ return WebResponse(_body(exchange), status=status, headers=headers)
164
170
 
165
171
 
166
172
  def from_asgi(
@@ -182,10 +188,13 @@ def from_asgi(
182
188
  pass
183
189
  scope = _scope(request, state)
184
190
  body = None if web.body is None else web.chunks()
191
+ exchanges: list[_Exchange] = []
185
192
 
186
193
  async def call() -> WebResponse:
194
+ exchange = _Exchange(app, scope, body)
195
+ exchanges.append(exchange)
187
196
  try:
188
- return await _call(app, scope, body)
197
+ return await _call(exchange)
189
198
  except asyncio.CancelledError:
190
199
  controller.abort()
191
200
  raise
@@ -193,7 +202,18 @@ def from_asgi(
193
202
  def on_error(cause: Exception) -> HttpServerError:
194
203
  return HttpServerError(InternalError(request, "HttpApp.fromAsgi: Error in app", cause))
195
204
 
196
- return try_async(call, on_error).map(response_from_web)
205
+ called = try_async(call, on_error).map(response_from_web)
206
+ found, request_scope = fiber._context.lookup(Scope)
207
+ if not found:
208
+ return called
209
+
210
+ # The request's scope closes once the response ended, however it
211
+ # ended: its body read or dropped, never sent (HEAD, 204, 304), or
212
+ # the client gone.
213
+ def finish(_exit: Exit[Any, Any]) -> Effect[None]:
214
+ return sync(lambda: [exchange.finish() for exchange in exchanges]).as_void()
215
+
216
+ return request_scope.add_finalizer(finish).and_then(called)
197
217
 
198
218
  return _WithFiber(run)
199
219
 
@@ -56,6 +56,14 @@ _UPGRADED = empty(status=101)
56
56
  _LOST = (1005, 1006)
57
57
  """Disconnect codes of a connection that ended without a closing handshake."""
58
58
 
59
+ _MOVES: dict[int, frozenset[int]] = {
60
+ CONNECTING: frozenset({OPEN, CLOSED}),
61
+ OPEN: frozenset({CLOSING, CLOSED}),
62
+ CLOSING: frozenset({CLOSED}),
63
+ CLOSED: frozenset(),
64
+ }
65
+ """The ready states each state may move to: a closed socket never reopens."""
66
+
59
67
 
60
68
  class AsgiWebSocket:
61
69
  """A browser-style WebSocket over an ASGI ``websocket`` connection.
@@ -143,10 +151,19 @@ class AsgiWebSocket:
143
151
  if self._state != CONNECTING:
144
152
  raise ConnectionError("The socket closed before the upgrade")
145
153
  await self._send({"type": "websocket.accept", "subprotocol": subprotocol})
146
- self._state = OPEN
154
+ if not self._move(OPEN):
155
+ raise ConnectionError("The socket closed during the upgrade")
147
156
  self._writer = self._loop.create_task(self._write())
148
157
  self._dispatch("open", WebSocketEvent(type="open"))
149
158
 
159
+ def _move(self, to: int) -> bool:
160
+ """The only place the ready state changes; ``False`` when ``to`` is not
161
+ a move from the current state."""
162
+ if to not in _MOVES[self._state]:
163
+ return False
164
+ self._state = to
165
+ return True
166
+
150
167
  def _dispatch(self, type: WebSocketEventType, event: WebSocketEvent) -> None:
151
168
  with self._lock:
152
169
  entries = self._listeners.get(type, [])
@@ -161,8 +178,7 @@ class AsgiWebSocket:
161
178
  )
162
179
 
163
180
  def _close(self, code: int, reason: str) -> None:
164
- if self._state == OPEN:
165
- self._state = CLOSING
181
+ if self._move(CLOSING):
166
182
  close: Message = {"type": "websocket.close", "code": code, "reason": reason}
167
183
  self._outgoing.put_nowait((close, 0))
168
184
 
@@ -184,7 +200,7 @@ class AsgiWebSocket:
184
200
 
185
201
  def _disconnected(self, code: int, reason: str) -> None:
186
202
  opened = self._state != CONNECTING
187
- self._state = CLOSED
203
+ self._move(CLOSED)
188
204
  if not self._closing and (code in _LOST or not opened):
189
205
  self.lost.set()
190
206
  self._outgoing.put_nowait(None)
@@ -22,11 +22,11 @@ from pyfect.schema import (
22
22
  to_codec_json,
23
23
  )
24
24
  from pyfect.schema._options import ParseOptions
25
+ from pyfect.schema.getter._json_options import JsonReviver, revive
25
26
  from pyfect.stream import Stream
26
27
 
27
- type Reviver = Callable[[str, object], object]
28
- """``JSON.parse``'s reviver: called with each key (``""`` for the root) and
29
- its parsed value, children first; what it returns replaces the value."""
28
+ type Reviver = JsonReviver
29
+ """``JSON.parse``'s reviver (``getter.JsonReviver``)."""
30
30
 
31
31
 
32
32
  class HttpIncomingMessage[E](Protocol):
@@ -63,22 +63,6 @@ class MessageDecoder[T, RD](Protocol):
63
63
  def __call__[E](self, message: HttpIncomingMessage[E], /) -> Effect[T, E | SchemaError, RD]: ...
64
64
 
65
65
 
66
- def revive(value: object, reviver: Reviver) -> object:
67
- """``value`` (parsed JSON) walked as ``JSON.parse`` walks it with
68
- ``reviver``."""
69
-
70
- def walk(key: str, node: object) -> object:
71
- if isinstance(node, list):
72
- items: list[object] = node # pyright: ignore[reportUnknownVariableType]
73
- node = [walk(str(i), item) for i, item in enumerate(items)]
74
- elif isinstance(node, dict):
75
- entries: dict[str, object] = node # pyright: ignore[reportUnknownVariableType]
76
- node = {k: walk(k, v) for k, v in entries.items()}
77
- return reviver(key, node)
78
-
79
- return walk("", value)
80
-
81
-
82
66
  _parse_json = decode_effect(from_json_string(Unknown))
83
67
 
84
68
 
@@ -166,7 +166,7 @@ class Listener:
166
166
  for conn in pending + idle:
167
167
  conn.close(graceful=True)
168
168
 
169
- drained = timeout_option(self.signal.wait_until(lambda: not self._serving), timeout)
169
+ drained = timeout_option(self.signal.wait(lambda: not self._serving), timeout)
170
170
  return sync(start).flat_map(lambda _: drained).as_void()
171
171
 
172
172