loom-kernel 2.10.0__tar.gz → 2.11.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.
- {loom_kernel-2.10.0 → loom_kernel-2.11.1}/PKG-INFO +1 -1
- {loom_kernel-2.10.0 → loom_kernel-2.11.1}/pyproject.toml +3 -0
- {loom_kernel-2.10.0 → loom_kernel-2.11.1}/src/loom/core/repository/sqlalchemy/__init__.py +2 -0
- {loom_kernel-2.10.0 → loom_kernel-2.11.1}/src/loom/core/repository/sqlalchemy/session_manager.py +55 -1
- loom_kernel-2.11.1/src/loom/core/repository/sqlalchemy/session_settings.py +83 -0
- {loom_kernel-2.10.0 → loom_kernel-2.11.1}/src/loom/streaming/mongo/_normalize.py +13 -16
- {loom_kernel-2.10.0 → loom_kernel-2.11.1}/.gitignore +0 -0
- {loom_kernel-2.10.0 → loom_kernel-2.11.1}/CHANGELOG.md +0 -0
- {loom_kernel-2.10.0 → loom_kernel-2.11.1}/LICENSE +0 -0
- {loom_kernel-2.10.0 → loom_kernel-2.11.1}/README.md +0 -0
- {loom_kernel-2.10.0 → loom_kernel-2.11.1}/src/loom/__init__.py +0 -0
- {loom_kernel-2.10.0 → loom_kernel-2.11.1}/src/loom/ai/__init__.py +0 -0
- {loom_kernel-2.10.0 → loom_kernel-2.11.1}/src/loom/ai/_concurrency.py +0 -0
- {loom_kernel-2.10.0 → loom_kernel-2.11.1}/src/loom/ai/_filters.py +0 -0
- {loom_kernel-2.10.0 → loom_kernel-2.11.1}/src/loom/ai/_roles.py +0 -0
- {loom_kernel-2.10.0 → loom_kernel-2.11.1}/src/loom/ai/_startup.py +0 -0
- {loom_kernel-2.10.0 → loom_kernel-2.11.1}/src/loom/ai/_transport.py +0 -0
- {loom_kernel-2.10.0 → loom_kernel-2.11.1}/src/loom/ai/_usecase.py +0 -0
- {loom_kernel-2.10.0 → loom_kernel-2.11.1}/src/loom/ai/a2a/__init__.py +0 -0
- {loom_kernel-2.10.0 → loom_kernel-2.11.1}/src/loom/ai/a2a/_binding.py +0 -0
- {loom_kernel-2.10.0 → loom_kernel-2.11.1}/src/loom/ai/a2a/_handlers.py +0 -0
- {loom_kernel-2.10.0 → loom_kernel-2.11.1}/src/loom/ai/a2a/_rpc.py +0 -0
- {loom_kernel-2.10.0 → loom_kernel-2.11.1}/src/loom/ai/a2a/card.py +0 -0
- {loom_kernel-2.10.0 → loom_kernel-2.11.1}/src/loom/ai/a2a/events.py +0 -0
- {loom_kernel-2.10.0 → loom_kernel-2.11.1}/src/loom/ai/a2a/server.py +0 -0
- {loom_kernel-2.10.0 → loom_kernel-2.11.1}/src/loom/ai/abc.py +0 -0
- {loom_kernel-2.10.0 → loom_kernel-2.11.1}/src/loom/ai/compiler/__init__.py +0 -0
- {loom_kernel-2.10.0 → loom_kernel-2.11.1}/src/loom/ai/compiler/_compiler.py +0 -0
- {loom_kernel-2.10.0 → loom_kernel-2.11.1}/src/loom/ai/compiler/_plan.py +0 -0
- {loom_kernel-2.10.0 → loom_kernel-2.11.1}/src/loom/ai/compiler/phases/__init__.py +0 -0
- {loom_kernel-2.10.0 → loom_kernel-2.11.1}/src/loom/ai/compiler/phases/_capabilities.py +0 -0
- {loom_kernel-2.10.0 → loom_kernel-2.11.1}/src/loom/ai/compiler/phases/_conversation.py +0 -0
- {loom_kernel-2.10.0 → loom_kernel-2.11.1}/src/loom/ai/compiler/phases/_feedable.py +0 -0
- {loom_kernel-2.10.0 → loom_kernel-2.11.1}/src/loom/ai/compiler/phases/_hook.py +0 -0
- {loom_kernel-2.10.0 → loom_kernel-2.11.1}/src/loom/ai/compiler/phases/_instructions.py +0 -0
- {loom_kernel-2.10.0 → loom_kernel-2.11.1}/src/loom/ai/compiler/phases/_limits.py +0 -0
- {loom_kernel-2.10.0 → loom_kernel-2.11.1}/src/loom/ai/compiler/phases/_model_role.py +0 -0
- {loom_kernel-2.10.0 → loom_kernel-2.11.1}/src/loom/ai/compiler/phases/_output.py +0 -0
- {loom_kernel-2.10.0 → loom_kernel-2.11.1}/src/loom/ai/compiler/phases/_state.py +0 -0
- {loom_kernel-2.10.0 → loom_kernel-2.11.1}/src/loom/ai/config.py +0 -0
- {loom_kernel-2.10.0 → loom_kernel-2.11.1}/src/loom/ai/declarative/__init__.py +0 -0
- {loom_kernel-2.10.0 → loom_kernel-2.11.1}/src/loom/ai/declarative/_envelope.py +0 -0
- {loom_kernel-2.10.0 → loom_kernel-2.11.1}/src/loom/ai/declarative/_schema.py +0 -0
- {loom_kernel-2.10.0 → loom_kernel-2.11.1}/src/loom/ai/declarative/_v1.py +0 -0
- {loom_kernel-2.10.0 → loom_kernel-2.11.1}/src/loom/ai/declarative/schemas/agent-spec-v1.schema.json +0 -0
- {loom_kernel-2.10.0 → loom_kernel-2.11.1}/src/loom/ai/describe.py +0 -0
- {loom_kernel-2.10.0 → loom_kernel-2.11.1}/src/loom/ai/engines/__init__.py +0 -0
- {loom_kernel-2.10.0 → loom_kernel-2.11.1}/src/loom/ai/engines/pydantic_ai/__init__.py +0 -0
- {loom_kernel-2.10.0 → loom_kernel-2.11.1}/src/loom/ai/engines/pydantic_ai/_a2a.py +0 -0
- {loom_kernel-2.10.0 → loom_kernel-2.11.1}/src/loom/ai/engines/pydantic_ai/_capabilities.py +0 -0
- {loom_kernel-2.10.0 → loom_kernel-2.11.1}/src/loom/ai/engines/pydantic_ai/_engine.py +0 -0
- {loom_kernel-2.10.0 → loom_kernel-2.11.1}/src/loom/ai/engines/pydantic_ai/_errors.py +0 -0
- {loom_kernel-2.10.0 → loom_kernel-2.11.1}/src/loom/ai/engines/pydantic_ai/_escape.py +0 -0
- {loom_kernel-2.10.0 → loom_kernel-2.11.1}/src/loom/ai/engines/pydantic_ai/_events.py +0 -0
- {loom_kernel-2.10.0 → loom_kernel-2.11.1}/src/loom/ai/engines/pydantic_ai/_guards.py +0 -0
- {loom_kernel-2.10.0 → loom_kernel-2.11.1}/src/loom/ai/engines/pydantic_ai/_history.py +0 -0
- {loom_kernel-2.10.0 → loom_kernel-2.11.1}/src/loom/ai/engines/pydantic_ai/_instructions.py +0 -0
- {loom_kernel-2.10.0 → loom_kernel-2.11.1}/src/loom/ai/engines/pydantic_ai/_limits.py +0 -0
- {loom_kernel-2.10.0 → loom_kernel-2.11.1}/src/loom/ai/engines/pydantic_ai/_mcp.py +0 -0
- {loom_kernel-2.10.0 → loom_kernel-2.11.1}/src/loom/ai/engines/pydantic_ai/_models.py +0 -0
- {loom_kernel-2.10.0 → loom_kernel-2.11.1}/src/loom/ai/engines/pydantic_ai/_native.py +0 -0
- {loom_kernel-2.10.0 → loom_kernel-2.11.1}/src/loom/ai/engines/pydantic_ai/_output.py +0 -0
- {loom_kernel-2.10.0 → loom_kernel-2.11.1}/src/loom/ai/engines/pydantic_ai/_returns.py +0 -0
- {loom_kernel-2.10.0 → loom_kernel-2.11.1}/src/loom/ai/engines/pydantic_ai/_schemas.py +0 -0
- {loom_kernel-2.10.0 → loom_kernel-2.11.1}/src/loom/ai/engines/pydantic_ai/_spec.py +0 -0
- {loom_kernel-2.10.0 → loom_kernel-2.11.1}/src/loom/ai/engines/pydantic_ai/extras/__init__.py +0 -0
- {loom_kernel-2.10.0 → loom_kernel-2.11.1}/src/loom/ai/engines/pydantic_ai/extras/a2a.py +0 -0
- {loom_kernel-2.10.0 → loom_kernel-2.11.1}/src/loom/ai/engines/pydantic_ai/extras/handlebars.py +0 -0
- {loom_kernel-2.10.0 → loom_kernel-2.11.1}/src/loom/ai/engines/pydantic_ai/extras/mcp.py +0 -0
- {loom_kernel-2.10.0 → loom_kernel-2.11.1}/src/loom/ai/engines/pydantic_ai/extras/skills.py +0 -0
- {loom_kernel-2.10.0 → loom_kernel-2.11.1}/src/loom/ai/engines/pydantic_ai/provider.py +0 -0
- {loom_kernel-2.10.0 → loom_kernel-2.11.1}/src/loom/ai/engines/pydantic_ai/providers/__init__.py +0 -0
- {loom_kernel-2.10.0 → loom_kernel-2.11.1}/src/loom/ai/engines/pydantic_ai/providers/_shared.py +0 -0
- {loom_kernel-2.10.0 → loom_kernel-2.11.1}/src/loom/ai/engines/pydantic_ai/providers/anthropic.py +0 -0
- {loom_kernel-2.10.0 → loom_kernel-2.11.1}/src/loom/ai/engines/pydantic_ai/providers/bedrock.py +0 -0
- {loom_kernel-2.10.0 → loom_kernel-2.11.1}/src/loom/ai/engines/pydantic_ai/providers/gateway.py +0 -0
- {loom_kernel-2.10.0 → loom_kernel-2.11.1}/src/loom/ai/engines/pydantic_ai/providers/openai.py +0 -0
- {loom_kernel-2.10.0 → loom_kernel-2.11.1}/src/loom/ai/engines/pydantic_ai/providers/typesafe.py +0 -0
- {loom_kernel-2.10.0 → loom_kernel-2.11.1}/src/loom/ai/errors.py +0 -0
- {loom_kernel-2.10.0 → loom_kernel-2.11.1}/src/loom/ai/fastapi/__init__.py +0 -0
- {loom_kernel-2.10.0 → loom_kernel-2.11.1}/src/loom/ai/fastapi/endpoints.py +0 -0
- {loom_kernel-2.10.0 → loom_kernel-2.11.1}/src/loom/ai/fastapi/response.py +0 -0
- {loom_kernel-2.10.0 → loom_kernel-2.11.1}/src/loom/ai/fastapi/streaming.py +0 -0
- {loom_kernel-2.10.0 → loom_kernel-2.11.1}/src/loom/ai/inference.py +0 -0
- {loom_kernel-2.10.0 → loom_kernel-2.11.1}/src/loom/ai/registry.py +0 -0
- {loom_kernel-2.10.0 → loom_kernel-2.11.1}/src/loom/ai/remote_auth.py +0 -0
- {loom_kernel-2.10.0 → loom_kernel-2.11.1}/src/loom/ai/runtime/__init__.py +0 -0
- {loom_kernel-2.10.0 → loom_kernel-2.11.1}/src/loom/ai/runtime/_bounded.py +0 -0
- {loom_kernel-2.10.0 → loom_kernel-2.11.1}/src/loom/ai/runtime/_chain.py +0 -0
- {loom_kernel-2.10.0 → loom_kernel-2.11.1}/src/loom/ai/runtime/_conversation.py +0 -0
- {loom_kernel-2.10.0 → loom_kernel-2.11.1}/src/loom/ai/runtime/_grants.py +0 -0
- {loom_kernel-2.10.0 → loom_kernel-2.11.1}/src/loom/ai/runtime/_handle.py +0 -0
- {loom_kernel-2.10.0 → loom_kernel-2.11.1}/src/loom/ai/runtime/_health.py +0 -0
- {loom_kernel-2.10.0 → loom_kernel-2.11.1}/src/loom/ai/runtime/_hooks.py +0 -0
- {loom_kernel-2.10.0 → loom_kernel-2.11.1}/src/loom/ai/runtime/_lifecycle.py +0 -0
- {loom_kernel-2.10.0 → loom_kernel-2.11.1}/src/loom/ai/runtime/_limits.py +0 -0
- {loom_kernel-2.10.0 → loom_kernel-2.11.1}/src/loom/ai/runtime/_mcp.py +0 -0
- {loom_kernel-2.10.0 → loom_kernel-2.11.1}/src/loom/ai/validate/__init__.py +0 -0
- {loom_kernel-2.10.0 → loom_kernel-2.11.1}/src/loom/ai/validate/__main__.py +0 -0
- {loom_kernel-2.10.0 → loom_kernel-2.11.1}/src/loom/celery/__init__.py +0 -0
- {loom_kernel-2.10.0 → loom_kernel-2.11.1}/src/loom/celery/auto.py +0 -0
- {loom_kernel-2.10.0 → loom_kernel-2.11.1}/src/loom/celery/bootstrap.py +0 -0
- {loom_kernel-2.10.0 → loom_kernel-2.11.1}/src/loom/celery/config.py +0 -0
- {loom_kernel-2.10.0 → loom_kernel-2.11.1}/src/loom/celery/constants.py +0 -0
- {loom_kernel-2.10.0 → loom_kernel-2.11.1}/src/loom/celery/runner.py +0 -0
- {loom_kernel-2.10.0 → loom_kernel-2.11.1}/src/loom/celery/service.py +0 -0
- {loom_kernel-2.10.0 → loom_kernel-2.11.1}/src/loom/core/async_bridge.py +0 -0
- {loom_kernel-2.10.0 → loom_kernel-2.11.1}/src/loom/core/authz/__init__.py +0 -0
- {loom_kernel-2.10.0 → loom_kernel-2.11.1}/src/loom/core/authz/_decide.py +0 -0
- {loom_kernel-2.10.0 → loom_kernel-2.11.1}/src/loom/core/authz/_grants.py +0 -0
- {loom_kernel-2.10.0 → loom_kernel-2.11.1}/src/loom/core/authz/_roles.py +0 -0
- {loom_kernel-2.10.0 → loom_kernel-2.11.1}/src/loom/core/authz/_scope.py +0 -0
- {loom_kernel-2.10.0 → loom_kernel-2.11.1}/src/loom/core/backend/__init__.py +0 -0
- {loom_kernel-2.10.0 → loom_kernel-2.11.1}/src/loom/core/backend/core_model.py +0 -0
- {loom_kernel-2.10.0 → loom_kernel-2.11.1}/src/loom/core/backend/protocol.py +0 -0
- {loom_kernel-2.10.0 → loom_kernel-2.11.1}/src/loom/core/backend/sqlalchemy.py +0 -0
- {loom_kernel-2.10.0 → loom_kernel-2.11.1}/src/loom/core/bootstrap/__init__.py +0 -0
- {loom_kernel-2.10.0 → loom_kernel-2.11.1}/src/loom/core/bootstrap/bootstrap.py +0 -0
- {loom_kernel-2.10.0 → loom_kernel-2.11.1}/src/loom/core/bootstrap/kernel.py +0 -0
- {loom_kernel-2.10.0 → loom_kernel-2.11.1}/src/loom/core/cache/__init__.py +0 -0
- {loom_kernel-2.10.0 → loom_kernel-2.11.1}/src/loom/core/cache/_batching.py +0 -0
- {loom_kernel-2.10.0 → loom_kernel-2.11.1}/src/loom/core/cache/_single_flight.py +0 -0
- {loom_kernel-2.10.0 → loom_kernel-2.11.1}/src/loom/core/cache/abc/__init__.py +0 -0
- {loom_kernel-2.10.0 → loom_kernel-2.11.1}/src/loom/core/cache/abc/backend.py +0 -0
- {loom_kernel-2.10.0 → loom_kernel-2.11.1}/src/loom/core/cache/abc/config.py +0 -0
- {loom_kernel-2.10.0 → loom_kernel-2.11.1}/src/loom/core/cache/abc/dependency.py +0 -0
- {loom_kernel-2.10.0 → loom_kernel-2.11.1}/src/loom/core/cache/calls.py +0 -0
- {loom_kernel-2.10.0 → loom_kernel-2.11.1}/src/loom/core/cache/codec.py +0 -0
- {loom_kernel-2.10.0 → loom_kernel-2.11.1}/src/loom/core/cache/decorators.py +0 -0
- {loom_kernel-2.10.0 → loom_kernel-2.11.1}/src/loom/core/cache/dependency.py +0 -0
- {loom_kernel-2.10.0 → loom_kernel-2.11.1}/src/loom/core/cache/errors.py +0 -0
- {loom_kernel-2.10.0 → loom_kernel-2.11.1}/src/loom/core/cache/gateway.py +0 -0
- {loom_kernel-2.10.0 → loom_kernel-2.11.1}/src/loom/core/cache/keys.py +0 -0
- {loom_kernel-2.10.0 → loom_kernel-2.11.1}/src/loom/core/cache/memory.py +0 -0
- {loom_kernel-2.10.0 → loom_kernel-2.11.1}/src/loom/core/cache/repository.py +0 -0
- {loom_kernel-2.10.0 → loom_kernel-2.11.1}/src/loom/core/cache/result_codec.py +0 -0
- {loom_kernel-2.10.0 → loom_kernel-2.11.1}/src/loom/core/cache/serializer.py +0 -0
- {loom_kernel-2.10.0 → loom_kernel-2.11.1}/src/loom/core/cache/wiring.py +0 -0
- {loom_kernel-2.10.0 → loom_kernel-2.11.1}/src/loom/core/command/__init__.py +0 -0
- {loom_kernel-2.10.0 → loom_kernel-2.11.1}/src/loom/core/command/adapter.py +0 -0
- {loom_kernel-2.10.0 → loom_kernel-2.11.1}/src/loom/core/command/base.py +0 -0
- {loom_kernel-2.10.0 → loom_kernel-2.11.1}/src/loom/core/command/field.py +0 -0
- {loom_kernel-2.10.0 → loom_kernel-2.11.1}/src/loom/core/command/introspection.py +0 -0
- {loom_kernel-2.10.0 → loom_kernel-2.11.1}/src/loom/core/compiler.py +0 -0
- {loom_kernel-2.10.0 → loom_kernel-2.11.1}/src/loom/core/config/__init__.py +0 -0
- {loom_kernel-2.10.0 → loom_kernel-2.11.1}/src/loom/core/config/_boto3.py +0 -0
- {loom_kernel-2.10.0 → loom_kernel-2.11.1}/src/loom/core/config/_includes.py +0 -0
- {loom_kernel-2.10.0 → loom_kernel-2.11.1}/src/loom/core/config/_resolver_utils.py +0 -0
- {loom_kernel-2.10.0 → loom_kernel-2.11.1}/src/loom/core/config/binder.py +0 -0
- {loom_kernel-2.10.0 → loom_kernel-2.11.1}/src/loom/core/config/configurable.py +0 -0
- {loom_kernel-2.10.0 → loom_kernel-2.11.1}/src/loom/core/config/context.py +0 -0
- {loom_kernel-2.10.0 → loom_kernel-2.11.1}/src/loom/core/config/errors.py +0 -0
- {loom_kernel-2.10.0 → loom_kernel-2.11.1}/src/loom/core/config/keys.py +0 -0
- {loom_kernel-2.10.0 → loom_kernel-2.11.1}/src/loom/core/config/loader.py +0 -0
- {loom_kernel-2.10.0 → loom_kernel-2.11.1}/src/loom/core/config/model.py +0 -0
- {loom_kernel-2.10.0 → loom_kernel-2.11.1}/src/loom/core/config/observability.py +0 -0
- {loom_kernel-2.10.0 → loom_kernel-2.11.1}/src/loom/core/config/resolver.py +0 -0
- {loom_kernel-2.10.0 → loom_kernel-2.11.1}/src/loom/core/config/secrets.py +0 -0
- {loom_kernel-2.10.0 → loom_kernel-2.11.1}/src/loom/core/config/ssm.py +0 -0
- {loom_kernel-2.10.0 → loom_kernel-2.11.1}/src/loom/core/contracts/__init__.py +0 -0
- {loom_kernel-2.10.0 → loom_kernel-2.11.1}/src/loom/core/contracts/manifest.py +0 -0
- {loom_kernel-2.10.0 → loom_kernel-2.11.1}/src/loom/core/di/__init__.py +0 -0
- {loom_kernel-2.10.0 → loom_kernel-2.11.1}/src/loom/core/di/container.py +0 -0
- {loom_kernel-2.10.0 → loom_kernel-2.11.1}/src/loom/core/di/scope.py +0 -0
- {loom_kernel-2.10.0 → loom_kernel-2.11.1}/src/loom/core/discovery/__init__.py +0 -0
- {loom_kernel-2.10.0 → loom_kernel-2.11.1}/src/loom/core/discovery/_utils.py +0 -0
- {loom_kernel-2.10.0 → loom_kernel-2.11.1}/src/loom/core/discovery/base.py +0 -0
- {loom_kernel-2.10.0 → loom_kernel-2.11.1}/src/loom/core/discovery/interfaces.py +0 -0
- {loom_kernel-2.10.0 → loom_kernel-2.11.1}/src/loom/core/discovery/manifest.py +0 -0
- {loom_kernel-2.10.0 → loom_kernel-2.11.1}/src/loom/core/discovery/modules.py +0 -0
- {loom_kernel-2.10.0 → loom_kernel-2.11.1}/src/loom/core/engine/__init__.py +0 -0
- {loom_kernel-2.10.0 → loom_kernel-2.11.1}/src/loom/core/engine/compilable.py +0 -0
- {loom_kernel-2.10.0 → loom_kernel-2.11.1}/src/loom/core/engine/compiler.py +0 -0
- {loom_kernel-2.10.0 → loom_kernel-2.11.1}/src/loom/core/engine/events.py +0 -0
- {loom_kernel-2.10.0 → loom_kernel-2.11.1}/src/loom/core/engine/executor.py +0 -0
- {loom_kernel-2.10.0 → loom_kernel-2.11.1}/src/loom/core/engine/metrics.py +0 -0
- {loom_kernel-2.10.0 → loom_kernel-2.11.1}/src/loom/core/engine/plan.py +0 -0
- {loom_kernel-2.10.0 → loom_kernel-2.11.1}/src/loom/core/engine/post_commit.py +0 -0
- {loom_kernel-2.10.0 → loom_kernel-2.11.1}/src/loom/core/errors/__init__.py +0 -0
- {loom_kernel-2.10.0 → loom_kernel-2.11.1}/src/loom/core/errors/codes.py +0 -0
- {loom_kernel-2.10.0 → loom_kernel-2.11.1}/src/loom/core/errors/errors.py +0 -0
- {loom_kernel-2.10.0 → loom_kernel-2.11.1}/src/loom/core/expr/__init__.py +0 -0
- {loom_kernel-2.10.0 → loom_kernel-2.11.1}/src/loom/core/expr/eval.py +0 -0
- {loom_kernel-2.10.0 → loom_kernel-2.11.1}/src/loom/core/expr/nodes.py +0 -0
- {loom_kernel-2.10.0 → loom_kernel-2.11.1}/src/loom/core/expr/refs.py +0 -0
- {loom_kernel-2.10.0 → loom_kernel-2.11.1}/src/loom/core/identity/__init__.py +0 -0
- {loom_kernel-2.10.0 → loom_kernel-2.11.1}/src/loom/core/identity/context.py +0 -0
- {loom_kernel-2.10.0 → loom_kernel-2.11.1}/src/loom/core/identity/identity.py +0 -0
- {loom_kernel-2.10.0 → loom_kernel-2.11.1}/src/loom/core/identity/issuer.py +0 -0
- {loom_kernel-2.10.0 → loom_kernel-2.11.1}/src/loom/core/identity/wire.py +0 -0
- {loom_kernel-2.10.0 → loom_kernel-2.11.1}/src/loom/core/introspection/__init__.py +0 -0
- {loom_kernel-2.10.0 → loom_kernel-2.11.1}/src/loom/core/introspection/base.py +0 -0
- {loom_kernel-2.10.0 → loom_kernel-2.11.1}/src/loom/core/introspection/describe.py +0 -0
- {loom_kernel-2.10.0 → loom_kernel-2.11.1}/src/loom/core/job/__init__.py +0 -0
- {loom_kernel-2.10.0 → loom_kernel-2.11.1}/src/loom/core/job/callback.py +0 -0
- {loom_kernel-2.10.0 → loom_kernel-2.11.1}/src/loom/core/job/context.py +0 -0
- {loom_kernel-2.10.0 → loom_kernel-2.11.1}/src/loom/core/job/handle.py +0 -0
- {loom_kernel-2.10.0 → loom_kernel-2.11.1}/src/loom/core/job/job.py +0 -0
- {loom_kernel-2.10.0 → loom_kernel-2.11.1}/src/loom/core/job/service.py +0 -0
- {loom_kernel-2.10.0 → loom_kernel-2.11.1}/src/loom/core/logger/__init__.py +0 -0
- {loom_kernel-2.10.0 → loom_kernel-2.11.1}/src/loom/core/logger/abc.py +0 -0
- {loom_kernel-2.10.0 → loom_kernel-2.11.1}/src/loom/core/logger/config.py +0 -0
- {loom_kernel-2.10.0 → loom_kernel-2.11.1}/src/loom/core/logger/registry.py +0 -0
- {loom_kernel-2.10.0 → loom_kernel-2.11.1}/src/loom/core/logger/structlogger.py +0 -0
- {loom_kernel-2.10.0 → loom_kernel-2.11.1}/src/loom/core/model/__init__.py +0 -0
- {loom_kernel-2.10.0 → loom_kernel-2.11.1}/src/loom/core/model/_loom_type.py +0 -0
- {loom_kernel-2.10.0 → loom_kernel-2.11.1}/src/loom/core/model/base.py +0 -0
- {loom_kernel-2.10.0 → loom_kernel-2.11.1}/src/loom/core/model/convert.py +0 -0
- {loom_kernel-2.10.0 → loom_kernel-2.11.1}/src/loom/core/model/enums.py +0 -0
- {loom_kernel-2.10.0 → loom_kernel-2.11.1}/src/loom/core/model/field.py +0 -0
- {loom_kernel-2.10.0 → loom_kernel-2.11.1}/src/loom/core/model/introspection.py +0 -0
- {loom_kernel-2.10.0 → loom_kernel-2.11.1}/src/loom/core/model/projection.py +0 -0
- {loom_kernel-2.10.0 → loom_kernel-2.11.1}/src/loom/core/model/relation.py +0 -0
- {loom_kernel-2.10.0 → loom_kernel-2.11.1}/src/loom/core/model/struct.py +0 -0
- {loom_kernel-2.10.0 → loom_kernel-2.11.1}/src/loom/core/model/timestamped.py +0 -0
- {loom_kernel-2.10.0 → loom_kernel-2.11.1}/src/loom/core/model/types.py +0 -0
- {loom_kernel-2.10.0 → loom_kernel-2.11.1}/src/loom/core/model/types_postgres.py +0 -0
- {loom_kernel-2.10.0 → loom_kernel-2.11.1}/src/loom/core/observability/__init__.py +0 -0
- {loom_kernel-2.10.0 → loom_kernel-2.11.1}/src/loom/core/observability/config.py +0 -0
- {loom_kernel-2.10.0 → loom_kernel-2.11.1}/src/loom/core/observability/event.py +0 -0
- {loom_kernel-2.10.0 → loom_kernel-2.11.1}/src/loom/core/observability/observer/__init__.py +0 -0
- {loom_kernel-2.10.0 → loom_kernel-2.11.1}/src/loom/core/observability/observer/noop.py +0 -0
- {loom_kernel-2.10.0 → loom_kernel-2.11.1}/src/loom/core/observability/observer/otel.py +0 -0
- {loom_kernel-2.10.0 → loom_kernel-2.11.1}/src/loom/core/observability/observer/structlog.py +0 -0
- {loom_kernel-2.10.0 → loom_kernel-2.11.1}/src/loom/core/observability/otel_ids.py +0 -0
- {loom_kernel-2.10.0 → loom_kernel-2.11.1}/src/loom/core/observability/protocol.py +0 -0
- {loom_kernel-2.10.0 → loom_kernel-2.11.1}/src/loom/core/observability/runtime.py +0 -0
- {loom_kernel-2.10.0 → loom_kernel-2.11.1}/src/loom/core/observability/span.py +0 -0
- {loom_kernel-2.10.0 → loom_kernel-2.11.1}/src/loom/core/observability/topology.py +0 -0
- {loom_kernel-2.10.0 → loom_kernel-2.11.1}/src/loom/core/persistence/__init__.py +0 -0
- {loom_kernel-2.10.0 → loom_kernel-2.11.1}/src/loom/core/persistence/abc.py +0 -0
- {loom_kernel-2.10.0 → loom_kernel-2.11.1}/src/loom/core/persistence/none.py +0 -0
- {loom_kernel-2.10.0 → loom_kernel-2.11.1}/src/loom/core/persistence/registry.py +0 -0
- {loom_kernel-2.10.0 → loom_kernel-2.11.1}/src/loom/core/plugins/__init__.py +0 -0
- {loom_kernel-2.10.0 → loom_kernel-2.11.1}/src/loom/core/plugins/entrypoints.py +0 -0
- {loom_kernel-2.10.0 → loom_kernel-2.11.1}/src/loom/core/plugins/optional.py +0 -0
- {loom_kernel-2.10.0 → loom_kernel-2.11.1}/src/loom/core/projection/__init__.py +0 -0
- {loom_kernel-2.10.0 → loom_kernel-2.11.1}/src/loom/core/projection/loaders.py +0 -0
- {loom_kernel-2.10.0 → loom_kernel-2.11.1}/src/loom/core/projection/runtime.py +0 -0
- {loom_kernel-2.10.0 → loom_kernel-2.11.1}/src/loom/core/repository/__init__.py +0 -0
- {loom_kernel-2.10.0 → loom_kernel-2.11.1}/src/loom/core/repository/abc/__init__.py +0 -0
- {loom_kernel-2.10.0 → loom_kernel-2.11.1}/src/loom/core/repository/abc/cursor.py +0 -0
- {loom_kernel-2.10.0 → loom_kernel-2.11.1}/src/loom/core/repository/abc/errors.py +0 -0
- {loom_kernel-2.10.0 → loom_kernel-2.11.1}/src/loom/core/repository/abc/query.py +0 -0
- {loom_kernel-2.10.0 → loom_kernel-2.11.1}/src/loom/core/repository/abc/query_compiler.py +0 -0
- {loom_kernel-2.10.0 → loom_kernel-2.11.1}/src/loom/core/repository/abc/repo_for.py +0 -0
- {loom_kernel-2.10.0 → loom_kernel-2.11.1}/src/loom/core/repository/abc/repository.py +0 -0
- {loom_kernel-2.10.0 → loom_kernel-2.11.1}/src/loom/core/repository/abc/session_scope.py +0 -0
- {loom_kernel-2.10.0 → loom_kernel-2.11.1}/src/loom/core/repository/dynamodb/__init__.py +0 -0
- {loom_kernel-2.10.0 → loom_kernel-2.11.1}/src/loom/core/repository/dynamodb/backend.py +0 -0
- {loom_kernel-2.10.0 → loom_kernel-2.11.1}/src/loom/core/repository/dynamodb/registry.py +0 -0
- {loom_kernel-2.10.0 → loom_kernel-2.11.1}/src/loom/core/repository/dynamodb/repository.py +0 -0
- {loom_kernel-2.10.0 → loom_kernel-2.11.1}/src/loom/core/repository/dynamodb/uow.py +0 -0
- {loom_kernel-2.10.0 → loom_kernel-2.11.1}/src/loom/core/repository/mongo/__init__.py +0 -0
- {loom_kernel-2.10.0 → loom_kernel-2.11.1}/src/loom/core/repository/mongo/backend.py +0 -0
- {loom_kernel-2.10.0 → loom_kernel-2.11.1}/src/loom/core/repository/mongo/ids.py +0 -0
- {loom_kernel-2.10.0 → loom_kernel-2.11.1}/src/loom/core/repository/mongo/query_compiler.py +0 -0
- {loom_kernel-2.10.0 → loom_kernel-2.11.1}/src/loom/core/repository/mongo/registry.py +0 -0
- {loom_kernel-2.10.0 → loom_kernel-2.11.1}/src/loom/core/repository/mongo/repository.py +0 -0
- {loom_kernel-2.10.0 → loom_kernel-2.11.1}/src/loom/core/repository/mongo/uow.py +0 -0
- {loom_kernel-2.10.0 → loom_kernel-2.11.1}/src/loom/core/repository/mongo/values.py +0 -0
- {loom_kernel-2.10.0 → loom_kernel-2.11.1}/src/loom/core/repository/mutation.py +0 -0
- {loom_kernel-2.10.0 → loom_kernel-2.11.1}/src/loom/core/repository/registration.py +0 -0
- {loom_kernel-2.10.0 → loom_kernel-2.11.1}/src/loom/core/repository/registry.py +0 -0
- {loom_kernel-2.10.0 → loom_kernel-2.11.1}/src/loom/core/repository/sqlalchemy/backend.py +0 -0
- {loom_kernel-2.10.0 → loom_kernel-2.11.1}/src/loom/core/repository/sqlalchemy/integrity.py +0 -0
- {loom_kernel-2.10.0 → loom_kernel-2.11.1}/src/loom/core/repository/sqlalchemy/loaders.py +0 -0
- {loom_kernel-2.10.0 → loom_kernel-2.11.1}/src/loom/core/repository/sqlalchemy/mixins.py +0 -0
- {loom_kernel-2.10.0 → loom_kernel-2.11.1}/src/loom/core/repository/sqlalchemy/model.py +0 -0
- {loom_kernel-2.10.0 → loom_kernel-2.11.1}/src/loom/core/repository/sqlalchemy/profile_loader.py +0 -0
- {loom_kernel-2.10.0 → loom_kernel-2.11.1}/src/loom/core/repository/sqlalchemy/projection.py +0 -0
- {loom_kernel-2.10.0 → loom_kernel-2.11.1}/src/loom/core/repository/sqlalchemy/query_compiler/__init__.py +0 -0
- {loom_kernel-2.10.0 → loom_kernel-2.11.1}/src/loom/core/repository/sqlalchemy/query_compiler/compiler.py +0 -0
- {loom_kernel-2.10.0 → loom_kernel-2.11.1}/src/loom/core/repository/sqlalchemy/query_compiler/cursor.py +0 -0
- {loom_kernel-2.10.0 → loom_kernel-2.11.1}/src/loom/core/repository/sqlalchemy/query_compiler/errors.py +0 -0
- {loom_kernel-2.10.0 → loom_kernel-2.11.1}/src/loom/core/repository/sqlalchemy/query_compiler/filters.py +0 -0
- {loom_kernel-2.10.0 → loom_kernel-2.11.1}/src/loom/core/repository/sqlalchemy/query_compiler/ordering.py +0 -0
- {loom_kernel-2.10.0 → loom_kernel-2.11.1}/src/loom/core/repository/sqlalchemy/query_compiler/paths.py +0 -0
- {loom_kernel-2.10.0 → loom_kernel-2.11.1}/src/loom/core/repository/sqlalchemy/query_compiler/subquery.py +0 -0
- {loom_kernel-2.10.0 → loom_kernel-2.11.1}/src/loom/core/repository/sqlalchemy/registry.py +0 -0
- {loom_kernel-2.10.0 → loom_kernel-2.11.1}/src/loom/core/repository/sqlalchemy/repository.py +0 -0
- {loom_kernel-2.10.0 → loom_kernel-2.11.1}/src/loom/core/repository/sqlalchemy/transactional.py +0 -0
- {loom_kernel-2.10.0 → loom_kernel-2.11.1}/src/loom/core/repository/sqlalchemy/uow.py +0 -0
- {loom_kernel-2.10.0 → loom_kernel-2.11.1}/src/loom/core/response/__init__.py +0 -0
- {loom_kernel-2.10.0 → loom_kernel-2.11.1}/src/loom/core/response/base.py +0 -0
- {loom_kernel-2.10.0 → loom_kernel-2.11.1}/src/loom/core/routing/__init__.py +0 -0
- {loom_kernel-2.10.0 → loom_kernel-2.11.1}/src/loom/core/routing/ref.py +0 -0
- {loom_kernel-2.10.0 → loom_kernel-2.11.1}/src/loom/core/routing/resolver.py +0 -0
- {loom_kernel-2.10.0 → loom_kernel-2.11.1}/src/loom/core/runner.py +0 -0
- {loom_kernel-2.10.0 → loom_kernel-2.11.1}/src/loom/core/schema/__init__.py +0 -0
- {loom_kernel-2.10.0 → loom_kernel-2.11.1}/src/loom/core/schema/schema_mode.py +0 -0
- {loom_kernel-2.10.0 → loom_kernel-2.11.1}/src/loom/core/sql/__init__.py +0 -0
- {loom_kernel-2.10.0 → loom_kernel-2.11.1}/src/loom/core/sql/abc/__init__.py +0 -0
- {loom_kernel-2.10.0 → loom_kernel-2.11.1}/src/loom/core/sql/abc/contracts.py +0 -0
- {loom_kernel-2.10.0 → loom_kernel-2.11.1}/src/loom/core/sql/abc/errors.py +0 -0
- {loom_kernel-2.10.0 → loom_kernel-2.11.1}/src/loom/core/sql/caller_bound.py +0 -0
- {loom_kernel-2.10.0 → loom_kernel-2.11.1}/src/loom/core/sql/clickhouse/__init__.py +0 -0
- {loom_kernel-2.10.0 → loom_kernel-2.11.1}/src/loom/core/sql/clickhouse/_client.py +0 -0
- {loom_kernel-2.10.0 → loom_kernel-2.11.1}/src/loom/core/sql/clickhouse/executor.py +0 -0
- {loom_kernel-2.10.0 → loom_kernel-2.11.1}/src/loom/core/sql/clickhouse/registry.py +0 -0
- {loom_kernel-2.10.0 → loom_kernel-2.11.1}/src/loom/core/sql/config.py +0 -0
- {loom_kernel-2.10.0 → loom_kernel-2.11.1}/src/loom/core/sql/roles.py +0 -0
- {loom_kernel-2.10.0 → loom_kernel-2.11.1}/src/loom/core/sql/service.py +0 -0
- {loom_kernel-2.10.0 → loom_kernel-2.11.1}/src/loom/core/symbols.py +0 -0
- {loom_kernel-2.10.0 → loom_kernel-2.11.1}/src/loom/core/tracing/__init__.py +0 -0
- {loom_kernel-2.10.0 → loom_kernel-2.11.1}/src/loom/core/tracing/context.py +0 -0
- {loom_kernel-2.10.0 → loom_kernel-2.11.1}/src/loom/core/transaction.py +0 -0
- {loom_kernel-2.10.0 → loom_kernel-2.11.1}/src/loom/core/transport/__init__.py +0 -0
- {loom_kernel-2.10.0 → loom_kernel-2.11.1}/src/loom/core/transport/adapter.py +0 -0
- {loom_kernel-2.10.0 → loom_kernel-2.11.1}/src/loom/core/uow/__init__.py +0 -0
- {loom_kernel-2.10.0 → loom_kernel-2.11.1}/src/loom/core/uow/abc.py +0 -0
- {loom_kernel-2.10.0 → loom_kernel-2.11.1}/src/loom/core/uow/context.py +0 -0
- {loom_kernel-2.10.0 → loom_kernel-2.11.1}/src/loom/core/use_case/__init__.py +0 -0
- {loom_kernel-2.10.0 → loom_kernel-2.11.1}/src/loom/core/use_case/_predicates.py +0 -0
- {loom_kernel-2.10.0 → loom_kernel-2.11.1}/src/loom/core/use_case/agent_markers.py +0 -0
- {loom_kernel-2.10.0 → loom_kernel-2.11.1}/src/loom/core/use_case/compute.py +0 -0
- {loom_kernel-2.10.0 → loom_kernel-2.11.1}/src/loom/core/use_case/constants.py +0 -0
- {loom_kernel-2.10.0 → loom_kernel-2.11.1}/src/loom/core/use_case/factory.py +0 -0
- {loom_kernel-2.10.0 → loom_kernel-2.11.1}/src/loom/core/use_case/field_ref.py +0 -0
- {loom_kernel-2.10.0 → loom_kernel-2.11.1}/src/loom/core/use_case/invoker.py +0 -0
- {loom_kernel-2.10.0 → loom_kernel-2.11.1}/src/loom/core/use_case/keys.py +0 -0
- {loom_kernel-2.10.0 → loom_kernel-2.11.1}/src/loom/core/use_case/markers.py +0 -0
- {loom_kernel-2.10.0 → loom_kernel-2.11.1}/src/loom/core/use_case/mcp_markers.py +0 -0
- {loom_kernel-2.10.0 → loom_kernel-2.11.1}/src/loom/core/use_case/registry.py +0 -0
- {loom_kernel-2.10.0 → loom_kernel-2.11.1}/src/loom/core/use_case/rule.py +0 -0
- {loom_kernel-2.10.0 → loom_kernel-2.11.1}/src/loom/core/use_case/use_case.py +0 -0
- {loom_kernel-2.10.0 → loom_kernel-2.11.1}/src/loom/etl/__init__.py +0 -0
- {loom_kernel-2.10.0 → loom_kernel-2.11.1}/src/loom/etl/backends/__init__.py +0 -0
- {loom_kernel-2.10.0 → loom_kernel-2.11.1}/src/loom/etl/backends/_format_registry.py +0 -0
- {loom_kernel-2.10.0 → loom_kernel-2.11.1}/src/loom/etl/backends/_historify/__init__.py +0 -0
- {loom_kernel-2.10.0 → loom_kernel-2.11.1}/src/loom/etl/backends/_historify/_common.py +0 -0
- {loom_kernel-2.10.0 → loom_kernel-2.11.1}/src/loom/etl/backends/_historify/_log.py +0 -0
- {loom_kernel-2.10.0 → loom_kernel-2.11.1}/src/loom/etl/backends/_historify/_ops.py +0 -0
- {loom_kernel-2.10.0 → loom_kernel-2.11.1}/src/loom/etl/backends/_historify/_snapshot.py +0 -0
- {loom_kernel-2.10.0 → loom_kernel-2.11.1}/src/loom/etl/backends/_historify/_transform.py +0 -0
- {loom_kernel-2.10.0 → loom_kernel-2.11.1}/src/loom/etl/backends/_merge.py +0 -0
- {loom_kernel-2.10.0 → loom_kernel-2.11.1}/src/loom/etl/backends/_path_template.py +0 -0
- {loom_kernel-2.10.0 → loom_kernel-2.11.1}/src/loom/etl/backends/_predicate.py +0 -0
- {loom_kernel-2.10.0 → loom_kernel-2.11.1}/src/loom/etl/backends/_schema_aligner/__init__.py +0 -0
- {loom_kernel-2.10.0 → loom_kernel-2.11.1}/src/loom/etl/backends/_schema_aligner/_aligner.py +0 -0
- {loom_kernel-2.10.0 → loom_kernel-2.11.1}/src/loom/etl/backends/_schema_aligner/_policy.py +0 -0
- {loom_kernel-2.10.0 → loom_kernel-2.11.1}/src/loom/etl/backends/_write_policy.py +0 -0
- {loom_kernel-2.10.0 → loom_kernel-2.11.1}/src/loom/etl/backends/polars/__init__.py +0 -0
- {loom_kernel-2.10.0 → loom_kernel-2.11.1}/src/loom/etl/backends/polars/_dtype.py +0 -0
- {loom_kernel-2.10.0 → loom_kernel-2.11.1}/src/loom/etl/backends/polars/_file_writer.py +0 -0
- {loom_kernel-2.10.0 → loom_kernel-2.11.1}/src/loom/etl/backends/polars/_historify.py +0 -0
- {loom_kernel-2.10.0 → loom_kernel-2.11.1}/src/loom/etl/backends/polars/_predicate.py +0 -0
- {loom_kernel-2.10.0 → loom_kernel-2.11.1}/src/loom/etl/backends/polars/_reader.py +0 -0
- {loom_kernel-2.10.0 → loom_kernel-2.11.1}/src/loom/etl/backends/polars/_schema.py +0 -0
- {loom_kernel-2.10.0 → loom_kernel-2.11.1}/src/loom/etl/backends/polars/_schema_aligner.py +0 -0
- {loom_kernel-2.10.0 → loom_kernel-2.11.1}/src/loom/etl/backends/polars/_streaming.py +0 -0
- {loom_kernel-2.10.0 → loom_kernel-2.11.1}/src/loom/etl/backends/polars/_writer.py +0 -0
- {loom_kernel-2.10.0 → loom_kernel-2.11.1}/src/loom/etl/backends/polars/provider.py +0 -0
- {loom_kernel-2.10.0 → loom_kernel-2.11.1}/src/loom/etl/backends/spark/__init__.py +0 -0
- {loom_kernel-2.10.0 → loom_kernel-2.11.1}/src/loom/etl/backends/spark/_dtype.py +0 -0
- {loom_kernel-2.10.0 → loom_kernel-2.11.1}/src/loom/etl/backends/spark/_historify.py +0 -0
- {loom_kernel-2.10.0 → loom_kernel-2.11.1}/src/loom/etl/backends/spark/_reader.py +0 -0
- {loom_kernel-2.10.0 → loom_kernel-2.11.1}/src/loom/etl/backends/spark/_schema.py +0 -0
- {loom_kernel-2.10.0 → loom_kernel-2.11.1}/src/loom/etl/backends/spark/_schema_aligner.py +0 -0
- {loom_kernel-2.10.0 → loom_kernel-2.11.1}/src/loom/etl/backends/spark/_writer.py +0 -0
- {loom_kernel-2.10.0 → loom_kernel-2.11.1}/src/loom/etl/backends/spark/provider.py +0 -0
- {loom_kernel-2.10.0 → loom_kernel-2.11.1}/src/loom/etl/checkpoint/__init__.py +0 -0
- {loom_kernel-2.10.0 → loom_kernel-2.11.1}/src/loom/etl/checkpoint/_backends/_polars.py +0 -0
- {loom_kernel-2.10.0 → loom_kernel-2.11.1}/src/loom/etl/checkpoint/_backends/_spark.py +0 -0
- {loom_kernel-2.10.0 → loom_kernel-2.11.1}/src/loom/etl/checkpoint/_cleaners.py +0 -0
- {loom_kernel-2.10.0 → loom_kernel-2.11.1}/src/loom/etl/checkpoint/_options.py +0 -0
- {loom_kernel-2.10.0 → loom_kernel-2.11.1}/src/loom/etl/checkpoint/_paths.py +0 -0
- {loom_kernel-2.10.0 → loom_kernel-2.11.1}/src/loom/etl/checkpoint/_scope.py +0 -0
- {loom_kernel-2.10.0 → loom_kernel-2.11.1}/src/loom/etl/checkpoint/_store.py +0 -0
- {loom_kernel-2.10.0 → loom_kernel-2.11.1}/src/loom/etl/compiler/__init__.py +0 -0
- {loom_kernel-2.10.0 → loom_kernel-2.11.1}/src/loom/etl/compiler/_binding.py +0 -0
- {loom_kernel-2.10.0 → loom_kernel-2.11.1}/src/loom/etl/compiler/_compiler.py +0 -0
- {loom_kernel-2.10.0 → loom_kernel-2.11.1}/src/loom/etl/compiler/_errors.py +0 -0
- {loom_kernel-2.10.0 → loom_kernel-2.11.1}/src/loom/etl/compiler/_plan.py +0 -0
- {loom_kernel-2.10.0 → loom_kernel-2.11.1}/src/loom/etl/compiler/_validators.py +0 -0
- {loom_kernel-2.10.0 → loom_kernel-2.11.1}/src/loom/etl/compiler/_validators_config.py +0 -0
- {loom_kernel-2.10.0 → loom_kernel-2.11.1}/src/loom/etl/compiler/_validators_plan.py +0 -0
- {loom_kernel-2.10.0 → loom_kernel-2.11.1}/src/loom/etl/compiler/_validators_step.py +0 -0
- {loom_kernel-2.10.0 → loom_kernel-2.11.1}/src/loom/etl/declarative/__init__.py +0 -0
- {loom_kernel-2.10.0 → loom_kernel-2.11.1}/src/loom/etl/declarative/_format.py +0 -0
- {loom_kernel-2.10.0 → loom_kernel-2.11.1}/src/loom/etl/declarative/_read_options.py +0 -0
- {loom_kernel-2.10.0 → loom_kernel-2.11.1}/src/loom/etl/declarative/_utils.py +0 -0
- {loom_kernel-2.10.0 → loom_kernel-2.11.1}/src/loom/etl/declarative/_write_options.py +0 -0
- {loom_kernel-2.10.0 → loom_kernel-2.11.1}/src/loom/etl/declarative/expr/__init__.py +0 -0
- {loom_kernel-2.10.0 → loom_kernel-2.11.1}/src/loom/etl/declarative/expr/_params.py +0 -0
- {loom_kernel-2.10.0 → loom_kernel-2.11.1}/src/loom/etl/declarative/expr/_predicate.py +0 -0
- {loom_kernel-2.10.0 → loom_kernel-2.11.1}/src/loom/etl/declarative/expr/_predicate_dialect.py +0 -0
- {loom_kernel-2.10.0 → loom_kernel-2.11.1}/src/loom/etl/declarative/expr/_refs.py +0 -0
- {loom_kernel-2.10.0 → loom_kernel-2.11.1}/src/loom/etl/declarative/source/__init__.py +0 -0
- {loom_kernel-2.10.0 → loom_kernel-2.11.1}/src/loom/etl/declarative/source/_from.py +0 -0
- {loom_kernel-2.10.0 → loom_kernel-2.11.1}/src/loom/etl/declarative/source/_from_clickhouse.py +0 -0
- {loom_kernel-2.10.0 → loom_kernel-2.11.1}/src/loom/etl/declarative/source/_from_config.py +0 -0
- {loom_kernel-2.10.0 → loom_kernel-2.11.1}/src/loom/etl/declarative/source/_from_dynamodb.py +0 -0
- {loom_kernel-2.10.0 → loom_kernel-2.11.1}/src/loom/etl/declarative/source/_from_mongo.py +0 -0
- {loom_kernel-2.10.0 → loom_kernel-2.11.1}/src/loom/etl/declarative/source/_specs.py +0 -0
- {loom_kernel-2.10.0 → loom_kernel-2.11.1}/src/loom/etl/declarative/target/__init__.py +0 -0
- {loom_kernel-2.10.0 → loom_kernel-2.11.1}/src/loom/etl/declarative/target/_client.py +0 -0
- {loom_kernel-2.10.0 → loom_kernel-2.11.1}/src/loom/etl/declarative/target/_file.py +0 -0
- {loom_kernel-2.10.0 → loom_kernel-2.11.1}/src/loom/etl/declarative/target/_history/__init__.py +0 -0
- {loom_kernel-2.10.0 → loom_kernel-2.11.1}/src/loom/etl/declarative/target/_history/_builder.py +0 -0
- {loom_kernel-2.10.0 → loom_kernel-2.11.1}/src/loom/etl/declarative/target/_history/_enums.py +0 -0
- {loom_kernel-2.10.0 → loom_kernel-2.11.1}/src/loom/etl/declarative/target/_history/_errors.py +0 -0
- {loom_kernel-2.10.0 → loom_kernel-2.11.1}/src/loom/etl/declarative/target/_history/_report.py +0 -0
- {loom_kernel-2.10.0 → loom_kernel-2.11.1}/src/loom/etl/declarative/target/_history/_spec.py +0 -0
- {loom_kernel-2.10.0 → loom_kernel-2.11.1}/src/loom/etl/declarative/target/_into.py +0 -0
- {loom_kernel-2.10.0 → loom_kernel-2.11.1}/src/loom/etl/declarative/target/_schema_mode.py +0 -0
- {loom_kernel-2.10.0 → loom_kernel-2.11.1}/src/loom/etl/declarative/target/_table.py +0 -0
- {loom_kernel-2.10.0 → loom_kernel-2.11.1}/src/loom/etl/declarative/target/_temp.py +0 -0
- {loom_kernel-2.10.0 → loom_kernel-2.11.1}/src/loom/etl/executor/__init__.py +0 -0
- {loom_kernel-2.10.0 → loom_kernel-2.11.1}/src/loom/etl/executor/_dispatcher.py +0 -0
- {loom_kernel-2.10.0 → loom_kernel-2.11.1}/src/loom/etl/executor/_executor.py +0 -0
- {loom_kernel-2.10.0 → loom_kernel-2.11.1}/src/loom/etl/io/__init__.py +0 -0
- {loom_kernel-2.10.0 → loom_kernel-2.11.1}/src/loom/etl/io/_registry.py +0 -0
- {loom_kernel-2.10.0 → loom_kernel-2.11.1}/src/loom/etl/io/sources/__init__.py +0 -0
- {loom_kernel-2.10.0 → loom_kernel-2.11.1}/src/loom/etl/io/sources/_clickhouse.py +0 -0
- {loom_kernel-2.10.0 → loom_kernel-2.11.1}/src/loom/etl/io/sources/_dynamodb.py +0 -0
- {loom_kernel-2.10.0 → loom_kernel-2.11.1}/src/loom/etl/io/sources/_dynamodb_items.py +0 -0
- {loom_kernel-2.10.0 → loom_kernel-2.11.1}/src/loom/etl/io/sources/_dynamodb_predicate.py +0 -0
- {loom_kernel-2.10.0 → loom_kernel-2.11.1}/src/loom/etl/io/sources/_mongo.py +0 -0
- {loom_kernel-2.10.0 → loom_kernel-2.11.1}/src/loom/etl/io/sources/_mongo_batch.py +0 -0
- {loom_kernel-2.10.0 → loom_kernel-2.11.1}/src/loom/etl/io/sources/_mongo_bson.py +0 -0
- {loom_kernel-2.10.0 → loom_kernel-2.11.1}/src/loom/etl/io/sources/_mongo_predicate.py +0 -0
- {loom_kernel-2.10.0 → loom_kernel-2.11.1}/src/loom/etl/io/sources/_serialization.py +0 -0
- {loom_kernel-2.10.0 → loom_kernel-2.11.1}/src/loom/etl/io/targets/__init__.py +0 -0
- {loom_kernel-2.10.0 → loom_kernel-2.11.1}/src/loom/etl/io/targets/_clickhouse.py +0 -0
- {loom_kernel-2.10.0 → loom_kernel-2.11.1}/src/loom/etl/lineage/__init__.py +0 -0
- {loom_kernel-2.10.0 → loom_kernel-2.11.1}/src/loom/etl/lineage/_config.py +0 -0
- {loom_kernel-2.10.0 → loom_kernel-2.11.1}/src/loom/etl/lineage/_observer.py +0 -0
- {loom_kernel-2.10.0 → loom_kernel-2.11.1}/src/loom/etl/lineage/_records.py +0 -0
- {loom_kernel-2.10.0 → loom_kernel-2.11.1}/src/loom/etl/lineage/sinks/__init__.py +0 -0
- {loom_kernel-2.10.0 → loom_kernel-2.11.1}/src/loom/etl/lineage/sinks/_protocol.py +0 -0
- {loom_kernel-2.10.0 → loom_kernel-2.11.1}/src/loom/etl/lineage/sinks/_table.py +0 -0
- {loom_kernel-2.10.0 → loom_kernel-2.11.1}/src/loom/etl/lineage/sinks/_writer.py +0 -0
- {loom_kernel-2.10.0 → loom_kernel-2.11.1}/src/loom/etl/maintenance/__init__.py +0 -0
- {loom_kernel-2.10.0 → loom_kernel-2.11.1}/src/loom/etl/maintenance/_builder.py +0 -0
- {loom_kernel-2.10.0 → loom_kernel-2.11.1}/src/loom/etl/maintenance/_ops.py +0 -0
- {loom_kernel-2.10.0 → loom_kernel-2.11.1}/src/loom/etl/maintenance/_protocol.py +0 -0
- {loom_kernel-2.10.0 → loom_kernel-2.11.1}/src/loom/etl/maintenance/_runner.py +0 -0
- {loom_kernel-2.10.0 → loom_kernel-2.11.1}/src/loom/etl/maintenance/_step.py +0 -0
- {loom_kernel-2.10.0 → loom_kernel-2.11.1}/src/loom/etl/maintenance/backends/__init__.py +0 -0
- {loom_kernel-2.10.0 → loom_kernel-2.11.1}/src/loom/etl/maintenance/backends/_delta_rs.py +0 -0
- {loom_kernel-2.10.0 → loom_kernel-2.11.1}/src/loom/etl/pipeline/__init__.py +0 -0
- {loom_kernel-2.10.0 → loom_kernel-2.11.1}/src/loom/etl/pipeline/_generics.py +0 -0
- {loom_kernel-2.10.0 → loom_kernel-2.11.1}/src/loom/etl/pipeline/_params.py +0 -0
- {loom_kernel-2.10.0 → loom_kernel-2.11.1}/src/loom/etl/pipeline/_pipeline.py +0 -0
- {loom_kernel-2.10.0 → loom_kernel-2.11.1}/src/loom/etl/pipeline/_process.py +0 -0
- {loom_kernel-2.10.0 → loom_kernel-2.11.1}/src/loom/etl/pipeline/_sql.py +0 -0
- {loom_kernel-2.10.0 → loom_kernel-2.11.1}/src/loom/etl/pipeline/_step.py +0 -0
- {loom_kernel-2.10.0 → loom_kernel-2.11.1}/src/loom/etl/pipeline/_step_client.py +0 -0
- {loom_kernel-2.10.0 → loom_kernel-2.11.1}/src/loom/etl/pipeline/_step_sql.py +0 -0
- {loom_kernel-2.10.0 → loom_kernel-2.11.1}/src/loom/etl/runner/__init__.py +0 -0
- {loom_kernel-2.10.0 → loom_kernel-2.11.1}/src/loom/etl/runner/_providers.py +0 -0
- {loom_kernel-2.10.0 → loom_kernel-2.11.1}/src/loom/etl/runner/_wiring.py +0 -0
- {loom_kernel-2.10.0 → loom_kernel-2.11.1}/src/loom/etl/runner/config_loader.py +0 -0
- {loom_kernel-2.10.0 → loom_kernel-2.11.1}/src/loom/etl/runner/core.py +0 -0
- {loom_kernel-2.10.0 → loom_kernel-2.11.1}/src/loom/etl/runner/errors.py +0 -0
- {loom_kernel-2.10.0 → loom_kernel-2.11.1}/src/loom/etl/runner/filtering.py +0 -0
- {loom_kernel-2.10.0 → loom_kernel-2.11.1}/src/loom/etl/runtime/__init__.py +0 -0
- {loom_kernel-2.10.0 → loom_kernel-2.11.1}/src/loom/etl/runtime/_config_values.py +0 -0
- {loom_kernel-2.10.0 → loom_kernel-2.11.1}/src/loom/etl/runtime/contracts.py +0 -0
- {loom_kernel-2.10.0 → loom_kernel-2.11.1}/src/loom/etl/schema/__init__.py +0 -0
- {loom_kernel-2.10.0 → loom_kernel-2.11.1}/src/loom/etl/schema/_contract.py +0 -0
- {loom_kernel-2.10.0 → loom_kernel-2.11.1}/src/loom/etl/schema/_schema.py +0 -0
- {loom_kernel-2.10.0 → loom_kernel-2.11.1}/src/loom/etl/storage/__init__.py +0 -0
- {loom_kernel-2.10.0 → loom_kernel-2.11.1}/src/loom/etl/storage/_config.py +0 -0
- {loom_kernel-2.10.0 → loom_kernel-2.11.1}/src/loom/etl/storage/_file_locator.py +0 -0
- {loom_kernel-2.10.0 → loom_kernel-2.11.1}/src/loom/etl/storage/_locator.py +0 -0
- {loom_kernel-2.10.0 → loom_kernel-2.11.1}/src/loom/etl/storage/routing.py +0 -0
- {loom_kernel-2.10.0 → loom_kernel-2.11.1}/src/loom/etl/testing/__init__.py +0 -0
- {loom_kernel-2.10.0 → loom_kernel-2.11.1}/src/loom/etl/testing/_result.py +0 -0
- {loom_kernel-2.10.0 → loom_kernel-2.11.1}/src/loom/etl/testing/_runners.py +0 -0
- {loom_kernel-2.10.0 → loom_kernel-2.11.1}/src/loom/etl/testing/_scenario.py +0 -0
- {loom_kernel-2.10.0 → loom_kernel-2.11.1}/src/loom/etl/testing/_stubs.py +0 -0
- {loom_kernel-2.10.0 → loom_kernel-2.11.1}/src/loom/etl/testing/spark.py +0 -0
- {loom_kernel-2.10.0 → loom_kernel-2.11.1}/src/loom/prefect/__init__.py +0 -0
- {loom_kernel-2.10.0 → loom_kernel-2.11.1}/src/loom/prefect/_async.py +0 -0
- {loom_kernel-2.10.0 → loom_kernel-2.11.1}/src/loom/prefect/_config.py +0 -0
- {loom_kernel-2.10.0 → loom_kernel-2.11.1}/src/loom/prefect/_ctx.py +0 -0
- {loom_kernel-2.10.0 → loom_kernel-2.11.1}/src/loom/prefect/_flow_yaml.py +0 -0
- {loom_kernel-2.10.0 → loom_kernel-2.11.1}/src/loom/prefect/_meta.py +0 -0
- {loom_kernel-2.10.0 → loom_kernel-2.11.1}/src/loom/prefect/_placeholders.py +0 -0
- {loom_kernel-2.10.0 → loom_kernel-2.11.1}/src/loom/prefect/_summary.py +0 -0
- {loom_kernel-2.10.0 → loom_kernel-2.11.1}/src/loom/prefect/deploy/__init__.py +0 -0
- {loom_kernel-2.10.0 → loom_kernel-2.11.1}/src/loom/prefect/deploy/_discovery.py +0 -0
- {loom_kernel-2.10.0 → loom_kernel-2.11.1}/src/loom/prefect/deploy/_schedule.py +0 -0
- {loom_kernel-2.10.0 → loom_kernel-2.11.1}/src/loom/prefect/deploy/_yaml_etls.py +0 -0
- {loom_kernel-2.10.0 → loom_kernel-2.11.1}/src/loom/prefect/deploy/entrypoint.py +0 -0
- {loom_kernel-2.10.0 → loom_kernel-2.11.1}/src/loom/prefect/flow/__init__.py +0 -0
- {loom_kernel-2.10.0 → loom_kernel-2.11.1}/src/loom/prefect/flow/_assemble.py +0 -0
- {loom_kernel-2.10.0 → loom_kernel-2.11.1}/src/loom/prefect/flow/_backfill.py +0 -0
- {loom_kernel-2.10.0 → loom_kernel-2.11.1}/src/loom/prefect/flow/_backfill_body.py +0 -0
- {loom_kernel-2.10.0 → loom_kernel-2.11.1}/src/loom/prefect/flow/_body.py +0 -0
- {loom_kernel-2.10.0 → loom_kernel-2.11.1}/src/loom/prefect/flow/_common.py +0 -0
- {loom_kernel-2.10.0 → loom_kernel-2.11.1}/src/loom/prefect/flow/_factory.py +0 -0
- {loom_kernel-2.10.0 → loom_kernel-2.11.1}/src/loom/prefect/flow/_hooks.py +0 -0
- {loom_kernel-2.10.0 → loom_kernel-2.11.1}/src/loom/prefect/flow/_maintenance.py +0 -0
- {loom_kernel-2.10.0 → loom_kernel-2.11.1}/src/loom/prefect/flow/_params.py +0 -0
- {loom_kernel-2.10.0 → loom_kernel-2.11.1}/src/loom/prefect/flow/_run_name.py +0 -0
- {loom_kernel-2.10.0 → loom_kernel-2.11.1}/src/loom/prefect/flow/_runtime.py +0 -0
- {loom_kernel-2.10.0 → loom_kernel-2.11.1}/src/loom/prefect/flow/_signature.py +0 -0
- {loom_kernel-2.10.0 → loom_kernel-2.11.1}/src/loom/prefect/flow/_stages.py +0 -0
- {loom_kernel-2.10.0 → loom_kernel-2.11.1}/src/loom/prefect/manifest/__init__.py +0 -0
- {loom_kernel-2.10.0 → loom_kernel-2.11.1}/src/loom/prefect/manifest/_model.py +0 -0
- {loom_kernel-2.10.0 → loom_kernel-2.11.1}/src/loom/prefect/manifest/_s3.py +0 -0
- {loom_kernel-2.10.0 → loom_kernel-2.11.1}/src/loom/prefect/manifest/_store.py +0 -0
- {loom_kernel-2.10.0 → loom_kernel-2.11.1}/src/loom/prefect/notify/__init__.py +0 -0
- {loom_kernel-2.10.0 → loom_kernel-2.11.1}/src/loom/prefect/notify/_event.py +0 -0
- {loom_kernel-2.10.0 → loom_kernel-2.11.1}/src/loom/prefect/notify/_factory.py +0 -0
- {loom_kernel-2.10.0 → loom_kernel-2.11.1}/src/loom/prefect/notify/_port.py +0 -0
- {loom_kernel-2.10.0 → loom_kernel-2.11.1}/src/loom/prefect/notify/_slack.py +0 -0
- {loom_kernel-2.10.0 → loom_kernel-2.11.1}/src/loom/prefect/observer/__init__.py +0 -0
- {loom_kernel-2.10.0 → loom_kernel-2.11.1}/src/loom/prefect/observer/_flow.py +0 -0
- {loom_kernel-2.10.0 → loom_kernel-2.11.1}/src/loom/prefect/observer/_logging_bridge.py +0 -0
- {loom_kernel-2.10.0 → loom_kernel-2.11.1}/src/loom/prefect/observer/_manifest.py +0 -0
- {loom_kernel-2.10.0 → loom_kernel-2.11.1}/src/loom/prefect/observer/_task_run.py +0 -0
- {loom_kernel-2.10.0 → loom_kernel-2.11.1}/src/loom/prometheus/__init__.py +0 -0
- {loom_kernel-2.10.0 → loom_kernel-2.11.1}/src/loom/prometheus/_instruments.py +0 -0
- {loom_kernel-2.10.0 → loom_kernel-2.11.1}/src/loom/prometheus/adapter.py +0 -0
- {loom_kernel-2.10.0 → loom_kernel-2.11.1}/src/loom/prometheus/kafka.py +0 -0
- {loom_kernel-2.10.0 → loom_kernel-2.11.1}/src/loom/prometheus/lifecycle.py +0 -0
- {loom_kernel-2.10.0 → loom_kernel-2.11.1}/src/loom/prometheus/middleware.py +0 -0
- {loom_kernel-2.10.0 → loom_kernel-2.11.1}/src/loom/py.typed +0 -0
- {loom_kernel-2.10.0 → loom_kernel-2.11.1}/src/loom/rest/__init__.py +0 -0
- {loom_kernel-2.10.0 → loom_kernel-2.11.1}/src/loom/rest/_body.py +0 -0
- {loom_kernel-2.10.0 → loom_kernel-2.11.1}/src/loom/rest/adapter.py +0 -0
- {loom_kernel-2.10.0 → loom_kernel-2.11.1}/src/loom/rest/auth/__init__.py +0 -0
- {loom_kernel-2.10.0 → loom_kernel-2.11.1}/src/loom/rest/auth/abc.py +0 -0
- {loom_kernel-2.10.0 → loom_kernel-2.11.1}/src/loom/rest/auth/config.py +0 -0
- {loom_kernel-2.10.0 → loom_kernel-2.11.1}/src/loom/rest/auth/jwt.py +0 -0
- {loom_kernel-2.10.0 → loom_kernel-2.11.1}/src/loom/rest/auth/middleware.py +0 -0
- {loom_kernel-2.10.0 → loom_kernel-2.11.1}/src/loom/rest/autocrud.py +0 -0
- {loom_kernel-2.10.0 → loom_kernel-2.11.1}/src/loom/rest/compiler.py +0 -0
- {loom_kernel-2.10.0 → loom_kernel-2.11.1}/src/loom/rest/config.py +0 -0
- {loom_kernel-2.10.0 → loom_kernel-2.11.1}/src/loom/rest/constants.py +0 -0
- {loom_kernel-2.10.0 → loom_kernel-2.11.1}/src/loom/rest/cors.py +0 -0
- {loom_kernel-2.10.0 → loom_kernel-2.11.1}/src/loom/rest/errors.py +0 -0
- {loom_kernel-2.10.0 → loom_kernel-2.11.1}/src/loom/rest/fastapi/__init__.py +0 -0
- {loom_kernel-2.10.0 → loom_kernel-2.11.1}/src/loom/rest/fastapi/_errors.py +0 -0
- {loom_kernel-2.10.0 → loom_kernel-2.11.1}/src/loom/rest/fastapi/_exclusions.py +0 -0
- {loom_kernel-2.10.0 → loom_kernel-2.11.1}/src/loom/rest/fastapi/app.py +0 -0
- {loom_kernel-2.10.0 → loom_kernel-2.11.1}/src/loom/rest/fastapi/auto.py +0 -0
- {loom_kernel-2.10.0 → loom_kernel-2.11.1}/src/loom/rest/fastapi/health.py +0 -0
- {loom_kernel-2.10.0 → loom_kernel-2.11.1}/src/loom/rest/fastapi/openapi.py +0 -0
- {loom_kernel-2.10.0 → loom_kernel-2.11.1}/src/loom/rest/fastapi/response.py +0 -0
- {loom_kernel-2.10.0 → loom_kernel-2.11.1}/src/loom/rest/fastapi/router_runtime.py +0 -0
- {loom_kernel-2.10.0 → loom_kernel-2.11.1}/src/loom/rest/fastapi/sql.py +0 -0
- {loom_kernel-2.10.0 → loom_kernel-2.11.1}/src/loom/rest/middleware.py +0 -0
- {loom_kernel-2.10.0 → loom_kernel-2.11.1}/src/loom/rest/model.py +0 -0
- {loom_kernel-2.10.0 → loom_kernel-2.11.1}/src/loom/rest/rest_adapter.py +0 -0
- {loom_kernel-2.10.0 → loom_kernel-2.11.1}/src/loom/streaming/__init__.py +0 -0
- {loom_kernel-2.10.0 → loom_kernel-2.11.1}/src/loom/streaming/bytewax/__init__.py +0 -0
- {loom_kernel-2.10.0 → loom_kernel-2.11.1}/src/loom/streaming/bytewax/_adapter.py +0 -0
- {loom_kernel-2.10.0 → loom_kernel-2.11.1}/src/loom/streaming/bytewax/_batch_spans.py +0 -0
- {loom_kernel-2.10.0 → loom_kernel-2.11.1}/src/loom/streaming/bytewax/_commit_tracker.py +0 -0
- {loom_kernel-2.10.0 → loom_kernel-2.11.1}/src/loom/streaming/bytewax/_dlq.py +0 -0
- {loom_kernel-2.10.0 → loom_kernel-2.11.1}/src/loom/streaming/bytewax/_error_boundary.py +0 -0
- {loom_kernel-2.10.0 → loom_kernel-2.11.1}/src/loom/streaming/bytewax/_errors.py +0 -0
- {loom_kernel-2.10.0 → loom_kernel-2.11.1}/src/loom/streaming/bytewax/_operators.py +0 -0
- {loom_kernel-2.10.0 → loom_kernel-2.11.1}/src/loom/streaming/bytewax/_resource_manager.py +0 -0
- {loom_kernel-2.10.0 → loom_kernel-2.11.1}/src/loom/streaming/bytewax/_runtime_io.py +0 -0
- {loom_kernel-2.10.0 → loom_kernel-2.11.1}/src/loom/streaming/bytewax/_sink_registry.py +0 -0
- {loom_kernel-2.10.0 → loom_kernel-2.11.1}/src/loom/streaming/bytewax/handlers/__init__.py +0 -0
- {loom_kernel-2.10.0 → loom_kernel-2.11.1}/src/loom/streaming/bytewax/handlers/_shared.py +0 -0
- {loom_kernel-2.10.0 → loom_kernel-2.11.1}/src/loom/streaming/bytewax/handlers/boundary.py +0 -0
- {loom_kernel-2.10.0 → loom_kernel-2.11.1}/src/loom/streaming/bytewax/handlers/dispatcher.py +0 -0
- {loom_kernel-2.10.0 → loom_kernel-2.11.1}/src/loom/streaming/bytewax/handlers/routing.py +0 -0
- {loom_kernel-2.10.0 → loom_kernel-2.11.1}/src/loom/streaming/bytewax/handlers/scopes.py +0 -0
- {loom_kernel-2.10.0 → loom_kernel-2.11.1}/src/loom/streaming/bytewax/handlers/shapes.py +0 -0
- {loom_kernel-2.10.0 → loom_kernel-2.11.1}/src/loom/streaming/bytewax/handlers/steps.py +0 -0
- {loom_kernel-2.10.0 → loom_kernel-2.11.1}/src/loom/streaming/bytewax/handlers/storage.py +0 -0
- {loom_kernel-2.10.0 → loom_kernel-2.11.1}/src/loom/streaming/bytewax/runner.py +0 -0
- {loom_kernel-2.10.0 → loom_kernel-2.11.1}/src/loom/streaming/compiler/__init__.py +0 -0
- {loom_kernel-2.10.0 → loom_kernel-2.11.1}/src/loom/streaming/compiler/_bindings.py +0 -0
- {loom_kernel-2.10.0 → loom_kernel-2.11.1}/src/loom/streaming/compiler/_compiler.py +0 -0
- {loom_kernel-2.10.0 → loom_kernel-2.11.1}/src/loom/streaming/compiler/_errors.py +0 -0
- {loom_kernel-2.10.0 → loom_kernel-2.11.1}/src/loom/streaming/compiler/_plan.py +0 -0
- {loom_kernel-2.10.0 → loom_kernel-2.11.1}/src/loom/streaming/compiler/phases/build_plan.py +0 -0
- {loom_kernel-2.10.0 → loom_kernel-2.11.1}/src/loom/streaming/compiler/phases/validate.py +0 -0
- {loom_kernel-2.10.0 → loom_kernel-2.11.1}/src/loom/streaming/core/__init__.py +0 -0
- {loom_kernel-2.10.0 → loom_kernel-2.11.1}/src/loom/streaming/core/_errors.py +0 -0
- {loom_kernel-2.10.0 → loom_kernel-2.11.1}/src/loom/streaming/core/_exceptions.py +0 -0
- {loom_kernel-2.10.0 → loom_kernel-2.11.1}/src/loom/streaming/core/_message.py +0 -0
- {loom_kernel-2.10.0 → loom_kernel-2.11.1}/src/loom/streaming/core/_tracing.py +0 -0
- {loom_kernel-2.10.0 → loom_kernel-2.11.1}/src/loom/streaming/core/_typing.py +0 -0
- {loom_kernel-2.10.0 → loom_kernel-2.11.1}/src/loom/streaming/graph/__init__.py +0 -0
- {loom_kernel-2.10.0 → loom_kernel-2.11.1}/src/loom/streaming/graph/_flow.py +0 -0
- {loom_kernel-2.10.0 → loom_kernel-2.11.1}/src/loom/streaming/kafka/__init__.py +0 -0
- {loom_kernel-2.10.0 → loom_kernel-2.11.1}/src/loom/streaming/kafka/_codec.py +0 -0
- {loom_kernel-2.10.0 → loom_kernel-2.11.1}/src/loom/streaming/kafka/_config.py +0 -0
- {loom_kernel-2.10.0 → loom_kernel-2.11.1}/src/loom/streaming/kafka/_errors.py +0 -0
- {loom_kernel-2.10.0 → loom_kernel-2.11.1}/src/loom/streaming/kafka/_key_resolver.py +0 -0
- {loom_kernel-2.10.0 → loom_kernel-2.11.1}/src/loom/streaming/kafka/_message.py +0 -0
- {loom_kernel-2.10.0 → loom_kernel-2.11.1}/src/loom/streaming/kafka/_record.py +0 -0
- {loom_kernel-2.10.0 → loom_kernel-2.11.1}/src/loom/streaming/kafka/_wire.py +0 -0
- {loom_kernel-2.10.0 → loom_kernel-2.11.1}/src/loom/streaming/kafka/client/__init__.py +0 -0
- {loom_kernel-2.10.0 → loom_kernel-2.11.1}/src/loom/streaming/kafka/client/_consumer.py +0 -0
- {loom_kernel-2.10.0 → loom_kernel-2.11.1}/src/loom/streaming/kafka/client/_producer.py +0 -0
- {loom_kernel-2.10.0 → loom_kernel-2.11.1}/src/loom/streaming/kafka/client/_protocol.py +0 -0
- {loom_kernel-2.10.0 → loom_kernel-2.11.1}/src/loom/streaming/kafka/client/_retry.py +0 -0
- {loom_kernel-2.10.0 → loom_kernel-2.11.1}/src/loom/streaming/kafka/message/__init__.py +0 -0
- {loom_kernel-2.10.0 → loom_kernel-2.11.1}/src/loom/streaming/kafka/message/_consumer.py +0 -0
- {loom_kernel-2.10.0 → loom_kernel-2.11.1}/src/loom/streaming/kafka/message/_producer.py +0 -0
- {loom_kernel-2.10.0 → loom_kernel-2.11.1}/src/loom/streaming/kafka/message/_protocol.py +0 -0
- {loom_kernel-2.10.0 → loom_kernel-2.11.1}/src/loom/streaming/mongo/__init__.py +0 -0
- {loom_kernel-2.10.0 → loom_kernel-2.11.1}/src/loom/streaming/mongo/_bytewax_source.py +0 -0
- {loom_kernel-2.10.0 → loom_kernel-2.11.1}/src/loom/streaming/mongo/_config.py +0 -0
- {loom_kernel-2.10.0 → loom_kernel-2.11.1}/src/loom/streaming/mongo/_event.py +0 -0
- {loom_kernel-2.10.0 → loom_kernel-2.11.1}/src/loom/streaming/nodes/__init__.py +0 -0
- {loom_kernel-2.10.0 → loom_kernel-2.11.1}/src/loom/streaming/nodes/_boundary.py +0 -0
- {loom_kernel-2.10.0 → loom_kernel-2.11.1}/src/loom/streaming/nodes/_branches.py +0 -0
- {loom_kernel-2.10.0 → loom_kernel-2.11.1}/src/loom/streaming/nodes/_broadcast.py +0 -0
- {loom_kernel-2.10.0 → loom_kernel-2.11.1}/src/loom/streaming/nodes/_capabilities.py +0 -0
- {loom_kernel-2.10.0 → loom_kernel-2.11.1}/src/loom/streaming/nodes/_decompose.py +0 -0
- {loom_kernel-2.10.0 → loom_kernel-2.11.1}/src/loom/streaming/nodes/_expand_routes.py +0 -0
- {loom_kernel-2.10.0 → loom_kernel-2.11.1}/src/loom/streaming/nodes/_expr_eval.py +0 -0
- {loom_kernel-2.10.0 → loom_kernel-2.11.1}/src/loom/streaming/nodes/_fork.py +0 -0
- {loom_kernel-2.10.0 → loom_kernel-2.11.1}/src/loom/streaming/nodes/_helpers.py +0 -0
- {loom_kernel-2.10.0 → loom_kernel-2.11.1}/src/loom/streaming/nodes/_mongo.py +0 -0
- {loom_kernel-2.10.0 → loom_kernel-2.11.1}/src/loom/streaming/nodes/_protocols.py +0 -0
- {loom_kernel-2.10.0 → loom_kernel-2.11.1}/src/loom/streaming/nodes/_router.py +0 -0
- {loom_kernel-2.10.0 → loom_kernel-2.11.1}/src/loom/streaming/nodes/_shape.py +0 -0
- {loom_kernel-2.10.0 → loom_kernel-2.11.1}/src/loom/streaming/nodes/_sink.py +0 -0
- {loom_kernel-2.10.0 → loom_kernel-2.11.1}/src/loom/streaming/nodes/_step.py +0 -0
- {loom_kernel-2.10.0 → loom_kernel-2.11.1}/src/loom/streaming/nodes/_table/__init__.py +0 -0
- {loom_kernel-2.10.0 → loom_kernel-2.11.1}/src/loom/streaming/nodes/_table/common.py +0 -0
- {loom_kernel-2.10.0 → loom_kernel-2.11.1}/src/loom/streaming/nodes/_table/config.py +0 -0
- {loom_kernel-2.10.0 → loom_kernel-2.11.1}/src/loom/streaming/nodes/_with.py +0 -0
- {loom_kernel-2.10.0 → loom_kernel-2.11.1}/src/loom/streaming/nodes/refs.py +0 -0
- {loom_kernel-2.10.0 → loom_kernel-2.11.1}/src/loom/streaming/testing.py +0 -0
- {loom_kernel-2.10.0 → loom_kernel-2.11.1}/src/loom/testing/__init__.py +0 -0
- {loom_kernel-2.10.0 → loom_kernel-2.11.1}/src/loom/testing/agents.py +0 -0
- {loom_kernel-2.10.0 → loom_kernel-2.11.1}/src/loom/testing/golden.py +0 -0
- {loom_kernel-2.10.0 → loom_kernel-2.11.1}/src/loom/testing/http_harness.py +0 -0
- {loom_kernel-2.10.0 → loom_kernel-2.11.1}/src/loom/testing/in_memory.py +0 -0
- {loom_kernel-2.10.0 → loom_kernel-2.11.1}/src/loom/testing/repository_harness.py +0 -0
- {loom_kernel-2.10.0 → loom_kernel-2.11.1}/src/loom/testing/runner.py +0 -0
|
@@ -224,6 +224,7 @@ mcp-tests = [
|
|
|
224
224
|
dev = [
|
|
225
225
|
"aiocache>=0.12,<1.0",
|
|
226
226
|
"aiosqlite>=0.20.0",
|
|
227
|
+
"asyncpg>=0.30",
|
|
227
228
|
# Declared, not merely transitive: one cache test pins what the key renderer
|
|
228
229
|
# cannot separate inside an object msgspec expands itself, and an attrs class
|
|
229
230
|
# is the only such object the stdlib can build.
|
|
@@ -477,6 +478,7 @@ prerelease_ignore = [
|
|
|
477
478
|
"ci/.*",
|
|
478
479
|
"test/.*",
|
|
479
480
|
"build/.*",
|
|
481
|
+
"dependabot/.*",
|
|
480
482
|
]
|
|
481
483
|
release_ignore = [
|
|
482
484
|
"wip/.*",
|
|
@@ -485,4 +487,5 @@ release_ignore = [
|
|
|
485
487
|
"ci/.*",
|
|
486
488
|
"test/.*",
|
|
487
489
|
"build/.*",
|
|
490
|
+
"dependabot/.*",
|
|
488
491
|
]
|
|
@@ -13,6 +13,7 @@ from loom.core.repository.sqlalchemy.registry import (
|
|
|
13
13
|
)
|
|
14
14
|
from loom.core.repository.sqlalchemy.repository import RepositorySQLAlchemy, with_session_scope
|
|
15
15
|
from loom.core.repository.sqlalchemy.session_manager import SessionManager
|
|
16
|
+
from loom.core.repository.sqlalchemy.session_settings import SessionSettings
|
|
16
17
|
from loom.core.repository.sqlalchemy.transactional import SupportsPostCommit, transactional
|
|
17
18
|
|
|
18
19
|
__all__ = [
|
|
@@ -24,6 +25,7 @@ __all__ = [
|
|
|
24
25
|
"Projection",
|
|
25
26
|
"RepositorySQLAlchemy",
|
|
26
27
|
"SessionManager",
|
|
28
|
+
"SessionSettings",
|
|
27
29
|
"SupportsPostCommit",
|
|
28
30
|
"TimestampMixin",
|
|
29
31
|
"SQLAlchemyDefaultRepositoryBuilder",
|
{loom_kernel-2.10.0 → loom_kernel-2.11.1}/src/loom/core/repository/sqlalchemy/session_manager.py
RENAMED
|
@@ -5,14 +5,20 @@ from contextlib import asynccontextmanager
|
|
|
5
5
|
from typing import Any
|
|
6
6
|
|
|
7
7
|
from sqlalchemy import event
|
|
8
|
+
from sqlalchemy.engine import make_url
|
|
8
9
|
from sqlalchemy.ext.asyncio import (
|
|
9
10
|
AsyncEngine,
|
|
10
11
|
AsyncSession,
|
|
11
12
|
async_sessionmaker,
|
|
12
13
|
create_async_engine,
|
|
13
14
|
)
|
|
15
|
+
from sqlalchemy.orm import Session
|
|
14
16
|
|
|
15
17
|
from loom.core.logger import get_logger
|
|
18
|
+
from loom.core.repository.sqlalchemy.session_settings import (
|
|
19
|
+
SessionSettings,
|
|
20
|
+
install_session_settings,
|
|
21
|
+
)
|
|
16
22
|
from loom.core.tracing import get_trace_id
|
|
17
23
|
|
|
18
24
|
|
|
@@ -25,6 +31,7 @@ class SessionManager:
|
|
|
25
31
|
config: Mapping[str, Any],
|
|
26
32
|
*,
|
|
27
33
|
inject_trace_id: bool = True,
|
|
34
|
+
session_settings: SessionSettings | None = None,
|
|
28
35
|
**engine_kwargs: object,
|
|
29
36
|
) -> SessionManager:
|
|
30
37
|
"""Build a session manager from a resolved SQLAlchemy config mapping.
|
|
@@ -34,6 +41,8 @@ class SessionManager:
|
|
|
34
41
|
optional pool tuning keys.
|
|
35
42
|
inject_trace_id: When ``True``, prefixes SQL statements with the
|
|
36
43
|
active trace id when available.
|
|
44
|
+
session_settings: Optional provider of transaction-local Postgres
|
|
45
|
+
settings; see :meth:`SessionManager.__init__` for the contract.
|
|
37
46
|
**engine_kwargs: Additional keyword arguments forwarded to the
|
|
38
47
|
async engine constructor.
|
|
39
48
|
|
|
@@ -41,7 +50,8 @@ class SessionManager:
|
|
|
41
50
|
A configured :class:`SessionManager`.
|
|
42
51
|
|
|
43
52
|
Raises:
|
|
44
|
-
ValueError: If ``url`` is missing or empty
|
|
53
|
+
ValueError: If ``url`` is missing or empty, or if ``session_settings``
|
|
54
|
+
is given and ``url`` is not a Postgres URL.
|
|
45
55
|
"""
|
|
46
56
|
url = config.get("url")
|
|
47
57
|
if not url:
|
|
@@ -56,6 +66,7 @@ class SessionManager:
|
|
|
56
66
|
pool_recycle=_optional_int(config.get("pool_recycle"), 1800),
|
|
57
67
|
connect_args=dict(config.get("connect_args") or {}),
|
|
58
68
|
inject_trace_id=inject_trace_id,
|
|
69
|
+
session_settings=session_settings,
|
|
59
70
|
**engine_kwargs,
|
|
60
71
|
)
|
|
61
72
|
|
|
@@ -71,6 +82,7 @@ class SessionManager:
|
|
|
71
82
|
pool_recycle: int | None = 1800,
|
|
72
83
|
connect_args: dict[str, object] | None = None,
|
|
73
84
|
inject_trace_id: bool = True,
|
|
85
|
+
session_settings: SessionSettings | None = None,
|
|
74
86
|
**engine_kwargs: object,
|
|
75
87
|
) -> None:
|
|
76
88
|
"""Create a session manager backed by an async SQLAlchemy engine.
|
|
@@ -88,8 +100,32 @@ class SessionManager:
|
|
|
88
100
|
``/* trace_id=<id> */`` comment when a trace identifier is active
|
|
89
101
|
in the current async context. Visible in database slow-query logs
|
|
90
102
|
and ``pg_stat_activity``. Defaults to ``True``.
|
|
103
|
+
session_settings: When given, a callable that returns the settings for
|
|
104
|
+
the transaction about to start, or ``None`` to apply none. Each
|
|
105
|
+
outer transaction then begins with one ``SELECT`` that calls
|
|
106
|
+
``set_config(key, value, true)`` once per entry, with keys and
|
|
107
|
+
values bound as parameters. The settings are local to the
|
|
108
|
+
transaction, so the connection returns to the pool clean. Postgres
|
|
109
|
+
only, and incompatible with ``isolation_level="AUTOCOMMIT"``, which
|
|
110
|
+
would discard the settings after each statement; when ``None``,
|
|
111
|
+
the manager behaves exactly as it does without this option.
|
|
91
112
|
**engine_kwargs: Additional keyword arguments forwarded to ``create_async_engine``.
|
|
113
|
+
|
|
114
|
+
Raises:
|
|
115
|
+
ValueError: If ``session_settings`` is given and ``url`` is not a
|
|
116
|
+
Postgres URL, or the engine is configured with
|
|
117
|
+
``isolation_level="AUTOCOMMIT"``.
|
|
92
118
|
"""
|
|
119
|
+
if session_settings is not None:
|
|
120
|
+
backend = make_url(url).get_backend_name()
|
|
121
|
+
if backend != "postgresql":
|
|
122
|
+
raise ValueError(
|
|
123
|
+
f"session_settings requires a postgresql URL, got backend {backend!r}"
|
|
124
|
+
)
|
|
125
|
+
if _autocommit(engine_kwargs):
|
|
126
|
+
raise ValueError(
|
|
127
|
+
"session_settings is incompatible with isolation_level='AUTOCOMMIT'"
|
|
128
|
+
)
|
|
93
129
|
engine_config: dict[str, object] = {
|
|
94
130
|
"echo": echo,
|
|
95
131
|
"pool_pre_ping": pool_pre_ping,
|
|
@@ -108,10 +144,16 @@ class SessionManager:
|
|
|
108
144
|
|
|
109
145
|
self._log = get_logger(__name__).bind(module="session_manager")
|
|
110
146
|
self._engine = create_async_engine(url, **engine_config)
|
|
147
|
+
factory_kwargs: dict[str, Any] = {}
|
|
148
|
+
if session_settings is not None:
|
|
149
|
+
session_class = type("SettingsSession", (Session,), {})
|
|
150
|
+
install_session_settings(session_class, session_settings)
|
|
151
|
+
factory_kwargs["sync_session_class"] = session_class
|
|
111
152
|
self._session_factory = async_sessionmaker(
|
|
112
153
|
bind=self._engine,
|
|
113
154
|
class_=AsyncSession,
|
|
114
155
|
expire_on_commit=False,
|
|
156
|
+
**factory_kwargs,
|
|
115
157
|
)
|
|
116
158
|
if inject_trace_id:
|
|
117
159
|
_register_trace_id_listener(self._engine)
|
|
@@ -120,6 +162,7 @@ class SessionManager:
|
|
|
120
162
|
backend=self._engine.url.get_backend_name(),
|
|
121
163
|
driver=self._engine.url.get_driver_name(),
|
|
122
164
|
inject_trace_id=inject_trace_id,
|
|
165
|
+
session_settings=session_settings is not None,
|
|
123
166
|
)
|
|
124
167
|
|
|
125
168
|
@asynccontextmanager
|
|
@@ -181,6 +224,17 @@ def _register_trace_id_listener(async_engine: AsyncEngine) -> None:
|
|
|
181
224
|
return statement, parameters
|
|
182
225
|
|
|
183
226
|
|
|
227
|
+
def _autocommit(engine_kwargs: Mapping[str, object]) -> bool:
|
|
228
|
+
execution_options = engine_kwargs.get("execution_options")
|
|
229
|
+
levels = (
|
|
230
|
+
engine_kwargs.get("isolation_level"),
|
|
231
|
+
execution_options.get("isolation_level")
|
|
232
|
+
if isinstance(execution_options, Mapping)
|
|
233
|
+
else None,
|
|
234
|
+
)
|
|
235
|
+
return any(isinstance(level, str) and level.upper() == "AUTOCOMMIT" for level in levels)
|
|
236
|
+
|
|
237
|
+
|
|
184
238
|
def _optional_int(value: Any, default: int) -> int:
|
|
185
239
|
if value is None:
|
|
186
240
|
return default
|
|
@@ -0,0 +1,83 @@
|
|
|
1
|
+
from __future__ import annotations
|
|
2
|
+
|
|
3
|
+
import re
|
|
4
|
+
from collections.abc import Callable, Mapping
|
|
5
|
+
from typing import Any
|
|
6
|
+
|
|
7
|
+
from sqlalchemy import TextClause, event, text
|
|
8
|
+
from sqlalchemy.orm import Session
|
|
9
|
+
|
|
10
|
+
SessionSettings = Callable[[], Mapping[str, str] | None]
|
|
11
|
+
"""Returns the settings to apply to the transaction about to start, or ``None`` to apply none.
|
|
12
|
+
|
|
13
|
+
loom does not interpret the keys or values. A product returns, for example, the tenant
|
|
14
|
+
and the subject of the current request, and writes its Postgres policies against
|
|
15
|
+
``current_setting(key, true)``.
|
|
16
|
+
"""
|
|
17
|
+
|
|
18
|
+
_KEY = re.compile(r"[A-Za-z_]\w*\.[A-Za-z_]\w*")
|
|
19
|
+
|
|
20
|
+
|
|
21
|
+
def settings_statement(
|
|
22
|
+
values: Mapping[str, str] | None,
|
|
23
|
+
) -> tuple[TextClause, dict[str, str]] | None:
|
|
24
|
+
"""Build the one statement that sets *values* for the current transaction.
|
|
25
|
+
|
|
26
|
+
Every key and value is bound as a parameter: the compiled SQL carries only
|
|
27
|
+
placeholders. Keys must be application-prefixed identifiers, ``prefix.name``,
|
|
28
|
+
which is what Postgres requires of a custom setting.
|
|
29
|
+
|
|
30
|
+
Args:
|
|
31
|
+
values: The settings to apply, or ``None``.
|
|
32
|
+
|
|
33
|
+
Returns:
|
|
34
|
+
The ``SELECT set_config(...)`` clause with its parameters, or ``None``
|
|
35
|
+
when there is nothing to set.
|
|
36
|
+
|
|
37
|
+
Raises:
|
|
38
|
+
ValueError: If a key is not a string of the form ``prefix.name``.
|
|
39
|
+
TypeError: If a value is not a ``str``.
|
|
40
|
+
"""
|
|
41
|
+
if not values:
|
|
42
|
+
return None
|
|
43
|
+
calls: list[str] = []
|
|
44
|
+
params: dict[str, str] = {}
|
|
45
|
+
for index, (key, value) in enumerate(values.items()):
|
|
46
|
+
if not isinstance(key, str) or _KEY.fullmatch(key) is None:
|
|
47
|
+
raise ValueError(
|
|
48
|
+
f"session setting key must be a str of the form 'prefix.name', got {key!r}"
|
|
49
|
+
)
|
|
50
|
+
if not isinstance(value, str):
|
|
51
|
+
raise TypeError(
|
|
52
|
+
f"session setting value for {key!r} must be str, got {type(value).__name__}"
|
|
53
|
+
)
|
|
54
|
+
calls.append(f"set_config(:k{index}, :v{index}, true)")
|
|
55
|
+
params[f"k{index}"] = key
|
|
56
|
+
params[f"v{index}"] = value
|
|
57
|
+
return text("SELECT " + ", ".join(calls)), params
|
|
58
|
+
|
|
59
|
+
|
|
60
|
+
def install_session_settings(session_class: type[Session], provider: SessionSettings) -> None:
|
|
61
|
+
"""Apply *provider*'s settings at the start of every outer transaction of *session_class*.
|
|
62
|
+
|
|
63
|
+
The listener runs once per outer transaction and not for savepoints. A provider
|
|
64
|
+
that raises, an invalid key, or a non-``str`` value fails the transaction before
|
|
65
|
+
its first product statement reaches the database, and invalidates its connection,
|
|
66
|
+
so the session refuses further statements until it is rolled back.
|
|
67
|
+
|
|
68
|
+
Args:
|
|
69
|
+
session_class: The synchronous ``Session`` subclass the listener is bound to.
|
|
70
|
+
provider: The settings provider called at the start of each transaction.
|
|
71
|
+
"""
|
|
72
|
+
|
|
73
|
+
@event.listens_for(session_class, "after_begin")
|
|
74
|
+
def _apply_session_settings(_session: Session, transaction: Any, connection: Any) -> None:
|
|
75
|
+
if transaction.nested:
|
|
76
|
+
return
|
|
77
|
+
try:
|
|
78
|
+
statement = settings_statement(provider())
|
|
79
|
+
if statement is not None:
|
|
80
|
+
connection.execute(*statement)
|
|
81
|
+
except BaseException:
|
|
82
|
+
connection.invalidate()
|
|
83
|
+
raise
|
|
@@ -5,7 +5,7 @@ from __future__ import annotations
|
|
|
5
5
|
import base64
|
|
6
6
|
from collections.abc import Callable, Mapping, Sequence
|
|
7
7
|
from datetime import UTC, datetime
|
|
8
|
-
from typing import Protocol, cast
|
|
8
|
+
from typing import Any, Protocol, cast
|
|
9
9
|
|
|
10
10
|
import msgspec
|
|
11
11
|
|
|
@@ -20,6 +20,7 @@ from loom.streaming.mongo._event import (
|
|
|
20
20
|
|
|
21
21
|
_MONGO_MESSAGE_TYPE = "loom.mongo.cdc"
|
|
22
22
|
_MAX_BSON_DEPTH = 64
|
|
23
|
+
_JSON_SCALARS: frozenset[type] = frozenset({bool, int, float, str})
|
|
23
24
|
|
|
24
25
|
|
|
25
26
|
class _SupportsBytes(Protocol):
|
|
@@ -32,7 +33,9 @@ def normalize_bson_value(value: object, _depth: int = 0) -> object:
|
|
|
32
33
|
"""Normalize one MongoDB/BSON runtime value into Loom-safe builtins."""
|
|
33
34
|
if _depth > _MAX_BSON_DEPTH:
|
|
34
35
|
raise ValueError(f"BSON document exceeds maximum nesting depth of {_MAX_BSON_DEPTH}.")
|
|
35
|
-
|
|
36
|
+
# Exact type, not isinstance: bson.Int64 subclasses int and msgspec refuses to encode
|
|
37
|
+
# builtin subclasses, so it must reach its normalizer below.
|
|
38
|
+
if value is None or type(value) in _JSON_SCALARS:
|
|
36
39
|
return value
|
|
37
40
|
if isinstance(value, datetime):
|
|
38
41
|
return _datetime_to_epoch_ms(value)
|
|
@@ -43,8 +46,8 @@ def normalize_bson_value(value: object, _depth: int = 0) -> object:
|
|
|
43
46
|
if isinstance(value, Sequence) and not isinstance(value, (bytes, bytearray, memoryview, str)):
|
|
44
47
|
return [normalize_bson_value(item, _depth + 1) for item in value]
|
|
45
48
|
|
|
46
|
-
|
|
47
|
-
return
|
|
49
|
+
normalizer = _BSON_NORMALIZERS.get(type(value).__name__)
|
|
50
|
+
return value if normalizer is None else normalizer(value)
|
|
48
51
|
|
|
49
52
|
|
|
50
53
|
def build_mongo_cdc_event(change: Mapping[str, object]) -> MongoCDCEvent:
|
|
@@ -160,7 +163,8 @@ def _build_wall_time_ms(
|
|
|
160
163
|
if isinstance(value, datetime):
|
|
161
164
|
return _datetime_to_epoch_ms(value)
|
|
162
165
|
if type(value).__name__ == "DatetimeMS":
|
|
163
|
-
|
|
166
|
+
# DatetimeMS.__int__() returns milliseconds since Unix epoch; safe for out-of-range years.
|
|
167
|
+
return int(cast(Any, value))
|
|
164
168
|
normalized = normalize_bson_value(value)
|
|
165
169
|
if isinstance(normalized, int):
|
|
166
170
|
return normalized
|
|
@@ -265,22 +269,15 @@ def _normalize_objectid(value: object) -> object:
|
|
|
265
269
|
return MongoObjectId(id=str(value), created_at_ms=created_at_ms)
|
|
266
270
|
|
|
267
271
|
|
|
268
|
-
|
|
269
|
-
return value
|
|
270
|
-
|
|
271
|
-
|
|
272
|
-
def _normalize_datetime_ms(value: object) -> int:
|
|
273
|
-
# DatetimeMS.__int__() returns milliseconds since Unix epoch; safe for out-of-range years.
|
|
274
|
-
return int(value) # type: ignore[call-overload, no-any-return]
|
|
275
|
-
|
|
276
|
-
|
|
277
|
-
_BSON_NORMALIZERS: dict[str, Callable[[object], object]] = {
|
|
272
|
+
_BSON_NORMALIZERS: dict[str, Callable[[Any], object]] = {
|
|
278
273
|
"ObjectId": _normalize_objectid,
|
|
279
274
|
"Timestamp": _normalize_timestamp_mapping,
|
|
280
275
|
"Decimal128": _normalize_decimal128,
|
|
281
276
|
"Binary": _normalize_binary,
|
|
282
277
|
"DBRef": _normalize_dbref,
|
|
283
|
-
"DatetimeMS":
|
|
278
|
+
"DatetimeMS": int,
|
|
279
|
+
# NumberLong fields and the txnNumber of every multi-document transaction event.
|
|
280
|
+
"Int64": int,
|
|
284
281
|
}
|
|
285
282
|
|
|
286
283
|
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{loom_kernel-2.10.0 → loom_kernel-2.11.1}/src/loom/ai/declarative/schemas/agent-spec-v1.schema.json
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{loom_kernel-2.10.0 → loom_kernel-2.11.1}/src/loom/ai/engines/pydantic_ai/extras/__init__.py
RENAMED
|
File without changes
|
|
File without changes
|
{loom_kernel-2.10.0 → loom_kernel-2.11.1}/src/loom/ai/engines/pydantic_ai/extras/handlebars.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{loom_kernel-2.10.0 → loom_kernel-2.11.1}/src/loom/ai/engines/pydantic_ai/providers/__init__.py
RENAMED
|
File without changes
|
{loom_kernel-2.10.0 → loom_kernel-2.11.1}/src/loom/ai/engines/pydantic_ai/providers/_shared.py
RENAMED
|
File without changes
|
{loom_kernel-2.10.0 → loom_kernel-2.11.1}/src/loom/ai/engines/pydantic_ai/providers/anthropic.py
RENAMED
|
File without changes
|
{loom_kernel-2.10.0 → loom_kernel-2.11.1}/src/loom/ai/engines/pydantic_ai/providers/bedrock.py
RENAMED
|
File without changes
|
{loom_kernel-2.10.0 → loom_kernel-2.11.1}/src/loom/ai/engines/pydantic_ai/providers/gateway.py
RENAMED
|
File without changes
|
{loom_kernel-2.10.0 → loom_kernel-2.11.1}/src/loom/ai/engines/pydantic_ai/providers/openai.py
RENAMED
|
File without changes
|
{loom_kernel-2.10.0 → loom_kernel-2.11.1}/src/loom/ai/engines/pydantic_ai/providers/typesafe.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|