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.
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/PKG-INFO +11 -7
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/README.md +10 -6
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/pyproject.toml +1 -1
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/pyproject.toml.orig +1 -1
- pyfect_dev-0.1.1/src/pyfect/_version.py +9 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/ai/_mcp/dispatch.py +20 -4
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/cache/_cache.py +19 -6
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/cause.py +12 -11
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/encoding/schema_binary/_compile.py +2 -2
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/http/asgi/_mount.py +43 -23
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/http/asgi/_web_socket.py +20 -4
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/http/incoming_message.py +3 -19
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/http/live_server/_listener.py +1 -1
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/http/multipart_parser/__init__.py +116 -92
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/http/multipart_parser/_headers.py +9 -1
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/managed_runtime.py +4 -2
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/metric/_kinds.py +6 -6
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/metric/_metric.py +5 -2
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/metric/_refs.py +3 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/metric/_snapshot.py +1 -1
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/metric/_state.py +2 -0
- pyfect_dev-0.1.1/src/pyfect/observability/__init__.py +17 -0
- pyfect_dev-0.1.1/src/pyfect/observability/_otlp_env.py +108 -0
- pyfect_dev-0.1.1/src/pyfect/observability/_otlp_metric_points.py +246 -0
- pyfect_dev-0.1.1/src/pyfect/observability/_otlp_protobuf.py +326 -0
- pyfect_dev-0.1.1/src/pyfect/observability/_pretty.py +43 -0
- pyfect_dev-0.1.1/src/pyfect/observability/_protobuf.py +122 -0
- pyfect_dev-0.1.1/src/pyfect/observability/otlp.py +175 -0
- pyfect_dev-0.1.1/src/pyfect/observability/otlp_exporter.py +264 -0
- pyfect_dev-0.1.1/src/pyfect/observability/otlp_logger.py +257 -0
- pyfect_dev-0.1.1/src/pyfect/observability/otlp_metrics.py +208 -0
- pyfect_dev-0.1.1/src/pyfect/observability/otlp_proxy.py +252 -0
- pyfect_dev-0.1.1/src/pyfect/observability/otlp_resource.py +263 -0
- pyfect_dev-0.1.1/src/pyfect/observability/otlp_serialization.py +83 -0
- pyfect_dev-0.1.1/src/pyfect/observability/otlp_tracer.py +428 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/otel/_attributes.py +2 -3
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/process/_live.py +9 -1
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/process/_pipes.py +22 -21
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/schema/__init__.py +26 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/schema/_adapters.py +1 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/schema/_arbitrary_constraint.py +3 -1
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/schema/_checks_size.py +9 -1
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/schema/_class.py +33 -3
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/schema/_codec_derivation.py +2 -1
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/schema/_codecs.py +13 -4
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/schema/_derive.py +10 -2
- pyfect_dev-0.1.1/src/pyfect/schema/_ecma_flags.py +74 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/schema/_ecma_pattern.py +96 -36
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/schema/_jsonschema/_checks.py +12 -3
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/schema/_literals.py +31 -1
- pyfect_dev-0.1.1/src/pyfect/schema/_make.py +64 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/schema/_middleware.py +86 -3
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/schema/_parse.py +122 -22
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/schema/_refine.py +29 -8
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/schema/_schema.py +12 -6
- pyfect_dev-0.1.1/src/pyfect/schema/_standard_schema.py +278 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/schema/_tagged.py +2 -2
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/schema/_transform.py +18 -2
- pyfect_dev-0.1.1/src/pyfect/schema/aot_compiler/__init__.py +184 -0
- pyfect_dev-0.1.1/src/pyfect/schema/aot_compiler/build.py +222 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/schema/ast/__init__.py +21 -1
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/schema/ast/_arrays.py +12 -10
- pyfect_dev-0.1.1/src/pyfect/schema/ast/_base.py +544 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/schema/ast/_candidates.py +93 -30
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/schema/ast/_class.py +8 -3
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/schema/ast/_declaration.py +15 -7
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/schema/ast/_encoding.py +10 -2
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/schema/ast/_literal.py +8 -3
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/schema/ast/_objects.py +125 -40
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/schema/ast/_suspend.py +13 -4
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/schema/ast/_template_literal.py +6 -4
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/schema/ast/_union.py +6 -7
- pyfect_dev-0.1.1/src/pyfect/schema/compiler/__init__.py +69 -0
- pyfect_dev-0.1.1/src/pyfect/schema/compiler/_codegen.py +626 -0
- pyfect_dev-0.1.1/src/pyfect/schema/compiler/_registry.py +365 -0
- pyfect_dev-0.1.1/src/pyfect/schema/compiler/runtime.py +363 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/schema/getter/__init__.py +3 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/schema/getter/_coerce.py +26 -13
- pyfect_dev-0.1.1/src/pyfect/schema/getter/_json_options.py +60 -0
- pyfect_dev-0.1.1/src/pyfect/schema/jit_compiler/__init__.py +122 -0
- pyfect_dev-0.1.1/src/pyfect/schema/jit_compiler/install.py +10 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/schema/representation/_builtin_revivers.py +7 -9
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/schema/representation/_code_builtins.py +4 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/schema/transformation/_builtins.py +15 -6
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/socket/_connection.py +34 -27
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/socket/_tls_session.py +29 -9
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/sql/pg/connection.py +59 -36
- pyfect_dev-0.1.1/src/pyfect/terminal/_keys.py +262 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/terminal/_live.py +27 -11
- pyfect_dev-0.1.0/src/pyfect/schema/ast/_base.py +0 -295
- pyfect_dev-0.1.0/src/pyfect/terminal/_keys.py +0 -113
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/LICENSE +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/__init__.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/_all.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/_background.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/_binary_codecs.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/_cached.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/_catch.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/_catch_reason.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/_concurrency.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/_context_effects.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/_context_managers.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/_core.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/_digits.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/_effect_args.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/_effect_base.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/_effect_concurrency.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/_effect_eager.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/_effect_errors.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/_effect_folding.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/_effect_hash.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/_effect_logging.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/_effect_metrics.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/_effect_resources.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/_effect_services.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/_effect_timing.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/_effect_tracing.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/_equal.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/_extras.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/_fiber.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/_fiber_all.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/_fiber_collections.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/_fn.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/_hamt.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/_interrupt_reason.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/_isaac.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/_iterables.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/_js.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/_js_date.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/_json_text.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/_json_value.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/_layer_core.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/_layer_for_life.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/_layer_tracing.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/_locked_ref.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/_loop_thread.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/_metric_ref.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/_one_or_many.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/_os_wait.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/_path_posix.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/_primitives.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/_public.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/_reasons.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/_released.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/_root.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/_round_robin.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/_some.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/_stack.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/_stack_frame.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/_string_hash.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/_subscriber_queue.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/_tags.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/_tracer_ref.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/_tx_ops.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/_unsubscripted.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/_url.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/_waiters.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/_wake_tracking.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/_wire_codec.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/ai/__init__.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/ai/_approvals.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/ai/_decision_answers.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/ai/_generated_client.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/ai/_generated_support.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/ai/_mcp/__init__.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/ai/_mcp/batch.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/ai/_mcp/client_transport.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/ai/_mcp/client_wire.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/ai/_mcp/core.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/ai/_mcp/http.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/ai/_mcp/http_admission.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/ai/_mcp/http_status.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/ai/_mcp/input_wire.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/ai/_mcp/log_levels.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/ai/_mcp/param_headers.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/ai/_mcp/projection.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/ai/_mcp/register.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/ai/_mcp/reverse_policy.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/ai/_mcp/routing_header.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/ai/_mcp/sessions.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/ai/_mcp/stdio.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/ai/_mcp/subscriptions.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/ai/_mcp/tool_schema.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/ai/_noul_answers.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/ai/_openai_all_of.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/ai/_openai_errors.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/ai/_provider.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/ai/_provider_tools.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/ai/_stream_resolution.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/ai/_structured_output_checks.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/ai/_structured_output_codec.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/ai/_structured_output_json.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/ai/_tool_call_ids.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/ai/ai_error.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/ai/anthropic/__init__.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/ai/anthropic/_errors.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/ai/anthropic/_prompt.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/ai/anthropic/_response.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/ai/anthropic/_schema.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/ai/anthropic/_stream.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/ai/anthropic/_tools.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/ai/anthropic/client.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/ai/anthropic/config.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/ai/anthropic/error.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/ai/anthropic/language_model.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/ai/anthropic/telemetry.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/ai/anthropic/tool.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/ai/anthropic_structured_output.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/ai/chat.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/ai/cloudflare/__init__.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/ai/cloudflare/_errors.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/ai/cloudflare/client.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/ai/cloudflare/decision_model.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/ai/cloudflare/schema.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/ai/decision.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/ai/decision_model.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/ai/embedding_model.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/ai/id_generator.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/ai/language_model.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/ai/mcp_client.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/ai/mcp_client_error.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/ai/mcp_protocol.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/ai/mcp_schema.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/ai/mcp_server.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/ai/model.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/ai/openai/__init__.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/ai/openai/_errors.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/ai/openai/_prompt.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/ai/openai/_requests.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/ai/openai/_response.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/ai/openai/_schema.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/ai/openai/_stream.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/ai/openai/_tools.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/ai/openai/_web_socket.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/ai/openai/client.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/ai/openai/client_generated.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/ai/openai/config.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/ai/openai/decision_model.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/ai/openai/embedding_model.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/ai/openai/error.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/ai/openai/generated/__init__.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/ai/openai/generated/_recursive.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/ai/openai/generated/_schemas_0.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/ai/openai/generated/_schemas_1.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/ai/openai/generated/_schemas_2.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/ai/openai/generated/_schemas_3.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/ai/openai/generated/client.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/ai/openai/generated/types.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/ai/openai/language_model.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/ai/openai/telemetry.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/ai/openai/tool.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/ai/openai_compat/__init__.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/ai/openai_compat/_prompt.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/ai/openai_compat/_request.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/ai/openai_compat/_response.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/ai/openai_compat/_schema.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/ai/openai_compat/client.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/ai/openai_compat/config.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/ai/openai_compat/embedding_model.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/ai/openai_compat/error.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/ai/openai_compat/language_model.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/ai/openai_compat/telemetry.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/ai/openai_structured_output.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/ai/openrouter/__init__.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/ai/openrouter/_errors.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/ai/openrouter/_prompt.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/ai/openrouter/_response.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/ai/openrouter/_stream.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/ai/openrouter/client.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/ai/openrouter/config.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/ai/openrouter/decision_model.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/ai/openrouter/error.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/ai/openrouter/generated/__init__.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/ai/openrouter/generated/_recursive.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/ai/openrouter/generated/_schemas_0.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/ai/openrouter/generated/_schemas_1.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/ai/openrouter/generated/client.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/ai/openrouter/generated/types.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/ai/openrouter/language_model.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/ai/openrouter/schema.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/ai/prompt.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/ai/response.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/ai/response_id_tracker.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/ai/telemetry.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/ai/tokenizer.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/ai/tool.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/ai/toolkit.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/ai/typesafe/__init__.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/ai/typesafe/_errors.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/ai/typesafe/client.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/ai/typesafe/config.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/ai/typesafe/decision_model.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/ai/typesafe/schema.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/batching/__init__.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/batching/_api.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/batching/_engine.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/batching/_from_effect.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/batching/_persisted.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/batching/_request.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/batching/_resolver.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/batching/_with_cache.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/big_decimal.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/brand.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/byte_size.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/cache/__init__.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/cache/_expiry.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/cache/_scoped_cache.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/case.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/channel/__init__.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/channel/_base.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/channel/_catch.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/channel/_catch_reason.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/channel/_channel.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/channel/_combinators.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/channel/_concurrency_methods.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/channel/_concurrent_map.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/channel/_constructors.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/channel/_context.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/channel/_error_methods.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/channel/_errors.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/channel/_filters.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/channel/_lifecycle.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/channel/_lifecycle_methods.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/channel/_loop.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/channel/_merge.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/channel/_repeat.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/channel/_run.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/channel/_run_methods.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/channel/_sinks.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/channel/_sources.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/channel/_text.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/channel/_transform_methods.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/channel/_upstream.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/channel_schema.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/cli/__init__.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/cli/_ansi.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/cli/_command.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/cli/_config.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/cli/_environment.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/cli/_help.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/cli/_lexer.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/cli/_parser.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/cli/_settings.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/cli/_suggest.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/cli/_width.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/cli/_wizard.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/cli/argument.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/cli/cli_config.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/cli/cli_error.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/cli/cli_output.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/cli/command.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/cli/completions/__init__.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/cli/completions/_completer.ps1 +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/cli/completions/_descriptor.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/cli/completions/bash.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/cli/completions/fish.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/cli/completions/powershell.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/cli/completions/zsh.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/cli/flag.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/cli/global_flag.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/cli/help_doc.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/cli/param.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/cli/primitive.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/cli/prompt/__init__.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/cli/prompt/_auto_complete.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/cli/prompt/_choices.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/cli/prompt/_confirm.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/cli/prompt/_core.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/cli/prompt/_date.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/cli/prompt/_date_parts.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/cli/prompt/_file.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/cli/prompt/_multi_select.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/cli/prompt/_number.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/cli/prompt/_select.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/cli/prompt/_text.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/cli/terminal_capabilities.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/clock.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/cluster/__init__.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/cluster/_cluster_abandon.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/cluster/_cluster_layer.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/cluster/_entity_activation.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/cluster/_entity_manager/__init__.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/cluster/_entity_manager/_activation.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/cluster/_entity_manager/_core.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/cluster/_entity_manager/_decode.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/cluster/_entity_manager/_manager.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/cluster/_entity_manager/_state.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/cluster/_entity_reaper.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/cluster/_hash.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/cluster/_interruptors.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/cluster/_resource_map.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/cluster/_resource_ref.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/cluster/_shard_lock.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/cluster/cluster_cron.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/cluster/cluster_error.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/cluster/cluster_http.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/cluster/cluster_metrics.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/cluster/cluster_schema.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/cluster/cluster_socket.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/cluster/cluster_workflow_engine/__init__.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/cluster/cluster_workflow_engine/_engine.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/cluster/cluster_workflow_engine/_entities.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/cluster/deliver_at.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/cluster/entity/__init__.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/cluster/entity/_entity.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/cluster/entity/_handlers.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/cluster/entity/_keep_alive.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/cluster/entity/_queue.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/cluster/entity/_request.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/cluster/entity/_services.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/cluster/entity/_test_client.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/cluster/entity_address.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/cluster/entity_id.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/cluster/entity_proxy.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/cluster/entity_proxy_server.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/cluster/entity_resource.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/cluster/entity_type.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/cluster/envelope.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/cluster/http_runner.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/cluster/k8s_http_client.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/cluster/k8s_types.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/cluster/machine_id.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/cluster/message.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/cluster/message_storage/__init__.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/cluster/message_storage/_encoded.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/cluster/message_storage/_memory.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/cluster/message_storage/_noop.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/cluster/message_storage/_service.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/cluster/reply.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/cluster/runner.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/cluster/runner_address.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/cluster/runner_health.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/cluster/runner_server.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/cluster/runner_storage.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/cluster/runners/__init__.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/cluster/runners/_local.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/cluster/runners/_noop.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/cluster/runners/_rpc.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/cluster/runners/_service.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/cluster/shard_id.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/cluster/sharding/__init__.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/cluster/sharding/_acquisition.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/cluster/sharding/_clients.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/cluster/sharding/_make.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/cluster/sharding/_routing.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/cluster/sharding/_runners_sync.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/cluster/sharding/_service.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/cluster/sharding/_singletons.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/cluster/sharding/_state.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/cluster/sharding/_storage_loop.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/cluster/sharding_config.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/cluster/sharding_registration_event.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/cluster/single_runner.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/cluster/singleton.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/cluster/singleton_address.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/cluster/snowflake.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/cluster/socket_runner.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/cluster/sql_message_storage.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/cluster/sql_runner_storage.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/cluster/test_runner.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/config/__init__.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/config/_all.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/config/_collections.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/config/_config.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/config/_constructors.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/config/_error.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/config/_leaf.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/config/_scalars.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/config/_schema.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/config_provider/__init__.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/config_provider/_dir.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/config_provider/_dotenv.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/config_provider/_env.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/config_provider/_layers.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/config_provider/_node.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/config_provider/_provider.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/config_provider/_unknown.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/console/__init__.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/console/_effects.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/console/_live.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/console/_service.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/console/_table.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/context.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/cron/__init__.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/cron/_model.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/cron/_search.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/cron/_text.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/cron/_wall.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/crypto.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/date_time/__init__.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/date_time/_calendar.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/date_time/_current.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/date_time/_epoch.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/date_time/_iso.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/date_time/_zones.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/date_time/intl.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/deferred.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/devtools/__init__.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/devtools/client.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/devtools/layers.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/devtools/schema.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/devtools/server.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/duration.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/effect.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/effectable.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/encoding/__init__.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/encoding/_archive.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/encoding/_json_array_scanner.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/encoding/base64.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/encoding/base64_url.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/encoding/encoding_error.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/encoding/hex.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/encoding/ini.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/encoding/json_array.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/encoding/ndjson.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/encoding/schema_binary/__init__.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/encoding/schema_binary/_channels.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/encoding/schema_binary/_decode.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/encoding/schema_binary/_dictionary.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/encoding/schema_binary/_encode.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/encoding/schema_binary/_fingerprint.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/encoding/schema_binary/_layout.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/encoding/schema_binary/_literals.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/encoding/schema_binary/_parser.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/encoding/schema_binary/_reader.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/encoding/schema_binary/_target.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/encoding/schema_binary/_values.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/encoding/schema_binary/_wire.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/encoding/sse.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/encoding/tar/__init__.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/encoding/tar/_decoder.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/encoding/tar/_encoder.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/encoding/tar/_header.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/encoding/tar/_model.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/encoding/toml.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/encoding/xml/__init__.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/encoding/xml/_chars.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/encoding/xml/_collector.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/encoding/xml/_inputs.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/encoding/xml/_model.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/encoding/xml/_parser.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/encoding/xml/_scanner.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/encoding/xml/_writer.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/encoding/yaml.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/encoding/zip/__init__.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/encoding/zip/_decoder.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/encoding/zip/_format.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/encoding/zip/_inflate.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/encoding/zip/_model.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/encoding/zip/_writer.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/error_reporter.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/errors.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/eventlog/__init__.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/eventlog/_conflicts.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/eventlog/_crypto.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/eventlog/_identity.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/eventlog/_identity_derivation.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/eventlog/_transferable_bytes.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/eventlog/_uuid.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/eventlog/event.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/eventlog/event_group.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/eventlog/event_journal.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/eventlog/event_log.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/eventlog/event_log_encryption.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/eventlog/event_log_message.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/eventlog/event_log_remote.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/eventlog/event_log_server.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/eventlog/event_log_server_encrypted.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/eventlog/event_log_server_unencrypted.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/eventlog/event_log_session_auth.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/eventlog/event_row.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/eventlog/sql_event_journal.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/eventlog/sql_event_log_server_encrypted.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/eventlog/sql_event_log_server_unencrypted.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/execution_plan/__init__.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/execution_plan/_events.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/execution_plan/_model.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/execution_plan/_run.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/exit.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/fiber_handle.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/fiber_map.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/fiber_set.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/file_system/__init__.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/file_system/_copy.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/file_system/_errors.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/file_system/_file.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/file_system/_live.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/file_system/_model.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/file_system/_noop.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/file_system/_service.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/file_system/_stat.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/file_system/_watch.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/filters.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/graph/__init__.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/graph/_all_pairs.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/graph/_combine.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/graph/_compact.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/graph/_components.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/graph/_cycles.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/graph/_enumerate.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/graph/_errors.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/graph/_flow.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/graph/_forest.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/graph/_graph.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/graph/_lowlink.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/graph/_matching.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/graph/_mutate.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/graph/_query.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/graph/_records.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/graph/_render.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/graph/_shortest.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/graph/_snapshot.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/graph/_store.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/graph/_traverse.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/graph/_view.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/graph/_walker.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/graphql/__init__.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/graphql/_codec.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/graphql/_http.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/graphql/_schemas.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/graphql/_slices.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/graphql/_template.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/graphql/_types.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/graphql/_ws.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/graphql/_ws_messages.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/graphql/client.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/graphql/client_error.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/graphql/group.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/graphql/middleware.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/graphql/operation.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/graphql/protocol.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/graphql/resolver.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/graphql/template.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/hash_map.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/hash_ring.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/hash_set.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/http/__init__.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/http/_asgi_listener.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/http/_authority.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/http/_brotli.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/http/_compression.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/http/_field.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/http/_foreign_path.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/http/_form_data.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/http/_httpx_options.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/http/_in_memory.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/http/_request_state.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/http/_vary.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/http/abort.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/http/asgi/__init__.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/http/asgi/_app.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/http/asgi/_http.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/http/asgi/_scope.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/http/asgi/_serve.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/http/asgi/_types.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/http/body.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/http/client/__init__.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/http/client/_circuit_breaker.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/http/client/_cookie_jar.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/http/client/_make.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/http/client/_rate_limit.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/http/client/_redirects.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/http/client/_retry.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/http/client/_service.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/http/cookies.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/http/error.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/http/etag.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/http/file_like.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/http/find_my_way/__init__.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/http/find_my_way/_nodes.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/http/find_my_way/_paths.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/http/find_my_way/_query_string.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/http/find_my_way/_router.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/http/headers.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/http/http_effect.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/http/httpx_client.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/http/hypercorn_server.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/http/live_server/__init__.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/http/live_server/_body.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/http/live_server/_exchange.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/http/live_server/_head.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/http/live_server/_inbound.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/http/live_server/_serve.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/http/live_server/_timers.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/http/live_server/_upgrade.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/http/live_server/_websocket.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/http/live_server/_ws_frames.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/http/method.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/http/middleware/__init__.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/http/middleware/_compression.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/http/middleware/_cors.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/http/middleware/_decompression.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/http/middleware/_forwarded.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/http/middleware/_logger.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/http/middleware/_search_params.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/http/middleware/_tracer.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/http/middleware/_types.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/http/mime/__init__.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/http/mime/_types.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/http/multipart.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/http/multipart_parser/_content_type.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/http/multipart_parser/_search.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/http/origin.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/http/platform.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/http/prometheus.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/http/request.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/http/response.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/http/router/__init__.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/http/router/_api.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/http/router/_in_memory.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/http/router/_markers.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/http/router/_middleware.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/http/router/_middleware_stack.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/http/router/_provided.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/http/router/_route.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/http/router/_router.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/http/schema.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/http/server.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/http/server_error.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/http/server_request.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/http/server_respondable.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/http/server_response.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/http/static_server/__init__.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/http/static_server/_conditional.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/http/static_server/_mime.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/http/static_server/_range.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/http/status.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/http/template.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/http/trace_context.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/http/url.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/http/url_params.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/http/uvicorn_server.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/http/web.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/http/web_handler.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/http/wire.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/http_api/__init__.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/http_api/_assets/scalar.js +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/http_api/_assets/swagger-ui.css +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/http_api/_assets/swagger-ui.js +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/http_api/_client_method.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/http_api/_client_payload.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/http_api/_client_response.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/http_api/_handlers.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/http_api/_html.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/http_api/_media_type.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/http_api/_openapi_responses.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/http_api/_openapi_schemas.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/http_api/_path.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/http_api/_payload.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/http_api/_response.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/http_api/_security.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/http_api/api.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/http_api/builder.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/http_api/client.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/http_api/endpoint.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/http_api/error.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/http_api/group.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/http_api/middleware.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/http_api/openapi.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/http_api/scalar.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/http_api/schema.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/http_api/security.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/http_api/swagger.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/http_api/test.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/json_patch.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/json_pointer.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/json_schema/__init__.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/json_schema/_api.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/json_schema/_converter.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/json_schema/_draft04.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/json_schema/_draft07.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/json_schema/_keywords.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/json_schema/_model.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/json_schema/_openapi.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/latch.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/layer.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/layer_map.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/layer_ref.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/logger/__init__.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/logger/_batched.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/logger/_console.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/logger/_file.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/logger/_formats.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/logger/_layer.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/logger/_level.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/logger/_log.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/logger/_model.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/logger/_refs.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/logger/_stdlib.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/logger/_text.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/logger/_tracer.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/metric/__init__.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/metric/_boundaries.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/metric/_prometheus.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/metric/_runtime.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/msgspec.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/mutable_hash_map.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/mutable_hash_set.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/net/__init__.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/net/_errors.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/net/address_resolver.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/net/dns/__init__.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/net/dns/_error.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/net/dns/_records.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/net/dns/_service.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/net/dns/_system.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/net/host.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/net/ip_interface.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/net/ip_network.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/net/net_address/__init__.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/net/net_address/_inet.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/net/net_address/_ip.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/net/net_address/_mac.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/optic/__init__.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/optic/_builtins.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/optic/_data.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/optic/_optic.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/optic/_steps.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/option.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/otel/__init__.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/otel/_producer.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/otel/_shutdown.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/otel/_span.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/otel/_wrapper.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/otel/logger.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/otel/metrics.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/otel/resource.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/otel/sdk.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/otel/tracer.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/partitioned_semaphore.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/path.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/persistence/__init__.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/persistence/_columns.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/persistence/_error.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/persistence/_seconds.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/persistence/_sql_keys.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/persistence/circuit_breaker/__init__.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/persistence/circuit_breaker/_breaker.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/persistence/circuit_breaker/_errors.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/persistence/circuit_breaker/_memory.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/persistence/circuit_breaker/_redis.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/persistence/circuit_breaker/_store.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/persistence/circuit_breaker/_types.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/persistence/key_value_store/__init__.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/persistence/key_value_store/_layers.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/persistence/key_value_store/_schema_store.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/persistence/key_value_store/_sql.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/persistence/key_value_store/_store.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/persistence/persistable.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/persistence/persisted_cache.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/persistence/persisted_queue/__init__.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/persistence/persisted_queue/_error.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/persistence/persisted_queue/_mailbox.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/persistence/persisted_queue/_memory.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/persistence/persisted_queue/_queue.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/persistence/persisted_queue/_redis.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/persistence/persisted_queue/_redis_scripts.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/persistence/persisted_queue/_sql.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/persistence/persisted_queue/_sql_migrations.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/persistence/persisted_queue/_sql_statements.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/persistence/persisted_queue/_store.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/persistence/persistence/__init__.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/persistence/persistence/_kvs.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/persistence/persistence/_memory.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/persistence/persistence/_redis.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/persistence/persistence/_service.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/persistence/persistence/_sql.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/persistence/rate_limiter/__init__.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/persistence/rate_limiter/_errors.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/persistence/rate_limiter/_limiter.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/persistence/rate_limiter/_memory.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/persistence/rate_limiter/_redis.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/persistence/rate_limiter/_store.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/persistence/redis/__init__.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/persistence/redis/_error.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/persistence/redis/_make.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/persistence/redis/_script.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/persistence/redis/_service.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/persistence/redis_py.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/persistence/user_directories.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/platform.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/platform_error.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/pool/__init__.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/pool/_pool.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/pool/_state.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/pool/_ttl.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/pool/_waiters.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/primary_key.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/process/__init__.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/process/_child.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/process/_command.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/process/_handle.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/process/_os.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/process/_spawner.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/pubsub/__init__.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/pubsub/_atomic.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/pubsub/_hub.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/pubsub/_pubsub.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/pubsub/_replay.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/pubsub/_subscription.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/pull.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/py.typed +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/pydantic.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/queue/__init__.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/queue/_queue.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/queue/_state.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/queue/_views.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/random.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/rc_map.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/rc_ref.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/reactivity/__init__.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/reactivity/_async_result_schema.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/reactivity/_hydration.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/reactivity/_live.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/reactivity/_reactivity.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/reactivity/_result_effect.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/reactivity/_time.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/reactivity/async_result.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/reactivity/atom/__init__.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/reactivity/atom/_combinators.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/reactivity/atom/_constructors.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/reactivity/atom/_conversions.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/reactivity/atom/_effect.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/reactivity/atom/_fn.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/reactivity/atom/_kvs.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/reactivity/atom/_optimistic.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/reactivity/atom/_runtime.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/reactivity/atom/_serializable.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/reactivity/atom/_subscription_ref.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/reactivity/atom/_swr.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/reactivity/atom/_types.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/reactivity/atom_http_api.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/reactivity/atom_ref.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/reactivity/atom_registry/__init__.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/reactivity/atom_registry/_batch.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/reactivity/atom_registry/_dispatcher.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/reactivity/atom_registry/_lifetime.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/reactivity/atom_registry/_node.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/reactivity/atom_registry/_registry.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/reactivity/atom_rpc.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/reactivity/hydration.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/redacted.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/ref.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/resource.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/result.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/rpc/__init__.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/rpc/_encoded_schema.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/rpc/_json_rpc.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/rpc/_methods.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/rpc/_rpc.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/rpc/client/__init__.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/rpc/client/_core.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/rpc/client/_http.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/rpc/client/_protocol.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/rpc/client/_serialized.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/rpc/client/_transports.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/rpc/client/_worker.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/rpc/client_error.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/rpc/group.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/rpc/message.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/rpc/middleware.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/rpc/schema.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/rpc/serialization.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/rpc/server/__init__.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/rpc/server/_core.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/rpc/server/_protocol.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/rpc/server/_serialized.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/rpc/server/_stdio.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/rpc/server/_transports.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/rpc/server/_worker.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/rpc/test.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/rpc/worker.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/run.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/schedule/__init__.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/schedule/_combinators.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/schedule/_constructors.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/schedule/_cron.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/schedule/_drive.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/schedule/_model.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/scheduler.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/schema/_arbitrary_graph.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/schema/_arbitrary_links.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/schema/_arbitrary_number.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/schema/_arrays.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/schema/_assignable.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/schema/_boolean_literals.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/schema/_checks_number.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/schema/_checks_order.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/schema/_checks_string.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/schema/_codec_links.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/schema/_collections.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/schema/_constructor_default.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/schema/_data.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/schema/_data_codecs.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/schema/_decimal_regexp.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/schema/_declare.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/schema/_duration_codecs.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/schema/_error.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/schema/_error_instance.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/schema/_graph.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/schema/_instances.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/schema/_jsonschema/__init__.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/schema/_jsonschema/_annotations.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/schema/_jsonschema/_compile.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/schema/_jsonschema/_exact.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/schema/_jsonschema/_merge.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/schema/_jsonschema/_objects.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/schema/_jsonschema/_references.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/schema/_jsonschema/_template.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/schema/_net.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/schema/_options.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/schema/_parsed_text.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/schema/_primitives.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/schema/_record.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/schema/_semver.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/schema/_strategy/__init__.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/schema/_strategy/_big_decimal.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/schema/_strategy/_composites.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/schema/_strategy/_leaves.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/schema/_strategy/_net.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/schema/_struct.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/schema/_struct_keys.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/schema/_template_literal.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/schema/_to_codec_array_from_single.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/schema/_to_codec_go_json.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/schema/_to_codec_json.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/schema/_to_codec_string_tree.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/schema/_to_differ_json_patch.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/schema/_to_encoder_xml.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/schema/_to_equivalence.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/schema/_to_formatter.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/schema/_to_iso.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/schema/_to_strategy.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/schema/_tree.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/schema/_type_walk.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/schema/_undefined.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/schema/_value_codecs.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/schema/_values.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/schema/_void.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/schema/ast/_annotations.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/schema/ast/_check.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/schema/ast/_constructors.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/schema/ast/_json.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/schema/ast/_keywords.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/schema/ast/_record.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/schema/ast/_result.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/schema/ast/_steps.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/schema/getter/_binary.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/schema/getter/_getter.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/schema/getter/_make.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/schema/getter/_text.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/schema/getter/_tree_record.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/schema/issue.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/schema/model/__init__.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/schema/model/_class.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/schema/model/_dates.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/schema/model/_fields.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/schema/model/_toolkit.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/schema/model/_uuid.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/schema/representation/__init__.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/schema/representation/_code.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/schema/representation/_code_document.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/schema/representation/_code_sort.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/schema/representation/_from.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/schema/representation/_import/__init__.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/schema/representation/_import/_finalize.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/schema/representation/_import/_intersect.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/schema/representation/_import/_js_order.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/schema/representation/_import/_keywords.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/schema/representation/_import/_nodes.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/schema/representation/_import/_translate.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/schema/representation/_json.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/schema/representation/_json_schema.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/schema/representation/_model.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/schema/representation/_revivers.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/schema/representation/_to.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/schema/transformation/__init__.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/schema/transformation/_durations.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/schema/transformation/_transformation.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/schema/variant_schema/__init__.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/schema/variant_schema/_class.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/schema/variant_schema/_defaults.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/schema/variant_schema/_field.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/schema/variant_schema/_struct.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/schema/variant_schema/_toolkit.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/scope.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/scoped_ref.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/semaphore.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/semver.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/semver_range.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/sink/__init__.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/sink/_combinators.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/sink/_constructors.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/sink/_context.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/sink/_folds.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/sink/_for_each.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/sink/_sink.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/sink/_steps.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/sink/_taking.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/socket/__init__.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/socket/_accepted.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/socket/_errors.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/socket/_loop.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/socket/_net.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/socket/_socket.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/socket/_tls.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/socket/_web_socket.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/socket/datagram/__init__.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/socket/datagram/_core.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/socket/datagram/_errors.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/socket/datagram/_live.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/socket/datagram/_model.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/socket/server.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/socket/ws.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/sql/__init__.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/sql/_loop.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/sql/clickhouse/__init__.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/sql/clickhouse/_connection.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/sql/clickhouse/_rows.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/sql/clickhouse/client.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/sql/clickhouse/config.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/sql/clickhouse/driver.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/sql/clickhouse/error.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/sql/clickhouse/migrator.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/sql/clickhouse/params.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/sql/client/__init__.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/sql/client/_client.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/sql/client/_sqlite_acquirers.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/sql/client/_transaction.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/sql/connection.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/sql/d1/__init__.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/sql/d1/api.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/sql/d1/client.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/sql/d1/config.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/sql/error.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/sql/libsql/__init__.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/sql/libsql/_connection.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/sql/libsql/_hrana.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/sql/libsql/_local.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/sql/libsql/_targets.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/sql/libsql/_values.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/sql/libsql/client.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/sql/libsql/config.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/sql/libsql/migrator.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/sql/libsql/sdk.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/sql/migrator.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/sql/model.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/sql/mssql/__init__.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/sql/mssql/_connection.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/sql/mssql/_driver.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/sql/mssql/_names.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/sql/mssql/_pool.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/sql/mssql/_tds.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/sql/mssql/_tds_params.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/sql/mssql/_worker.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/sql/mssql/client.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/sql/mssql/config.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/sql/mssql/error.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/sql/mssql/migrator.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/sql/mssql/parameter.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/sql/mssql/procedure.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/sql/mssql/types.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/sql/mysql/__init__.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/sql/mysql/_asyncmy.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/sql/mysql/_bind.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/sql/mysql/_connection.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/sql/mysql/_pool.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/sql/mysql/_session.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/sql/mysql/client.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/sql/mysql/config.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/sql/mysql/error.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/sql/mysql/migrator.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/sql/pg/__init__.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/sql/pg/_resolve.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/sql/pg/_session.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/sql/pg/client.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/sql/pg/config.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/sql/pg/error.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/sql/pg/migrator.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/sql/pg/pool.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/sql/resolver.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/sql/result.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/sql/schema.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/sql/sqlite/__init__.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/sql/sqlite/_connection.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/sql/sqlite/_worker.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/sql/sqlite/client.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/sql/sqlite/migrator.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/sql/statement/__init__.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/sql/statement/_compiler.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/sql/statement/_segments.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/sql/statement/_statement.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/sql/statement/_transforms.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/sql/stream.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/stdio.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/stream/__init__.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/stream/_async_iterable.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/stream/_base.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/stream/_bridge_methods.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/stream/_catch.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/stream/_catch_reason.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/stream/_channel_methods.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/stream/_chunk_methods.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/stream/_chunking.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/stream/_concat.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/stream/_constructors.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/stream/_context.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/stream/_error_methods.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/stream/_execution_plan.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/stream/_fanout.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/stream/_fanout_methods.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/stream/_filter_methods.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/stream/_grouping.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/stream/_many.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/stream/_map_methods.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/stream/_mapping.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/stream/_run.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/stream/_run_methods.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/stream/_service_methods.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/stream/_sink_methods.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/stream/_sinking.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/stream/_sources.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/stream/_stream.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/stream/_taking.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/stream/_text.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/stream/_timing.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/stream/_timing_methods.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/stream/_zip_methods.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/stream/_zipping.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/subscription_ref.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/synchronized_ref.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/take.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/terminal/__init__.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/terminal/_service.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/testing/__init__.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/testing/_assertions.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/testing/_clock.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/testing/_console.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/testing/_crypto.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/testing/_decorators.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/testing/_flaky.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/testing/_layers.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/testing/_prop.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/testing/_runners.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/testing/_runtime.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/testing/_schema.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/testing/plugin.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/tracer/__init__.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/tracer/_model.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/tracer/_native.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/tracer/_refs.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/tracer/_spans.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/transaction.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/trie.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/tx_chunk.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/tx_deferred.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/tx_hash_map.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/tx_hash_set.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/tx_priority_queue.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/tx_pubsub.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/tx_queue/__init__.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/tx_queue/_queue.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/tx_queue/_views.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/tx_reentrant_lock.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/tx_ref.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/tx_semaphore.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/tx_subscription_ref.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/workers/__init__.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/workers/_frames.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/workers/_mailbox.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/workers/_port.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/workers/_process.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/workers/_thread.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/workers/python_worker.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/workers/python_worker_runner.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/workers/transferable.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/workers/worker.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/workers/worker_error.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/workers/worker_runner.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/workflow/__init__.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/workflow/_crypto.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/workflow/_encoded.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/workflow/_memory.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/workflow/_result.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/workflow/_services.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/workflow/_suspension.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/workflow/activity.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/workflow/durable_clock.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/workflow/durable_deferred.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/workflow/durable_queue.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/workflow/workflow.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/workflow/workflow_engine.py +0 -0
- {pyfect_dev-0.1.0 → pyfect_dev-0.1.1}/src/pyfect/workflow/workflow_proxy.py +0 -0
- {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.
|
|
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,
|
|
183
|
-
|
|
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
|
|
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
|
|
247
|
-
test title neither ported nor omitted with a reason, and about
|
|
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,
|
|
129
|
-
|
|
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
|
|
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
|
|
193
|
-
test title neither ported nor omitted with a reason, and about
|
|
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.
|
|
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
|
-
|
|
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
|
|
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
|
-
|
|
662
|
-
|
|
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 =
|
|
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 =
|
|
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
|
-
|
|
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
|
|
268
|
-
"""``pretty_errors`` rendered with
|
|
269
|
-
|
|
270
|
-
``
|
|
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
|
|
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,
|
|
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 =
|
|
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__(
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
136
|
+
self._finished.set()
|
|
125
137
|
await self.chunks.put(None)
|
|
126
138
|
|
|
127
139
|
|
|
128
|
-
async def _body(exchange: _Exchange
|
|
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.
|
|
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.
|
|
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
|
|
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(
|
|
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
|
-
|
|
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.
|
|
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.
|
|
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.
|
|
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 =
|
|
28
|
-
"""``JSON.parse``'s reviver
|
|
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.
|
|
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
|
|