loom-kernel 2.17.2__tar.gz → 2.18.0__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.17.2 → loom_kernel-2.18.0}/CHANGELOG.md +21 -0
- {loom_kernel-2.17.2 → loom_kernel-2.18.0}/PKG-INFO +1 -1
- {loom_kernel-2.17.2 → loom_kernel-2.18.0}/src/loom/core/errors/errors.py +28 -1
- {loom_kernel-2.17.2 → loom_kernel-2.18.0}/src/loom/etl/backends/polars/_writer.py +11 -3
- {loom_kernel-2.17.2 → loom_kernel-2.18.0}/src/loom/etl/maintenance/_builder.py +10 -3
- {loom_kernel-2.17.2 → loom_kernel-2.18.0}/src/loom/etl/maintenance/_ops.py +4 -0
- {loom_kernel-2.17.2 → loom_kernel-2.18.0}/src/loom/etl/maintenance/_runner.py +5 -1
- {loom_kernel-2.17.2 → loom_kernel-2.18.0}/src/loom/etl/maintenance/backends/_delta_rs.py +2 -1
- {loom_kernel-2.17.2 → loom_kernel-2.18.0}/src/loom/etl/storage/_config.py +4 -0
- {loom_kernel-2.17.2 → loom_kernel-2.18.0}/src/loom/rest/errors.py +11 -1
- {loom_kernel-2.17.2 → loom_kernel-2.18.0}/.gitignore +0 -0
- {loom_kernel-2.17.2 → loom_kernel-2.18.0}/LICENSE +0 -0
- {loom_kernel-2.17.2 → loom_kernel-2.18.0}/README.md +0 -0
- {loom_kernel-2.17.2 → loom_kernel-2.18.0}/pyproject.toml +0 -0
- {loom_kernel-2.17.2 → loom_kernel-2.18.0}/src/loom/__init__.py +0 -0
- {loom_kernel-2.17.2 → loom_kernel-2.18.0}/src/loom/ai/__init__.py +0 -0
- {loom_kernel-2.17.2 → loom_kernel-2.18.0}/src/loom/ai/_concurrency.py +0 -0
- {loom_kernel-2.17.2 → loom_kernel-2.18.0}/src/loom/ai/_filters.py +0 -0
- {loom_kernel-2.17.2 → loom_kernel-2.18.0}/src/loom/ai/_paths.py +0 -0
- {loom_kernel-2.17.2 → loom_kernel-2.18.0}/src/loom/ai/_roles.py +0 -0
- {loom_kernel-2.17.2 → loom_kernel-2.18.0}/src/loom/ai/_startup.py +0 -0
- {loom_kernel-2.17.2 → loom_kernel-2.18.0}/src/loom/ai/_transport.py +0 -0
- {loom_kernel-2.17.2 → loom_kernel-2.18.0}/src/loom/ai/_usecase.py +0 -0
- {loom_kernel-2.17.2 → loom_kernel-2.18.0}/src/loom/ai/a2a/__init__.py +0 -0
- {loom_kernel-2.17.2 → loom_kernel-2.18.0}/src/loom/ai/a2a/_binding.py +0 -0
- {loom_kernel-2.17.2 → loom_kernel-2.18.0}/src/loom/ai/a2a/_handlers.py +0 -0
- {loom_kernel-2.17.2 → loom_kernel-2.18.0}/src/loom/ai/a2a/_rpc.py +0 -0
- {loom_kernel-2.17.2 → loom_kernel-2.18.0}/src/loom/ai/a2a/card.py +0 -0
- {loom_kernel-2.17.2 → loom_kernel-2.18.0}/src/loom/ai/a2a/events.py +0 -0
- {loom_kernel-2.17.2 → loom_kernel-2.18.0}/src/loom/ai/a2a/server.py +0 -0
- {loom_kernel-2.17.2 → loom_kernel-2.18.0}/src/loom/ai/abc.py +0 -0
- {loom_kernel-2.17.2 → loom_kernel-2.18.0}/src/loom/ai/bootstrap.py +0 -0
- {loom_kernel-2.17.2 → loom_kernel-2.18.0}/src/loom/ai/compiler/__init__.py +0 -0
- {loom_kernel-2.17.2 → loom_kernel-2.18.0}/src/loom/ai/compiler/_compiler.py +0 -0
- {loom_kernel-2.17.2 → loom_kernel-2.18.0}/src/loom/ai/compiler/_fingerprint.py +0 -0
- {loom_kernel-2.17.2 → loom_kernel-2.18.0}/src/loom/ai/compiler/_plan.py +0 -0
- {loom_kernel-2.17.2 → loom_kernel-2.18.0}/src/loom/ai/compiler/phases/__init__.py +0 -0
- {loom_kernel-2.17.2 → loom_kernel-2.18.0}/src/loom/ai/compiler/phases/_capabilities.py +0 -0
- {loom_kernel-2.17.2 → loom_kernel-2.18.0}/src/loom/ai/compiler/phases/_conversation.py +0 -0
- {loom_kernel-2.17.2 → loom_kernel-2.18.0}/src/loom/ai/compiler/phases/_feedable.py +0 -0
- {loom_kernel-2.17.2 → loom_kernel-2.18.0}/src/loom/ai/compiler/phases/_hook.py +0 -0
- {loom_kernel-2.17.2 → loom_kernel-2.18.0}/src/loom/ai/compiler/phases/_instructions.py +0 -0
- {loom_kernel-2.17.2 → loom_kernel-2.18.0}/src/loom/ai/compiler/phases/_limits.py +0 -0
- {loom_kernel-2.17.2 → loom_kernel-2.18.0}/src/loom/ai/compiler/phases/_model_role.py +0 -0
- {loom_kernel-2.17.2 → loom_kernel-2.18.0}/src/loom/ai/compiler/phases/_output.py +0 -0
- {loom_kernel-2.17.2 → loom_kernel-2.18.0}/src/loom/ai/compiler/phases/_state.py +0 -0
- {loom_kernel-2.17.2 → loom_kernel-2.18.0}/src/loom/ai/config.py +0 -0
- {loom_kernel-2.17.2 → loom_kernel-2.18.0}/src/loom/ai/declarative/__init__.py +0 -0
- {loom_kernel-2.17.2 → loom_kernel-2.18.0}/src/loom/ai/declarative/_envelope.py +0 -0
- {loom_kernel-2.17.2 → loom_kernel-2.18.0}/src/loom/ai/declarative/_schema.py +0 -0
- {loom_kernel-2.17.2 → loom_kernel-2.18.0}/src/loom/ai/declarative/_v1.py +0 -0
- {loom_kernel-2.17.2 → loom_kernel-2.18.0}/src/loom/ai/declarative/schemas/agent-spec-v1.schema.json +0 -0
- {loom_kernel-2.17.2 → loom_kernel-2.18.0}/src/loom/ai/describe.py +0 -0
- {loom_kernel-2.17.2 → loom_kernel-2.18.0}/src/loom/ai/engines/__init__.py +0 -0
- {loom_kernel-2.17.2 → loom_kernel-2.18.0}/src/loom/ai/engines/pydantic_ai/__init__.py +0 -0
- {loom_kernel-2.17.2 → loom_kernel-2.18.0}/src/loom/ai/engines/pydantic_ai/_a2a.py +0 -0
- {loom_kernel-2.17.2 → loom_kernel-2.18.0}/src/loom/ai/engines/pydantic_ai/_capabilities.py +0 -0
- {loom_kernel-2.17.2 → loom_kernel-2.18.0}/src/loom/ai/engines/pydantic_ai/_engine.py +0 -0
- {loom_kernel-2.17.2 → loom_kernel-2.18.0}/src/loom/ai/engines/pydantic_ai/_errors.py +0 -0
- {loom_kernel-2.17.2 → loom_kernel-2.18.0}/src/loom/ai/engines/pydantic_ai/_escape.py +0 -0
- {loom_kernel-2.17.2 → loom_kernel-2.18.0}/src/loom/ai/engines/pydantic_ai/_events.py +0 -0
- {loom_kernel-2.17.2 → loom_kernel-2.18.0}/src/loom/ai/engines/pydantic_ai/_guards.py +0 -0
- {loom_kernel-2.17.2 → loom_kernel-2.18.0}/src/loom/ai/engines/pydantic_ai/_history.py +0 -0
- {loom_kernel-2.17.2 → loom_kernel-2.18.0}/src/loom/ai/engines/pydantic_ai/_instructions.py +0 -0
- {loom_kernel-2.17.2 → loom_kernel-2.18.0}/src/loom/ai/engines/pydantic_ai/_limits.py +0 -0
- {loom_kernel-2.17.2 → loom_kernel-2.18.0}/src/loom/ai/engines/pydantic_ai/_mcp.py +0 -0
- {loom_kernel-2.17.2 → loom_kernel-2.18.0}/src/loom/ai/engines/pydantic_ai/_models.py +0 -0
- {loom_kernel-2.17.2 → loom_kernel-2.18.0}/src/loom/ai/engines/pydantic_ai/_native.py +0 -0
- {loom_kernel-2.17.2 → loom_kernel-2.18.0}/src/loom/ai/engines/pydantic_ai/_output.py +0 -0
- {loom_kernel-2.17.2 → loom_kernel-2.18.0}/src/loom/ai/engines/pydantic_ai/_returns.py +0 -0
- {loom_kernel-2.17.2 → loom_kernel-2.18.0}/src/loom/ai/engines/pydantic_ai/_schemas.py +0 -0
- {loom_kernel-2.17.2 → loom_kernel-2.18.0}/src/loom/ai/engines/pydantic_ai/_spec.py +0 -0
- {loom_kernel-2.17.2 → loom_kernel-2.18.0}/src/loom/ai/engines/pydantic_ai/extras/__init__.py +0 -0
- {loom_kernel-2.17.2 → loom_kernel-2.18.0}/src/loom/ai/engines/pydantic_ai/extras/a2a.py +0 -0
- {loom_kernel-2.17.2 → loom_kernel-2.18.0}/src/loom/ai/engines/pydantic_ai/extras/handlebars.py +0 -0
- {loom_kernel-2.17.2 → loom_kernel-2.18.0}/src/loom/ai/engines/pydantic_ai/extras/mcp.py +0 -0
- {loom_kernel-2.17.2 → loom_kernel-2.18.0}/src/loom/ai/engines/pydantic_ai/extras/skills.py +0 -0
- {loom_kernel-2.17.2 → loom_kernel-2.18.0}/src/loom/ai/engines/pydantic_ai/provider.py +0 -0
- {loom_kernel-2.17.2 → loom_kernel-2.18.0}/src/loom/ai/engines/pydantic_ai/providers/__init__.py +0 -0
- {loom_kernel-2.17.2 → loom_kernel-2.18.0}/src/loom/ai/engines/pydantic_ai/providers/_shared.py +0 -0
- {loom_kernel-2.17.2 → loom_kernel-2.18.0}/src/loom/ai/engines/pydantic_ai/providers/anthropic.py +0 -0
- {loom_kernel-2.17.2 → loom_kernel-2.18.0}/src/loom/ai/engines/pydantic_ai/providers/bedrock.py +0 -0
- {loom_kernel-2.17.2 → loom_kernel-2.18.0}/src/loom/ai/engines/pydantic_ai/providers/gateway.py +0 -0
- {loom_kernel-2.17.2 → loom_kernel-2.18.0}/src/loom/ai/engines/pydantic_ai/providers/openai.py +0 -0
- {loom_kernel-2.17.2 → loom_kernel-2.18.0}/src/loom/ai/engines/pydantic_ai/providers/typesafe.py +0 -0
- {loom_kernel-2.17.2 → loom_kernel-2.18.0}/src/loom/ai/errors.py +0 -0
- {loom_kernel-2.17.2 → loom_kernel-2.18.0}/src/loom/ai/etl/__init__.py +0 -0
- {loom_kernel-2.17.2 → loom_kernel-2.18.0}/src/loom/ai/etl/_batch.py +0 -0
- {loom_kernel-2.17.2 → loom_kernel-2.18.0}/src/loom/ai/etl/_columns.py +0 -0
- {loom_kernel-2.17.2 → loom_kernel-2.18.0}/src/loom/ai/etl/_frames.py +0 -0
- {loom_kernel-2.17.2 → loom_kernel-2.18.0}/src/loom/ai/etl/_ledger.py +0 -0
- {loom_kernel-2.17.2 → loom_kernel-2.18.0}/src/loom/ai/etl/_runner.py +0 -0
- {loom_kernel-2.17.2 → loom_kernel-2.18.0}/src/loom/ai/etl/_validation.py +0 -0
- {loom_kernel-2.17.2 → loom_kernel-2.18.0}/src/loom/ai/fastapi/__init__.py +0 -0
- {loom_kernel-2.17.2 → loom_kernel-2.18.0}/src/loom/ai/fastapi/endpoints.py +0 -0
- {loom_kernel-2.17.2 → loom_kernel-2.18.0}/src/loom/ai/fastapi/response.py +0 -0
- {loom_kernel-2.17.2 → loom_kernel-2.18.0}/src/loom/ai/fastapi/streaming.py +0 -0
- {loom_kernel-2.17.2 → loom_kernel-2.18.0}/src/loom/ai/inference.py +0 -0
- {loom_kernel-2.17.2 → loom_kernel-2.18.0}/src/loom/ai/pricing.py +0 -0
- {loom_kernel-2.17.2 → loom_kernel-2.18.0}/src/loom/ai/registry.py +0 -0
- {loom_kernel-2.17.2 → loom_kernel-2.18.0}/src/loom/ai/remote_auth.py +0 -0
- {loom_kernel-2.17.2 → loom_kernel-2.18.0}/src/loom/ai/runtime/__init__.py +0 -0
- {loom_kernel-2.17.2 → loom_kernel-2.18.0}/src/loom/ai/runtime/_bounded.py +0 -0
- {loom_kernel-2.17.2 → loom_kernel-2.18.0}/src/loom/ai/runtime/_chain.py +0 -0
- {loom_kernel-2.17.2 → loom_kernel-2.18.0}/src/loom/ai/runtime/_conversation.py +0 -0
- {loom_kernel-2.17.2 → loom_kernel-2.18.0}/src/loom/ai/runtime/_grants.py +0 -0
- {loom_kernel-2.17.2 → loom_kernel-2.18.0}/src/loom/ai/runtime/_handle.py +0 -0
- {loom_kernel-2.17.2 → loom_kernel-2.18.0}/src/loom/ai/runtime/_health.py +0 -0
- {loom_kernel-2.17.2 → loom_kernel-2.18.0}/src/loom/ai/runtime/_hooks.py +0 -0
- {loom_kernel-2.17.2 → loom_kernel-2.18.0}/src/loom/ai/runtime/_lifecycle.py +0 -0
- {loom_kernel-2.17.2 → loom_kernel-2.18.0}/src/loom/ai/runtime/_limits.py +0 -0
- {loom_kernel-2.17.2 → loom_kernel-2.18.0}/src/loom/ai/runtime/_mcp.py +0 -0
- {loom_kernel-2.17.2 → loom_kernel-2.18.0}/src/loom/ai/validate/__init__.py +0 -0
- {loom_kernel-2.17.2 → loom_kernel-2.18.0}/src/loom/ai/validate/__main__.py +0 -0
- {loom_kernel-2.17.2 → loom_kernel-2.18.0}/src/loom/celery/__init__.py +0 -0
- {loom_kernel-2.17.2 → loom_kernel-2.18.0}/src/loom/celery/auto.py +0 -0
- {loom_kernel-2.17.2 → loom_kernel-2.18.0}/src/loom/celery/bootstrap.py +0 -0
- {loom_kernel-2.17.2 → loom_kernel-2.18.0}/src/loom/celery/config.py +0 -0
- {loom_kernel-2.17.2 → loom_kernel-2.18.0}/src/loom/celery/constants.py +0 -0
- {loom_kernel-2.17.2 → loom_kernel-2.18.0}/src/loom/celery/runner.py +0 -0
- {loom_kernel-2.17.2 → loom_kernel-2.18.0}/src/loom/celery/service.py +0 -0
- {loom_kernel-2.17.2 → loom_kernel-2.18.0}/src/loom/cli/__init__.py +0 -0
- {loom_kernel-2.17.2 → loom_kernel-2.18.0}/src/loom/cli/app.py +0 -0
- {loom_kernel-2.17.2 → loom_kernel-2.18.0}/src/loom/cli/schema.py +0 -0
- {loom_kernel-2.17.2 → loom_kernel-2.18.0}/src/loom/core/async_bridge.py +0 -0
- {loom_kernel-2.17.2 → loom_kernel-2.18.0}/src/loom/core/authz/__init__.py +0 -0
- {loom_kernel-2.17.2 → loom_kernel-2.18.0}/src/loom/core/authz/_decide.py +0 -0
- {loom_kernel-2.17.2 → loom_kernel-2.18.0}/src/loom/core/authz/_grants.py +0 -0
- {loom_kernel-2.17.2 → loom_kernel-2.18.0}/src/loom/core/authz/_roles.py +0 -0
- {loom_kernel-2.17.2 → loom_kernel-2.18.0}/src/loom/core/authz/_scope.py +0 -0
- {loom_kernel-2.17.2 → loom_kernel-2.18.0}/src/loom/core/authz/elevation.py +0 -0
- {loom_kernel-2.17.2 → loom_kernel-2.18.0}/src/loom/core/authz/product.py +0 -0
- {loom_kernel-2.17.2 → loom_kernel-2.18.0}/src/loom/core/backend/__init__.py +0 -0
- {loom_kernel-2.17.2 → loom_kernel-2.18.0}/src/loom/core/backend/core_model.py +0 -0
- {loom_kernel-2.17.2 → loom_kernel-2.18.0}/src/loom/core/backend/protocol.py +0 -0
- {loom_kernel-2.17.2 → loom_kernel-2.18.0}/src/loom/core/backend/scoped_ddl.py +0 -0
- {loom_kernel-2.17.2 → loom_kernel-2.18.0}/src/loom/core/backend/sqlalchemy.py +0 -0
- {loom_kernel-2.17.2 → loom_kernel-2.18.0}/src/loom/core/bootstrap/__init__.py +0 -0
- {loom_kernel-2.17.2 → loom_kernel-2.18.0}/src/loom/core/bootstrap/bootstrap.py +0 -0
- {loom_kernel-2.17.2 → loom_kernel-2.18.0}/src/loom/core/bootstrap/kernel.py +0 -0
- {loom_kernel-2.17.2 → loom_kernel-2.18.0}/src/loom/core/cache/__init__.py +0 -0
- {loom_kernel-2.17.2 → loom_kernel-2.18.0}/src/loom/core/cache/_batching.py +0 -0
- {loom_kernel-2.17.2 → loom_kernel-2.18.0}/src/loom/core/cache/_single_flight.py +0 -0
- {loom_kernel-2.17.2 → loom_kernel-2.18.0}/src/loom/core/cache/abc/__init__.py +0 -0
- {loom_kernel-2.17.2 → loom_kernel-2.18.0}/src/loom/core/cache/abc/backend.py +0 -0
- {loom_kernel-2.17.2 → loom_kernel-2.18.0}/src/loom/core/cache/abc/config.py +0 -0
- {loom_kernel-2.17.2 → loom_kernel-2.18.0}/src/loom/core/cache/abc/dependency.py +0 -0
- {loom_kernel-2.17.2 → loom_kernel-2.18.0}/src/loom/core/cache/calls.py +0 -0
- {loom_kernel-2.17.2 → loom_kernel-2.18.0}/src/loom/core/cache/codec.py +0 -0
- {loom_kernel-2.17.2 → loom_kernel-2.18.0}/src/loom/core/cache/decorators.py +0 -0
- {loom_kernel-2.17.2 → loom_kernel-2.18.0}/src/loom/core/cache/dependency.py +0 -0
- {loom_kernel-2.17.2 → loom_kernel-2.18.0}/src/loom/core/cache/errors.py +0 -0
- {loom_kernel-2.17.2 → loom_kernel-2.18.0}/src/loom/core/cache/gateway.py +0 -0
- {loom_kernel-2.17.2 → loom_kernel-2.18.0}/src/loom/core/cache/keys.py +0 -0
- {loom_kernel-2.17.2 → loom_kernel-2.18.0}/src/loom/core/cache/memory.py +0 -0
- {loom_kernel-2.17.2 → loom_kernel-2.18.0}/src/loom/core/cache/repository.py +0 -0
- {loom_kernel-2.17.2 → loom_kernel-2.18.0}/src/loom/core/cache/result_codec.py +0 -0
- {loom_kernel-2.17.2 → loom_kernel-2.18.0}/src/loom/core/cache/serializer.py +0 -0
- {loom_kernel-2.17.2 → loom_kernel-2.18.0}/src/loom/core/cache/wiring.py +0 -0
- {loom_kernel-2.17.2 → loom_kernel-2.18.0}/src/loom/core/command/__init__.py +0 -0
- {loom_kernel-2.17.2 → loom_kernel-2.18.0}/src/loom/core/command/adapter.py +0 -0
- {loom_kernel-2.17.2 → loom_kernel-2.18.0}/src/loom/core/command/base.py +0 -0
- {loom_kernel-2.17.2 → loom_kernel-2.18.0}/src/loom/core/command/field.py +0 -0
- {loom_kernel-2.17.2 → loom_kernel-2.18.0}/src/loom/core/command/introspection.py +0 -0
- {loom_kernel-2.17.2 → loom_kernel-2.18.0}/src/loom/core/compiler.py +0 -0
- {loom_kernel-2.17.2 → loom_kernel-2.18.0}/src/loom/core/config/__init__.py +0 -0
- {loom_kernel-2.17.2 → loom_kernel-2.18.0}/src/loom/core/config/_boto3.py +0 -0
- {loom_kernel-2.17.2 → loom_kernel-2.18.0}/src/loom/core/config/_includes.py +0 -0
- {loom_kernel-2.17.2 → loom_kernel-2.18.0}/src/loom/core/config/_resolver_utils.py +0 -0
- {loom_kernel-2.17.2 → loom_kernel-2.18.0}/src/loom/core/config/binder.py +0 -0
- {loom_kernel-2.17.2 → loom_kernel-2.18.0}/src/loom/core/config/configurable.py +0 -0
- {loom_kernel-2.17.2 → loom_kernel-2.18.0}/src/loom/core/config/context.py +0 -0
- {loom_kernel-2.17.2 → loom_kernel-2.18.0}/src/loom/core/config/errors.py +0 -0
- {loom_kernel-2.17.2 → loom_kernel-2.18.0}/src/loom/core/config/keys.py +0 -0
- {loom_kernel-2.17.2 → loom_kernel-2.18.0}/src/loom/core/config/loader.py +0 -0
- {loom_kernel-2.17.2 → loom_kernel-2.18.0}/src/loom/core/config/model.py +0 -0
- {loom_kernel-2.17.2 → loom_kernel-2.18.0}/src/loom/core/config/observability.py +0 -0
- {loom_kernel-2.17.2 → loom_kernel-2.18.0}/src/loom/core/config/resolver.py +0 -0
- {loom_kernel-2.17.2 → loom_kernel-2.18.0}/src/loom/core/config/secrets.py +0 -0
- {loom_kernel-2.17.2 → loom_kernel-2.18.0}/src/loom/core/config/ssm.py +0 -0
- {loom_kernel-2.17.2 → loom_kernel-2.18.0}/src/loom/core/contracts/__init__.py +0 -0
- {loom_kernel-2.17.2 → loom_kernel-2.18.0}/src/loom/core/contracts/manifest.py +0 -0
- {loom_kernel-2.17.2 → loom_kernel-2.18.0}/src/loom/core/di/__init__.py +0 -0
- {loom_kernel-2.17.2 → loom_kernel-2.18.0}/src/loom/core/di/container.py +0 -0
- {loom_kernel-2.17.2 → loom_kernel-2.18.0}/src/loom/core/di/scope.py +0 -0
- {loom_kernel-2.17.2 → loom_kernel-2.18.0}/src/loom/core/discovery/__init__.py +0 -0
- {loom_kernel-2.17.2 → loom_kernel-2.18.0}/src/loom/core/discovery/_utils.py +0 -0
- {loom_kernel-2.17.2 → loom_kernel-2.18.0}/src/loom/core/discovery/base.py +0 -0
- {loom_kernel-2.17.2 → loom_kernel-2.18.0}/src/loom/core/discovery/interfaces.py +0 -0
- {loom_kernel-2.17.2 → loom_kernel-2.18.0}/src/loom/core/discovery/manifest.py +0 -0
- {loom_kernel-2.17.2 → loom_kernel-2.18.0}/src/loom/core/discovery/modules.py +0 -0
- {loom_kernel-2.17.2 → loom_kernel-2.18.0}/src/loom/core/engine/__init__.py +0 -0
- {loom_kernel-2.17.2 → loom_kernel-2.18.0}/src/loom/core/engine/compilable.py +0 -0
- {loom_kernel-2.17.2 → loom_kernel-2.18.0}/src/loom/core/engine/compiler.py +0 -0
- {loom_kernel-2.17.2 → loom_kernel-2.18.0}/src/loom/core/engine/events.py +0 -0
- {loom_kernel-2.17.2 → loom_kernel-2.18.0}/src/loom/core/engine/executor.py +0 -0
- {loom_kernel-2.17.2 → loom_kernel-2.18.0}/src/loom/core/engine/metrics.py +0 -0
- {loom_kernel-2.17.2 → loom_kernel-2.18.0}/src/loom/core/engine/plan.py +0 -0
- {loom_kernel-2.17.2 → loom_kernel-2.18.0}/src/loom/core/engine/post_commit.py +0 -0
- {loom_kernel-2.17.2 → loom_kernel-2.18.0}/src/loom/core/errors/__init__.py +0 -0
- {loom_kernel-2.17.2 → loom_kernel-2.18.0}/src/loom/core/errors/codes.py +0 -0
- {loom_kernel-2.17.2 → loom_kernel-2.18.0}/src/loom/core/expr/__init__.py +0 -0
- {loom_kernel-2.17.2 → loom_kernel-2.18.0}/src/loom/core/expr/eval.py +0 -0
- {loom_kernel-2.17.2 → loom_kernel-2.18.0}/src/loom/core/expr/nodes.py +0 -0
- {loom_kernel-2.17.2 → loom_kernel-2.18.0}/src/loom/core/expr/refs.py +0 -0
- {loom_kernel-2.17.2 → loom_kernel-2.18.0}/src/loom/core/identity/__init__.py +0 -0
- {loom_kernel-2.17.2 → loom_kernel-2.18.0}/src/loom/core/identity/context.py +0 -0
- {loom_kernel-2.17.2 → loom_kernel-2.18.0}/src/loom/core/identity/identity.py +0 -0
- {loom_kernel-2.17.2 → loom_kernel-2.18.0}/src/loom/core/identity/issuer.py +0 -0
- {loom_kernel-2.17.2 → loom_kernel-2.18.0}/src/loom/core/identity/wire.py +0 -0
- {loom_kernel-2.17.2 → loom_kernel-2.18.0}/src/loom/core/introspection/__init__.py +0 -0
- {loom_kernel-2.17.2 → loom_kernel-2.18.0}/src/loom/core/introspection/base.py +0 -0
- {loom_kernel-2.17.2 → loom_kernel-2.18.0}/src/loom/core/introspection/describe.py +0 -0
- {loom_kernel-2.17.2 → loom_kernel-2.18.0}/src/loom/core/job/__init__.py +0 -0
- {loom_kernel-2.17.2 → loom_kernel-2.18.0}/src/loom/core/job/callback.py +0 -0
- {loom_kernel-2.17.2 → loom_kernel-2.18.0}/src/loom/core/job/context.py +0 -0
- {loom_kernel-2.17.2 → loom_kernel-2.18.0}/src/loom/core/job/handle.py +0 -0
- {loom_kernel-2.17.2 → loom_kernel-2.18.0}/src/loom/core/job/job.py +0 -0
- {loom_kernel-2.17.2 → loom_kernel-2.18.0}/src/loom/core/job/service.py +0 -0
- {loom_kernel-2.17.2 → loom_kernel-2.18.0}/src/loom/core/locator.py +0 -0
- {loom_kernel-2.17.2 → loom_kernel-2.18.0}/src/loom/core/logger/__init__.py +0 -0
- {loom_kernel-2.17.2 → loom_kernel-2.18.0}/src/loom/core/logger/abc.py +0 -0
- {loom_kernel-2.17.2 → loom_kernel-2.18.0}/src/loom/core/logger/config.py +0 -0
- {loom_kernel-2.17.2 → loom_kernel-2.18.0}/src/loom/core/logger/registry.py +0 -0
- {loom_kernel-2.17.2 → loom_kernel-2.18.0}/src/loom/core/logger/structlogger.py +0 -0
- {loom_kernel-2.17.2 → loom_kernel-2.18.0}/src/loom/core/model/__init__.py +0 -0
- {loom_kernel-2.17.2 → loom_kernel-2.18.0}/src/loom/core/model/_loom_type.py +0 -0
- {loom_kernel-2.17.2 → loom_kernel-2.18.0}/src/loom/core/model/base.py +0 -0
- {loom_kernel-2.17.2 → loom_kernel-2.18.0}/src/loom/core/model/convert.py +0 -0
- {loom_kernel-2.17.2 → loom_kernel-2.18.0}/src/loom/core/model/enums.py +0 -0
- {loom_kernel-2.17.2 → loom_kernel-2.18.0}/src/loom/core/model/field.py +0 -0
- {loom_kernel-2.17.2 → loom_kernel-2.18.0}/src/loom/core/model/introspection.py +0 -0
- {loom_kernel-2.17.2 → loom_kernel-2.18.0}/src/loom/core/model/partition.py +0 -0
- {loom_kernel-2.17.2 → loom_kernel-2.18.0}/src/loom/core/model/privilege.py +0 -0
- {loom_kernel-2.17.2 → loom_kernel-2.18.0}/src/loom/core/model/projection.py +0 -0
- {loom_kernel-2.17.2 → loom_kernel-2.18.0}/src/loom/core/model/relation.py +0 -0
- {loom_kernel-2.17.2 → loom_kernel-2.18.0}/src/loom/core/model/scoped.py +0 -0
- {loom_kernel-2.17.2 → loom_kernel-2.18.0}/src/loom/core/model/struct.py +0 -0
- {loom_kernel-2.17.2 → loom_kernel-2.18.0}/src/loom/core/model/timestamped.py +0 -0
- {loom_kernel-2.17.2 → loom_kernel-2.18.0}/src/loom/core/model/types.py +0 -0
- {loom_kernel-2.17.2 → loom_kernel-2.18.0}/src/loom/core/model/types_postgres.py +0 -0
- {loom_kernel-2.17.2 → loom_kernel-2.18.0}/src/loom/core/observability/__init__.py +0 -0
- {loom_kernel-2.17.2 → loom_kernel-2.18.0}/src/loom/core/observability/config.py +0 -0
- {loom_kernel-2.17.2 → loom_kernel-2.18.0}/src/loom/core/observability/event.py +0 -0
- {loom_kernel-2.17.2 → loom_kernel-2.18.0}/src/loom/core/observability/observer/__init__.py +0 -0
- {loom_kernel-2.17.2 → loom_kernel-2.18.0}/src/loom/core/observability/observer/noop.py +0 -0
- {loom_kernel-2.17.2 → loom_kernel-2.18.0}/src/loom/core/observability/observer/otel.py +0 -0
- {loom_kernel-2.17.2 → loom_kernel-2.18.0}/src/loom/core/observability/observer/structlog.py +0 -0
- {loom_kernel-2.17.2 → loom_kernel-2.18.0}/src/loom/core/observability/otel_ids.py +0 -0
- {loom_kernel-2.17.2 → loom_kernel-2.18.0}/src/loom/core/observability/protocol.py +0 -0
- {loom_kernel-2.17.2 → loom_kernel-2.18.0}/src/loom/core/observability/runtime.py +0 -0
- {loom_kernel-2.17.2 → loom_kernel-2.18.0}/src/loom/core/observability/span.py +0 -0
- {loom_kernel-2.17.2 → loom_kernel-2.18.0}/src/loom/core/observability/topology.py +0 -0
- {loom_kernel-2.17.2 → loom_kernel-2.18.0}/src/loom/core/persistence/__init__.py +0 -0
- {loom_kernel-2.17.2 → loom_kernel-2.18.0}/src/loom/core/persistence/abc.py +0 -0
- {loom_kernel-2.17.2 → loom_kernel-2.18.0}/src/loom/core/persistence/none.py +0 -0
- {loom_kernel-2.17.2 → loom_kernel-2.18.0}/src/loom/core/persistence/registry.py +0 -0
- {loom_kernel-2.17.2 → loom_kernel-2.18.0}/src/loom/core/plugins/__init__.py +0 -0
- {loom_kernel-2.17.2 → loom_kernel-2.18.0}/src/loom/core/plugins/entrypoints.py +0 -0
- {loom_kernel-2.17.2 → loom_kernel-2.18.0}/src/loom/core/plugins/optional.py +0 -0
- {loom_kernel-2.17.2 → loom_kernel-2.18.0}/src/loom/core/projection/__init__.py +0 -0
- {loom_kernel-2.17.2 → loom_kernel-2.18.0}/src/loom/core/projection/loaders.py +0 -0
- {loom_kernel-2.17.2 → loom_kernel-2.18.0}/src/loom/core/projection/runtime.py +0 -0
- {loom_kernel-2.17.2 → loom_kernel-2.18.0}/src/loom/core/repository/__init__.py +0 -0
- {loom_kernel-2.17.2 → loom_kernel-2.18.0}/src/loom/core/repository/abc/__init__.py +0 -0
- {loom_kernel-2.17.2 → loom_kernel-2.18.0}/src/loom/core/repository/abc/cursor.py +0 -0
- {loom_kernel-2.17.2 → loom_kernel-2.18.0}/src/loom/core/repository/abc/errors.py +0 -0
- {loom_kernel-2.17.2 → loom_kernel-2.18.0}/src/loom/core/repository/abc/query.py +0 -0
- {loom_kernel-2.17.2 → loom_kernel-2.18.0}/src/loom/core/repository/abc/query_compiler.py +0 -0
- {loom_kernel-2.17.2 → loom_kernel-2.18.0}/src/loom/core/repository/abc/repo_for.py +0 -0
- {loom_kernel-2.17.2 → loom_kernel-2.18.0}/src/loom/core/repository/abc/repository.py +0 -0
- {loom_kernel-2.17.2 → loom_kernel-2.18.0}/src/loom/core/repository/abc/session_scope.py +0 -0
- {loom_kernel-2.17.2 → loom_kernel-2.18.0}/src/loom/core/repository/dynamodb/__init__.py +0 -0
- {loom_kernel-2.17.2 → loom_kernel-2.18.0}/src/loom/core/repository/dynamodb/backend.py +0 -0
- {loom_kernel-2.17.2 → loom_kernel-2.18.0}/src/loom/core/repository/dynamodb/registry.py +0 -0
- {loom_kernel-2.17.2 → loom_kernel-2.18.0}/src/loom/core/repository/dynamodb/repository.py +0 -0
- {loom_kernel-2.17.2 → loom_kernel-2.18.0}/src/loom/core/repository/dynamodb/uow.py +0 -0
- {loom_kernel-2.17.2 → loom_kernel-2.18.0}/src/loom/core/repository/mongo/__init__.py +0 -0
- {loom_kernel-2.17.2 → loom_kernel-2.18.0}/src/loom/core/repository/mongo/backend.py +0 -0
- {loom_kernel-2.17.2 → loom_kernel-2.18.0}/src/loom/core/repository/mongo/ids.py +0 -0
- {loom_kernel-2.17.2 → loom_kernel-2.18.0}/src/loom/core/repository/mongo/query_compiler.py +0 -0
- {loom_kernel-2.17.2 → loom_kernel-2.18.0}/src/loom/core/repository/mongo/registry.py +0 -0
- {loom_kernel-2.17.2 → loom_kernel-2.18.0}/src/loom/core/repository/mongo/repository.py +0 -0
- {loom_kernel-2.17.2 → loom_kernel-2.18.0}/src/loom/core/repository/mongo/uow.py +0 -0
- {loom_kernel-2.17.2 → loom_kernel-2.18.0}/src/loom/core/repository/mongo/values.py +0 -0
- {loom_kernel-2.17.2 → loom_kernel-2.18.0}/src/loom/core/repository/mutation.py +0 -0
- {loom_kernel-2.17.2 → loom_kernel-2.18.0}/src/loom/core/repository/registration.py +0 -0
- {loom_kernel-2.17.2 → loom_kernel-2.18.0}/src/loom/core/repository/registry.py +0 -0
- {loom_kernel-2.17.2 → loom_kernel-2.18.0}/src/loom/core/repository/sqlalchemy/__init__.py +0 -0
- {loom_kernel-2.17.2 → loom_kernel-2.18.0}/src/loom/core/repository/sqlalchemy/backend.py +0 -0
- {loom_kernel-2.17.2 → loom_kernel-2.18.0}/src/loom/core/repository/sqlalchemy/integrity.py +0 -0
- {loom_kernel-2.17.2 → loom_kernel-2.18.0}/src/loom/core/repository/sqlalchemy/loaders.py +0 -0
- {loom_kernel-2.17.2 → loom_kernel-2.18.0}/src/loom/core/repository/sqlalchemy/migrations/__init__.py +0 -0
- {loom_kernel-2.17.2 → loom_kernel-2.18.0}/src/loom/core/repository/sqlalchemy/migrations/env_template.py +0 -0
- {loom_kernel-2.17.2 → loom_kernel-2.18.0}/src/loom/core/repository/sqlalchemy/migrations/hook.py +0 -0
- {loom_kernel-2.17.2 → loom_kernel-2.18.0}/src/loom/core/repository/sqlalchemy/migrations/operations.py +0 -0
- {loom_kernel-2.17.2 → loom_kernel-2.18.0}/src/loom/core/repository/sqlalchemy/migrations/runners.py +0 -0
- {loom_kernel-2.17.2 → loom_kernel-2.18.0}/src/loom/core/repository/sqlalchemy/mixins.py +0 -0
- {loom_kernel-2.17.2 → loom_kernel-2.18.0}/src/loom/core/repository/sqlalchemy/model.py +0 -0
- {loom_kernel-2.17.2 → loom_kernel-2.18.0}/src/loom/core/repository/sqlalchemy/profile_loader.py +0 -0
- {loom_kernel-2.17.2 → loom_kernel-2.18.0}/src/loom/core/repository/sqlalchemy/projection.py +0 -0
- {loom_kernel-2.17.2 → loom_kernel-2.18.0}/src/loom/core/repository/sqlalchemy/query_compiler/__init__.py +0 -0
- {loom_kernel-2.17.2 → loom_kernel-2.18.0}/src/loom/core/repository/sqlalchemy/query_compiler/compiler.py +0 -0
- {loom_kernel-2.17.2 → loom_kernel-2.18.0}/src/loom/core/repository/sqlalchemy/query_compiler/cursor.py +0 -0
- {loom_kernel-2.17.2 → loom_kernel-2.18.0}/src/loom/core/repository/sqlalchemy/query_compiler/errors.py +0 -0
- {loom_kernel-2.17.2 → loom_kernel-2.18.0}/src/loom/core/repository/sqlalchemy/query_compiler/filters.py +0 -0
- {loom_kernel-2.17.2 → loom_kernel-2.18.0}/src/loom/core/repository/sqlalchemy/query_compiler/ordering.py +0 -0
- {loom_kernel-2.17.2 → loom_kernel-2.18.0}/src/loom/core/repository/sqlalchemy/query_compiler/paths.py +0 -0
- {loom_kernel-2.17.2 → loom_kernel-2.18.0}/src/loom/core/repository/sqlalchemy/query_compiler/subquery.py +0 -0
- {loom_kernel-2.17.2 → loom_kernel-2.18.0}/src/loom/core/repository/sqlalchemy/registry.py +0 -0
- {loom_kernel-2.17.2 → loom_kernel-2.18.0}/src/loom/core/repository/sqlalchemy/repository.py +0 -0
- {loom_kernel-2.17.2 → loom_kernel-2.18.0}/src/loom/core/repository/sqlalchemy/rls/__init__.py +0 -0
- {loom_kernel-2.17.2 → loom_kernel-2.18.0}/src/loom/core/repository/sqlalchemy/rls/bootstrap.py +0 -0
- {loom_kernel-2.17.2 → loom_kernel-2.18.0}/src/loom/core/repository/sqlalchemy/rls/config.py +0 -0
- {loom_kernel-2.17.2 → loom_kernel-2.18.0}/src/loom/core/repository/sqlalchemy/rls/elevate.py +0 -0
- {loom_kernel-2.17.2 → loom_kernel-2.18.0}/src/loom/core/repository/sqlalchemy/rls/guard/0001.sql +0 -0
- {loom_kernel-2.17.2 → loom_kernel-2.18.0}/src/loom/core/repository/sqlalchemy/rls/guard/0002.sql +0 -0
- {loom_kernel-2.17.2 → loom_kernel-2.18.0}/src/loom/core/repository/sqlalchemy/rls/guard/preflight.sql +0 -0
- {loom_kernel-2.17.2 → loom_kernel-2.18.0}/src/loom/core/repository/sqlalchemy/rls/guard_manifest.py +0 -0
- {loom_kernel-2.17.2 → loom_kernel-2.18.0}/src/loom/core/repository/sqlalchemy/rls/integrity.py +0 -0
- {loom_kernel-2.17.2 → loom_kernel-2.18.0}/src/loom/core/repository/sqlalchemy/rls/partitions.py +0 -0
- {loom_kernel-2.17.2 → loom_kernel-2.18.0}/src/loom/core/repository/sqlalchemy/rls/provider.py +0 -0
- {loom_kernel-2.17.2 → loom_kernel-2.18.0}/src/loom/core/repository/sqlalchemy/rls/schema.py +0 -0
- {loom_kernel-2.17.2 → loom_kernel-2.18.0}/src/loom/core/repository/sqlalchemy/rls/sources.py +0 -0
- {loom_kernel-2.17.2 → loom_kernel-2.18.0}/src/loom/core/repository/sqlalchemy/rls/verify.py +0 -0
- {loom_kernel-2.17.2 → loom_kernel-2.18.0}/src/loom/core/repository/sqlalchemy/session_manager.py +0 -0
- {loom_kernel-2.17.2 → loom_kernel-2.18.0}/src/loom/core/repository/sqlalchemy/session_settings.py +0 -0
- {loom_kernel-2.17.2 → loom_kernel-2.18.0}/src/loom/core/repository/sqlalchemy/transactional.py +0 -0
- {loom_kernel-2.17.2 → loom_kernel-2.18.0}/src/loom/core/repository/sqlalchemy/uow.py +0 -0
- {loom_kernel-2.17.2 → loom_kernel-2.18.0}/src/loom/core/response/__init__.py +0 -0
- {loom_kernel-2.17.2 → loom_kernel-2.18.0}/src/loom/core/response/base.py +0 -0
- {loom_kernel-2.17.2 → loom_kernel-2.18.0}/src/loom/core/routing/__init__.py +0 -0
- {loom_kernel-2.17.2 → loom_kernel-2.18.0}/src/loom/core/routing/ref.py +0 -0
- {loom_kernel-2.17.2 → loom_kernel-2.18.0}/src/loom/core/routing/resolver.py +0 -0
- {loom_kernel-2.17.2 → loom_kernel-2.18.0}/src/loom/core/runner.py +0 -0
- {loom_kernel-2.17.2 → loom_kernel-2.18.0}/src/loom/core/schema/__init__.py +0 -0
- {loom_kernel-2.17.2 → loom_kernel-2.18.0}/src/loom/core/schema/schema_mode.py +0 -0
- {loom_kernel-2.17.2 → loom_kernel-2.18.0}/src/loom/core/schema_names.py +0 -0
- {loom_kernel-2.17.2 → loom_kernel-2.18.0}/src/loom/core/sql/__init__.py +0 -0
- {loom_kernel-2.17.2 → loom_kernel-2.18.0}/src/loom/core/sql/abc/__init__.py +0 -0
- {loom_kernel-2.17.2 → loom_kernel-2.18.0}/src/loom/core/sql/abc/contracts.py +0 -0
- {loom_kernel-2.17.2 → loom_kernel-2.18.0}/src/loom/core/sql/abc/errors.py +0 -0
- {loom_kernel-2.17.2 → loom_kernel-2.18.0}/src/loom/core/sql/caller_bound.py +0 -0
- {loom_kernel-2.17.2 → loom_kernel-2.18.0}/src/loom/core/sql/clickhouse/__init__.py +0 -0
- {loom_kernel-2.17.2 → loom_kernel-2.18.0}/src/loom/core/sql/clickhouse/_client.py +0 -0
- {loom_kernel-2.17.2 → loom_kernel-2.18.0}/src/loom/core/sql/clickhouse/executor.py +0 -0
- {loom_kernel-2.17.2 → loom_kernel-2.18.0}/src/loom/core/sql/clickhouse/registry.py +0 -0
- {loom_kernel-2.17.2 → loom_kernel-2.18.0}/src/loom/core/sql/config.py +0 -0
- {loom_kernel-2.17.2 → loom_kernel-2.18.0}/src/loom/core/sql/roles.py +0 -0
- {loom_kernel-2.17.2 → loom_kernel-2.18.0}/src/loom/core/sql/service.py +0 -0
- {loom_kernel-2.17.2 → loom_kernel-2.18.0}/src/loom/core/symbols.py +0 -0
- {loom_kernel-2.17.2 → loom_kernel-2.18.0}/src/loom/core/tracing/__init__.py +0 -0
- {loom_kernel-2.17.2 → loom_kernel-2.18.0}/src/loom/core/tracing/context.py +0 -0
- {loom_kernel-2.17.2 → loom_kernel-2.18.0}/src/loom/core/transaction.py +0 -0
- {loom_kernel-2.17.2 → loom_kernel-2.18.0}/src/loom/core/transport/__init__.py +0 -0
- {loom_kernel-2.17.2 → loom_kernel-2.18.0}/src/loom/core/transport/adapter.py +0 -0
- {loom_kernel-2.17.2 → loom_kernel-2.18.0}/src/loom/core/uow/__init__.py +0 -0
- {loom_kernel-2.17.2 → loom_kernel-2.18.0}/src/loom/core/uow/abc.py +0 -0
- {loom_kernel-2.17.2 → loom_kernel-2.18.0}/src/loom/core/uow/context.py +0 -0
- {loom_kernel-2.17.2 → loom_kernel-2.18.0}/src/loom/core/use_case/__init__.py +0 -0
- {loom_kernel-2.17.2 → loom_kernel-2.18.0}/src/loom/core/use_case/_predicates.py +0 -0
- {loom_kernel-2.17.2 → loom_kernel-2.18.0}/src/loom/core/use_case/agent_markers.py +0 -0
- {loom_kernel-2.17.2 → loom_kernel-2.18.0}/src/loom/core/use_case/compute.py +0 -0
- {loom_kernel-2.17.2 → loom_kernel-2.18.0}/src/loom/core/use_case/constants.py +0 -0
- {loom_kernel-2.17.2 → loom_kernel-2.18.0}/src/loom/core/use_case/factory.py +0 -0
- {loom_kernel-2.17.2 → loom_kernel-2.18.0}/src/loom/core/use_case/field_ref.py +0 -0
- {loom_kernel-2.17.2 → loom_kernel-2.18.0}/src/loom/core/use_case/invoker.py +0 -0
- {loom_kernel-2.17.2 → loom_kernel-2.18.0}/src/loom/core/use_case/keys.py +0 -0
- {loom_kernel-2.17.2 → loom_kernel-2.18.0}/src/loom/core/use_case/markers.py +0 -0
- {loom_kernel-2.17.2 → loom_kernel-2.18.0}/src/loom/core/use_case/mcp_markers.py +0 -0
- {loom_kernel-2.17.2 → loom_kernel-2.18.0}/src/loom/core/use_case/registry.py +0 -0
- {loom_kernel-2.17.2 → loom_kernel-2.18.0}/src/loom/core/use_case/rule.py +0 -0
- {loom_kernel-2.17.2 → loom_kernel-2.18.0}/src/loom/core/use_case/use_case.py +0 -0
- {loom_kernel-2.17.2 → loom_kernel-2.18.0}/src/loom/etl/__init__.py +0 -0
- {loom_kernel-2.17.2 → loom_kernel-2.18.0}/src/loom/etl/backends/__init__.py +0 -0
- {loom_kernel-2.17.2 → loom_kernel-2.18.0}/src/loom/etl/backends/_format_registry.py +0 -0
- {loom_kernel-2.17.2 → loom_kernel-2.18.0}/src/loom/etl/backends/_historify/__init__.py +0 -0
- {loom_kernel-2.17.2 → loom_kernel-2.18.0}/src/loom/etl/backends/_historify/_common.py +0 -0
- {loom_kernel-2.17.2 → loom_kernel-2.18.0}/src/loom/etl/backends/_historify/_log.py +0 -0
- {loom_kernel-2.17.2 → loom_kernel-2.18.0}/src/loom/etl/backends/_historify/_ops.py +0 -0
- {loom_kernel-2.17.2 → loom_kernel-2.18.0}/src/loom/etl/backends/_historify/_snapshot.py +0 -0
- {loom_kernel-2.17.2 → loom_kernel-2.18.0}/src/loom/etl/backends/_historify/_transform.py +0 -0
- {loom_kernel-2.17.2 → loom_kernel-2.18.0}/src/loom/etl/backends/_merge.py +0 -0
- {loom_kernel-2.17.2 → loom_kernel-2.18.0}/src/loom/etl/backends/_path_template.py +0 -0
- {loom_kernel-2.17.2 → loom_kernel-2.18.0}/src/loom/etl/backends/_predicate.py +0 -0
- {loom_kernel-2.17.2 → loom_kernel-2.18.0}/src/loom/etl/backends/_schema_aligner/__init__.py +0 -0
- {loom_kernel-2.17.2 → loom_kernel-2.18.0}/src/loom/etl/backends/_schema_aligner/_aligner.py +0 -0
- {loom_kernel-2.17.2 → loom_kernel-2.18.0}/src/loom/etl/backends/_schema_aligner/_policy.py +0 -0
- {loom_kernel-2.17.2 → loom_kernel-2.18.0}/src/loom/etl/backends/_write_policy.py +0 -0
- {loom_kernel-2.17.2 → loom_kernel-2.18.0}/src/loom/etl/backends/polars/__init__.py +0 -0
- {loom_kernel-2.17.2 → loom_kernel-2.18.0}/src/loom/etl/backends/polars/_dtype.py +0 -0
- {loom_kernel-2.17.2 → loom_kernel-2.18.0}/src/loom/etl/backends/polars/_file_writer.py +0 -0
- {loom_kernel-2.17.2 → loom_kernel-2.18.0}/src/loom/etl/backends/polars/_historify.py +0 -0
- {loom_kernel-2.17.2 → loom_kernel-2.18.0}/src/loom/etl/backends/polars/_predicate.py +0 -0
- {loom_kernel-2.17.2 → loom_kernel-2.18.0}/src/loom/etl/backends/polars/_reader.py +0 -0
- {loom_kernel-2.17.2 → loom_kernel-2.18.0}/src/loom/etl/backends/polars/_schema.py +0 -0
- {loom_kernel-2.17.2 → loom_kernel-2.18.0}/src/loom/etl/backends/polars/_schema_aligner.py +0 -0
- {loom_kernel-2.17.2 → loom_kernel-2.18.0}/src/loom/etl/backends/polars/_streaming.py +0 -0
- {loom_kernel-2.17.2 → loom_kernel-2.18.0}/src/loom/etl/backends/polars/provider.py +0 -0
- {loom_kernel-2.17.2 → loom_kernel-2.18.0}/src/loom/etl/backends/spark/__init__.py +0 -0
- {loom_kernel-2.17.2 → loom_kernel-2.18.0}/src/loom/etl/backends/spark/_dtype.py +0 -0
- {loom_kernel-2.17.2 → loom_kernel-2.18.0}/src/loom/etl/backends/spark/_historify.py +0 -0
- {loom_kernel-2.17.2 → loom_kernel-2.18.0}/src/loom/etl/backends/spark/_reader.py +0 -0
- {loom_kernel-2.17.2 → loom_kernel-2.18.0}/src/loom/etl/backends/spark/_schema.py +0 -0
- {loom_kernel-2.17.2 → loom_kernel-2.18.0}/src/loom/etl/backends/spark/_schema_aligner.py +0 -0
- {loom_kernel-2.17.2 → loom_kernel-2.18.0}/src/loom/etl/backends/spark/_writer.py +0 -0
- {loom_kernel-2.17.2 → loom_kernel-2.18.0}/src/loom/etl/backends/spark/provider.py +0 -0
- {loom_kernel-2.17.2 → loom_kernel-2.18.0}/src/loom/etl/checkpoint/__init__.py +0 -0
- {loom_kernel-2.17.2 → loom_kernel-2.18.0}/src/loom/etl/checkpoint/_backends/_polars.py +0 -0
- {loom_kernel-2.17.2 → loom_kernel-2.18.0}/src/loom/etl/checkpoint/_backends/_spark.py +0 -0
- {loom_kernel-2.17.2 → loom_kernel-2.18.0}/src/loom/etl/checkpoint/_cleaners.py +0 -0
- {loom_kernel-2.17.2 → loom_kernel-2.18.0}/src/loom/etl/checkpoint/_options.py +0 -0
- {loom_kernel-2.17.2 → loom_kernel-2.18.0}/src/loom/etl/checkpoint/_paths.py +0 -0
- {loom_kernel-2.17.2 → loom_kernel-2.18.0}/src/loom/etl/checkpoint/_scope.py +0 -0
- {loom_kernel-2.17.2 → loom_kernel-2.18.0}/src/loom/etl/checkpoint/_store.py +0 -0
- {loom_kernel-2.17.2 → loom_kernel-2.18.0}/src/loom/etl/compiler/__init__.py +0 -0
- {loom_kernel-2.17.2 → loom_kernel-2.18.0}/src/loom/etl/compiler/_binding.py +0 -0
- {loom_kernel-2.17.2 → loom_kernel-2.18.0}/src/loom/etl/compiler/_compiler.py +0 -0
- {loom_kernel-2.17.2 → loom_kernel-2.18.0}/src/loom/etl/compiler/_errors.py +0 -0
- {loom_kernel-2.17.2 → loom_kernel-2.18.0}/src/loom/etl/compiler/_filter.py +0 -0
- {loom_kernel-2.17.2 → loom_kernel-2.18.0}/src/loom/etl/compiler/_plan.py +0 -0
- {loom_kernel-2.17.2 → loom_kernel-2.18.0}/src/loom/etl/compiler/_validators.py +0 -0
- {loom_kernel-2.17.2 → loom_kernel-2.18.0}/src/loom/etl/compiler/_validators_agents.py +0 -0
- {loom_kernel-2.17.2 → loom_kernel-2.18.0}/src/loom/etl/compiler/_validators_config.py +0 -0
- {loom_kernel-2.17.2 → loom_kernel-2.18.0}/src/loom/etl/compiler/_validators_plan.py +0 -0
- {loom_kernel-2.17.2 → loom_kernel-2.18.0}/src/loom/etl/compiler/_validators_step.py +0 -0
- {loom_kernel-2.17.2 → loom_kernel-2.18.0}/src/loom/etl/declarative/__init__.py +0 -0
- {loom_kernel-2.17.2 → loom_kernel-2.18.0}/src/loom/etl/declarative/_format.py +0 -0
- {loom_kernel-2.17.2 → loom_kernel-2.18.0}/src/loom/etl/declarative/_read_options.py +0 -0
- {loom_kernel-2.17.2 → loom_kernel-2.18.0}/src/loom/etl/declarative/_utils.py +0 -0
- {loom_kernel-2.17.2 → loom_kernel-2.18.0}/src/loom/etl/declarative/_with_agent.py +0 -0
- {loom_kernel-2.17.2 → loom_kernel-2.18.0}/src/loom/etl/declarative/_write_options.py +0 -0
- {loom_kernel-2.17.2 → loom_kernel-2.18.0}/src/loom/etl/declarative/expr/__init__.py +0 -0
- {loom_kernel-2.17.2 → loom_kernel-2.18.0}/src/loom/etl/declarative/expr/_params.py +0 -0
- {loom_kernel-2.17.2 → loom_kernel-2.18.0}/src/loom/etl/declarative/expr/_predicate.py +0 -0
- {loom_kernel-2.17.2 → loom_kernel-2.18.0}/src/loom/etl/declarative/expr/_predicate_dialect.py +0 -0
- {loom_kernel-2.17.2 → loom_kernel-2.18.0}/src/loom/etl/declarative/expr/_refs.py +0 -0
- {loom_kernel-2.17.2 → loom_kernel-2.18.0}/src/loom/etl/declarative/source/__init__.py +0 -0
- {loom_kernel-2.17.2 → loom_kernel-2.18.0}/src/loom/etl/declarative/source/_from.py +0 -0
- {loom_kernel-2.17.2 → loom_kernel-2.18.0}/src/loom/etl/declarative/source/_from_clickhouse.py +0 -0
- {loom_kernel-2.17.2 → loom_kernel-2.18.0}/src/loom/etl/declarative/source/_from_config.py +0 -0
- {loom_kernel-2.17.2 → loom_kernel-2.18.0}/src/loom/etl/declarative/source/_from_dynamodb.py +0 -0
- {loom_kernel-2.17.2 → loom_kernel-2.18.0}/src/loom/etl/declarative/source/_from_mongo.py +0 -0
- {loom_kernel-2.17.2 → loom_kernel-2.18.0}/src/loom/etl/declarative/source/_specs.py +0 -0
- {loom_kernel-2.17.2 → loom_kernel-2.18.0}/src/loom/etl/declarative/target/__init__.py +0 -0
- {loom_kernel-2.17.2 → loom_kernel-2.18.0}/src/loom/etl/declarative/target/_client.py +0 -0
- {loom_kernel-2.17.2 → loom_kernel-2.18.0}/src/loom/etl/declarative/target/_errors.py +0 -0
- {loom_kernel-2.17.2 → loom_kernel-2.18.0}/src/loom/etl/declarative/target/_file.py +0 -0
- {loom_kernel-2.17.2 → loom_kernel-2.18.0}/src/loom/etl/declarative/target/_history/__init__.py +0 -0
- {loom_kernel-2.17.2 → loom_kernel-2.18.0}/src/loom/etl/declarative/target/_history/_builder.py +0 -0
- {loom_kernel-2.17.2 → loom_kernel-2.18.0}/src/loom/etl/declarative/target/_history/_enums.py +0 -0
- {loom_kernel-2.17.2 → loom_kernel-2.18.0}/src/loom/etl/declarative/target/_history/_errors.py +0 -0
- {loom_kernel-2.17.2 → loom_kernel-2.18.0}/src/loom/etl/declarative/target/_history/_report.py +0 -0
- {loom_kernel-2.17.2 → loom_kernel-2.18.0}/src/loom/etl/declarative/target/_history/_spec.py +0 -0
- {loom_kernel-2.17.2 → loom_kernel-2.18.0}/src/loom/etl/declarative/target/_into.py +0 -0
- {loom_kernel-2.17.2 → loom_kernel-2.18.0}/src/loom/etl/declarative/target/_schema_mode.py +0 -0
- {loom_kernel-2.17.2 → loom_kernel-2.18.0}/src/loom/etl/declarative/target/_table.py +0 -0
- {loom_kernel-2.17.2 → loom_kernel-2.18.0}/src/loom/etl/declarative/target/_temp.py +0 -0
- {loom_kernel-2.17.2 → loom_kernel-2.18.0}/src/loom/etl/executor/__init__.py +0 -0
- {loom_kernel-2.17.2 → loom_kernel-2.18.0}/src/loom/etl/executor/_agents.py +0 -0
- {loom_kernel-2.17.2 → loom_kernel-2.18.0}/src/loom/etl/executor/_dispatcher.py +0 -0
- {loom_kernel-2.17.2 → loom_kernel-2.18.0}/src/loom/etl/executor/_executor.py +0 -0
- {loom_kernel-2.17.2 → loom_kernel-2.18.0}/src/loom/etl/io/__init__.py +0 -0
- {loom_kernel-2.17.2 → loom_kernel-2.18.0}/src/loom/etl/io/_registry.py +0 -0
- {loom_kernel-2.17.2 → loom_kernel-2.18.0}/src/loom/etl/io/sources/__init__.py +0 -0
- {loom_kernel-2.17.2 → loom_kernel-2.18.0}/src/loom/etl/io/sources/_clickhouse.py +0 -0
- {loom_kernel-2.17.2 → loom_kernel-2.18.0}/src/loom/etl/io/sources/_dynamodb.py +0 -0
- {loom_kernel-2.17.2 → loom_kernel-2.18.0}/src/loom/etl/io/sources/_dynamodb_items.py +0 -0
- {loom_kernel-2.17.2 → loom_kernel-2.18.0}/src/loom/etl/io/sources/_dynamodb_predicate.py +0 -0
- {loom_kernel-2.17.2 → loom_kernel-2.18.0}/src/loom/etl/io/sources/_mongo.py +0 -0
- {loom_kernel-2.17.2 → loom_kernel-2.18.0}/src/loom/etl/io/sources/_mongo_batch.py +0 -0
- {loom_kernel-2.17.2 → loom_kernel-2.18.0}/src/loom/etl/io/sources/_mongo_bson.py +0 -0
- {loom_kernel-2.17.2 → loom_kernel-2.18.0}/src/loom/etl/io/sources/_mongo_predicate.py +0 -0
- {loom_kernel-2.17.2 → loom_kernel-2.18.0}/src/loom/etl/io/sources/_serialization.py +0 -0
- {loom_kernel-2.17.2 → loom_kernel-2.18.0}/src/loom/etl/io/targets/__init__.py +0 -0
- {loom_kernel-2.17.2 → loom_kernel-2.18.0}/src/loom/etl/io/targets/_clickhouse.py +0 -0
- {loom_kernel-2.17.2 → loom_kernel-2.18.0}/src/loom/etl/lineage/__init__.py +0 -0
- {loom_kernel-2.17.2 → loom_kernel-2.18.0}/src/loom/etl/lineage/_config.py +0 -0
- {loom_kernel-2.17.2 → loom_kernel-2.18.0}/src/loom/etl/lineage/_observer.py +0 -0
- {loom_kernel-2.17.2 → loom_kernel-2.18.0}/src/loom/etl/lineage/_records.py +0 -0
- {loom_kernel-2.17.2 → loom_kernel-2.18.0}/src/loom/etl/lineage/sinks/__init__.py +0 -0
- {loom_kernel-2.17.2 → loom_kernel-2.18.0}/src/loom/etl/lineage/sinks/_protocol.py +0 -0
- {loom_kernel-2.17.2 → loom_kernel-2.18.0}/src/loom/etl/lineage/sinks/_table.py +0 -0
- {loom_kernel-2.17.2 → loom_kernel-2.18.0}/src/loom/etl/lineage/sinks/_writer.py +0 -0
- {loom_kernel-2.17.2 → loom_kernel-2.18.0}/src/loom/etl/maintenance/__init__.py +0 -0
- {loom_kernel-2.17.2 → loom_kernel-2.18.0}/src/loom/etl/maintenance/_protocol.py +0 -0
- {loom_kernel-2.17.2 → loom_kernel-2.18.0}/src/loom/etl/maintenance/_step.py +0 -0
- {loom_kernel-2.17.2 → loom_kernel-2.18.0}/src/loom/etl/maintenance/backends/__init__.py +0 -0
- {loom_kernel-2.17.2 → loom_kernel-2.18.0}/src/loom/etl/pipeline/__init__.py +0 -0
- {loom_kernel-2.17.2 → loom_kernel-2.18.0}/src/loom/etl/pipeline/_generics.py +0 -0
- {loom_kernel-2.17.2 → loom_kernel-2.18.0}/src/loom/etl/pipeline/_params.py +0 -0
- {loom_kernel-2.17.2 → loom_kernel-2.18.0}/src/loom/etl/pipeline/_pipeline.py +0 -0
- {loom_kernel-2.17.2 → loom_kernel-2.18.0}/src/loom/etl/pipeline/_process.py +0 -0
- {loom_kernel-2.17.2 → loom_kernel-2.18.0}/src/loom/etl/pipeline/_sql.py +0 -0
- {loom_kernel-2.17.2 → loom_kernel-2.18.0}/src/loom/etl/pipeline/_step.py +0 -0
- {loom_kernel-2.17.2 → loom_kernel-2.18.0}/src/loom/etl/pipeline/_step_client.py +0 -0
- {loom_kernel-2.17.2 → loom_kernel-2.18.0}/src/loom/etl/pipeline/_step_sql.py +0 -0
- {loom_kernel-2.17.2 → loom_kernel-2.18.0}/src/loom/etl/runner/__init__.py +0 -0
- {loom_kernel-2.17.2 → loom_kernel-2.18.0}/src/loom/etl/runner/_agents.py +0 -0
- {loom_kernel-2.17.2 → loom_kernel-2.18.0}/src/loom/etl/runner/_providers.py +0 -0
- {loom_kernel-2.17.2 → loom_kernel-2.18.0}/src/loom/etl/runner/_wiring.py +0 -0
- {loom_kernel-2.17.2 → loom_kernel-2.18.0}/src/loom/etl/runner/config_loader.py +0 -0
- {loom_kernel-2.17.2 → loom_kernel-2.18.0}/src/loom/etl/runner/core.py +0 -0
- {loom_kernel-2.17.2 → loom_kernel-2.18.0}/src/loom/etl/runner/errors.py +0 -0
- {loom_kernel-2.17.2 → loom_kernel-2.18.0}/src/loom/etl/runner/filtering.py +0 -0
- {loom_kernel-2.17.2 → loom_kernel-2.18.0}/src/loom/etl/runtime/__init__.py +0 -0
- {loom_kernel-2.17.2 → loom_kernel-2.18.0}/src/loom/etl/runtime/_config_values.py +0 -0
- {loom_kernel-2.17.2 → loom_kernel-2.18.0}/src/loom/etl/runtime/contracts.py +0 -0
- {loom_kernel-2.17.2 → loom_kernel-2.18.0}/src/loom/etl/schema/__init__.py +0 -0
- {loom_kernel-2.17.2 → loom_kernel-2.18.0}/src/loom/etl/schema/_contract.py +0 -0
- {loom_kernel-2.17.2 → loom_kernel-2.18.0}/src/loom/etl/schema/_schema.py +0 -0
- {loom_kernel-2.17.2 → loom_kernel-2.18.0}/src/loom/etl/storage/__init__.py +0 -0
- {loom_kernel-2.17.2 → loom_kernel-2.18.0}/src/loom/etl/storage/_file_locator.py +0 -0
- {loom_kernel-2.17.2 → loom_kernel-2.18.0}/src/loom/etl/storage/_locator.py +0 -0
- {loom_kernel-2.17.2 → loom_kernel-2.18.0}/src/loom/etl/storage/routing.py +0 -0
- {loom_kernel-2.17.2 → loom_kernel-2.18.0}/src/loom/etl/testing/__init__.py +0 -0
- {loom_kernel-2.17.2 → loom_kernel-2.18.0}/src/loom/etl/testing/_result.py +0 -0
- {loom_kernel-2.17.2 → loom_kernel-2.18.0}/src/loom/etl/testing/_runners.py +0 -0
- {loom_kernel-2.17.2 → loom_kernel-2.18.0}/src/loom/etl/testing/_scenario.py +0 -0
- {loom_kernel-2.17.2 → loom_kernel-2.18.0}/src/loom/etl/testing/_stubs.py +0 -0
- {loom_kernel-2.17.2 → loom_kernel-2.18.0}/src/loom/etl/testing/spark.py +0 -0
- {loom_kernel-2.17.2 → loom_kernel-2.18.0}/src/loom/prefect/__init__.py +0 -0
- {loom_kernel-2.17.2 → loom_kernel-2.18.0}/src/loom/prefect/_async.py +0 -0
- {loom_kernel-2.17.2 → loom_kernel-2.18.0}/src/loom/prefect/_config.py +0 -0
- {loom_kernel-2.17.2 → loom_kernel-2.18.0}/src/loom/prefect/_ctx.py +0 -0
- {loom_kernel-2.17.2 → loom_kernel-2.18.0}/src/loom/prefect/_flow_yaml.py +0 -0
- {loom_kernel-2.17.2 → loom_kernel-2.18.0}/src/loom/prefect/_meta.py +0 -0
- {loom_kernel-2.17.2 → loom_kernel-2.18.0}/src/loom/prefect/_placeholders.py +0 -0
- {loom_kernel-2.17.2 → loom_kernel-2.18.0}/src/loom/prefect/_summary.py +0 -0
- {loom_kernel-2.17.2 → loom_kernel-2.18.0}/src/loom/prefect/deploy/__init__.py +0 -0
- {loom_kernel-2.17.2 → loom_kernel-2.18.0}/src/loom/prefect/deploy/_discovery.py +0 -0
- {loom_kernel-2.17.2 → loom_kernel-2.18.0}/src/loom/prefect/deploy/_schedule.py +0 -0
- {loom_kernel-2.17.2 → loom_kernel-2.18.0}/src/loom/prefect/deploy/_yaml_etls.py +0 -0
- {loom_kernel-2.17.2 → loom_kernel-2.18.0}/src/loom/prefect/deploy/entrypoint.py +0 -0
- {loom_kernel-2.17.2 → loom_kernel-2.18.0}/src/loom/prefect/flow/__init__.py +0 -0
- {loom_kernel-2.17.2 → loom_kernel-2.18.0}/src/loom/prefect/flow/_assemble.py +0 -0
- {loom_kernel-2.17.2 → loom_kernel-2.18.0}/src/loom/prefect/flow/_backfill.py +0 -0
- {loom_kernel-2.17.2 → loom_kernel-2.18.0}/src/loom/prefect/flow/_backfill_body.py +0 -0
- {loom_kernel-2.17.2 → loom_kernel-2.18.0}/src/loom/prefect/flow/_body.py +0 -0
- {loom_kernel-2.17.2 → loom_kernel-2.18.0}/src/loom/prefect/flow/_common.py +0 -0
- {loom_kernel-2.17.2 → loom_kernel-2.18.0}/src/loom/prefect/flow/_factory.py +0 -0
- {loom_kernel-2.17.2 → loom_kernel-2.18.0}/src/loom/prefect/flow/_hooks.py +0 -0
- {loom_kernel-2.17.2 → loom_kernel-2.18.0}/src/loom/prefect/flow/_maintenance.py +0 -0
- {loom_kernel-2.17.2 → loom_kernel-2.18.0}/src/loom/prefect/flow/_params.py +0 -0
- {loom_kernel-2.17.2 → loom_kernel-2.18.0}/src/loom/prefect/flow/_run_name.py +0 -0
- {loom_kernel-2.17.2 → loom_kernel-2.18.0}/src/loom/prefect/flow/_runtime.py +0 -0
- {loom_kernel-2.17.2 → loom_kernel-2.18.0}/src/loom/prefect/flow/_signature.py +0 -0
- {loom_kernel-2.17.2 → loom_kernel-2.18.0}/src/loom/prefect/flow/_stages.py +0 -0
- {loom_kernel-2.17.2 → loom_kernel-2.18.0}/src/loom/prefect/manifest/__init__.py +0 -0
- {loom_kernel-2.17.2 → loom_kernel-2.18.0}/src/loom/prefect/manifest/_model.py +0 -0
- {loom_kernel-2.17.2 → loom_kernel-2.18.0}/src/loom/prefect/manifest/_s3.py +0 -0
- {loom_kernel-2.17.2 → loom_kernel-2.18.0}/src/loom/prefect/manifest/_store.py +0 -0
- {loom_kernel-2.17.2 → loom_kernel-2.18.0}/src/loom/prefect/notify/__init__.py +0 -0
- {loom_kernel-2.17.2 → loom_kernel-2.18.0}/src/loom/prefect/notify/_event.py +0 -0
- {loom_kernel-2.17.2 → loom_kernel-2.18.0}/src/loom/prefect/notify/_factory.py +0 -0
- {loom_kernel-2.17.2 → loom_kernel-2.18.0}/src/loom/prefect/notify/_port.py +0 -0
- {loom_kernel-2.17.2 → loom_kernel-2.18.0}/src/loom/prefect/notify/_slack.py +0 -0
- {loom_kernel-2.17.2 → loom_kernel-2.18.0}/src/loom/prefect/observer/__init__.py +0 -0
- {loom_kernel-2.17.2 → loom_kernel-2.18.0}/src/loom/prefect/observer/_flow.py +0 -0
- {loom_kernel-2.17.2 → loom_kernel-2.18.0}/src/loom/prefect/observer/_logging_bridge.py +0 -0
- {loom_kernel-2.17.2 → loom_kernel-2.18.0}/src/loom/prefect/observer/_manifest.py +0 -0
- {loom_kernel-2.17.2 → loom_kernel-2.18.0}/src/loom/prefect/observer/_task_run.py +0 -0
- {loom_kernel-2.17.2 → loom_kernel-2.18.0}/src/loom/prometheus/__init__.py +0 -0
- {loom_kernel-2.17.2 → loom_kernel-2.18.0}/src/loom/prometheus/_instruments.py +0 -0
- {loom_kernel-2.17.2 → loom_kernel-2.18.0}/src/loom/prometheus/adapter.py +0 -0
- {loom_kernel-2.17.2 → loom_kernel-2.18.0}/src/loom/prometheus/kafka.py +0 -0
- {loom_kernel-2.17.2 → loom_kernel-2.18.0}/src/loom/prometheus/lifecycle.py +0 -0
- {loom_kernel-2.17.2 → loom_kernel-2.18.0}/src/loom/prometheus/middleware.py +0 -0
- {loom_kernel-2.17.2 → loom_kernel-2.18.0}/src/loom/py.typed +0 -0
- {loom_kernel-2.17.2 → loom_kernel-2.18.0}/src/loom/rest/__init__.py +0 -0
- {loom_kernel-2.17.2 → loom_kernel-2.18.0}/src/loom/rest/_body.py +0 -0
- {loom_kernel-2.17.2 → loom_kernel-2.18.0}/src/loom/rest/adapter.py +0 -0
- {loom_kernel-2.17.2 → loom_kernel-2.18.0}/src/loom/rest/auth/__init__.py +0 -0
- {loom_kernel-2.17.2 → loom_kernel-2.18.0}/src/loom/rest/auth/abc.py +0 -0
- {loom_kernel-2.17.2 → loom_kernel-2.18.0}/src/loom/rest/auth/config.py +0 -0
- {loom_kernel-2.17.2 → loom_kernel-2.18.0}/src/loom/rest/auth/jwt.py +0 -0
- {loom_kernel-2.17.2 → loom_kernel-2.18.0}/src/loom/rest/auth/middleware.py +0 -0
- {loom_kernel-2.17.2 → loom_kernel-2.18.0}/src/loom/rest/autocrud.py +0 -0
- {loom_kernel-2.17.2 → loom_kernel-2.18.0}/src/loom/rest/compiler.py +0 -0
- {loom_kernel-2.17.2 → loom_kernel-2.18.0}/src/loom/rest/config.py +0 -0
- {loom_kernel-2.17.2 → loom_kernel-2.18.0}/src/loom/rest/constants.py +0 -0
- {loom_kernel-2.17.2 → loom_kernel-2.18.0}/src/loom/rest/cors.py +0 -0
- {loom_kernel-2.17.2 → loom_kernel-2.18.0}/src/loom/rest/fastapi/__init__.py +0 -0
- {loom_kernel-2.17.2 → loom_kernel-2.18.0}/src/loom/rest/fastapi/_errors.py +0 -0
- {loom_kernel-2.17.2 → loom_kernel-2.18.0}/src/loom/rest/fastapi/_exclusions.py +0 -0
- {loom_kernel-2.17.2 → loom_kernel-2.18.0}/src/loom/rest/fastapi/app.py +0 -0
- {loom_kernel-2.17.2 → loom_kernel-2.18.0}/src/loom/rest/fastapi/auto.py +0 -0
- {loom_kernel-2.17.2 → loom_kernel-2.18.0}/src/loom/rest/fastapi/health.py +0 -0
- {loom_kernel-2.17.2 → loom_kernel-2.18.0}/src/loom/rest/fastapi/openapi.py +0 -0
- {loom_kernel-2.17.2 → loom_kernel-2.18.0}/src/loom/rest/fastapi/response.py +0 -0
- {loom_kernel-2.17.2 → loom_kernel-2.18.0}/src/loom/rest/fastapi/router_runtime.py +0 -0
- {loom_kernel-2.17.2 → loom_kernel-2.18.0}/src/loom/rest/fastapi/sql.py +0 -0
- {loom_kernel-2.17.2 → loom_kernel-2.18.0}/src/loom/rest/middleware.py +0 -0
- {loom_kernel-2.17.2 → loom_kernel-2.18.0}/src/loom/rest/model.py +0 -0
- {loom_kernel-2.17.2 → loom_kernel-2.18.0}/src/loom/rest/rest_adapter.py +0 -0
- {loom_kernel-2.17.2 → loom_kernel-2.18.0}/src/loom/streaming/__init__.py +0 -0
- {loom_kernel-2.17.2 → loom_kernel-2.18.0}/src/loom/streaming/bytewax/__init__.py +0 -0
- {loom_kernel-2.17.2 → loom_kernel-2.18.0}/src/loom/streaming/bytewax/_adapter.py +0 -0
- {loom_kernel-2.17.2 → loom_kernel-2.18.0}/src/loom/streaming/bytewax/_batch_spans.py +0 -0
- {loom_kernel-2.17.2 → loom_kernel-2.18.0}/src/loom/streaming/bytewax/_commit_tracker.py +0 -0
- {loom_kernel-2.17.2 → loom_kernel-2.18.0}/src/loom/streaming/bytewax/_dlq.py +0 -0
- {loom_kernel-2.17.2 → loom_kernel-2.18.0}/src/loom/streaming/bytewax/_error_boundary.py +0 -0
- {loom_kernel-2.17.2 → loom_kernel-2.18.0}/src/loom/streaming/bytewax/_errors.py +0 -0
- {loom_kernel-2.17.2 → loom_kernel-2.18.0}/src/loom/streaming/bytewax/_operators.py +0 -0
- {loom_kernel-2.17.2 → loom_kernel-2.18.0}/src/loom/streaming/bytewax/_resource_manager.py +0 -0
- {loom_kernel-2.17.2 → loom_kernel-2.18.0}/src/loom/streaming/bytewax/_runtime_io.py +0 -0
- {loom_kernel-2.17.2 → loom_kernel-2.18.0}/src/loom/streaming/bytewax/_sink_registry.py +0 -0
- {loom_kernel-2.17.2 → loom_kernel-2.18.0}/src/loom/streaming/bytewax/handlers/__init__.py +0 -0
- {loom_kernel-2.17.2 → loom_kernel-2.18.0}/src/loom/streaming/bytewax/handlers/_shared.py +0 -0
- {loom_kernel-2.17.2 → loom_kernel-2.18.0}/src/loom/streaming/bytewax/handlers/boundary.py +0 -0
- {loom_kernel-2.17.2 → loom_kernel-2.18.0}/src/loom/streaming/bytewax/handlers/dispatcher.py +0 -0
- {loom_kernel-2.17.2 → loom_kernel-2.18.0}/src/loom/streaming/bytewax/handlers/routing.py +0 -0
- {loom_kernel-2.17.2 → loom_kernel-2.18.0}/src/loom/streaming/bytewax/handlers/scopes.py +0 -0
- {loom_kernel-2.17.2 → loom_kernel-2.18.0}/src/loom/streaming/bytewax/handlers/shapes.py +0 -0
- {loom_kernel-2.17.2 → loom_kernel-2.18.0}/src/loom/streaming/bytewax/handlers/steps.py +0 -0
- {loom_kernel-2.17.2 → loom_kernel-2.18.0}/src/loom/streaming/bytewax/handlers/storage.py +0 -0
- {loom_kernel-2.17.2 → loom_kernel-2.18.0}/src/loom/streaming/bytewax/runner.py +0 -0
- {loom_kernel-2.17.2 → loom_kernel-2.18.0}/src/loom/streaming/compiler/__init__.py +0 -0
- {loom_kernel-2.17.2 → loom_kernel-2.18.0}/src/loom/streaming/compiler/_bindings.py +0 -0
- {loom_kernel-2.17.2 → loom_kernel-2.18.0}/src/loom/streaming/compiler/_compiler.py +0 -0
- {loom_kernel-2.17.2 → loom_kernel-2.18.0}/src/loom/streaming/compiler/_errors.py +0 -0
- {loom_kernel-2.17.2 → loom_kernel-2.18.0}/src/loom/streaming/compiler/_plan.py +0 -0
- {loom_kernel-2.17.2 → loom_kernel-2.18.0}/src/loom/streaming/compiler/phases/build_plan.py +0 -0
- {loom_kernel-2.17.2 → loom_kernel-2.18.0}/src/loom/streaming/compiler/phases/validate.py +0 -0
- {loom_kernel-2.17.2 → loom_kernel-2.18.0}/src/loom/streaming/core/__init__.py +0 -0
- {loom_kernel-2.17.2 → loom_kernel-2.18.0}/src/loom/streaming/core/_errors.py +0 -0
- {loom_kernel-2.17.2 → loom_kernel-2.18.0}/src/loom/streaming/core/_exceptions.py +0 -0
- {loom_kernel-2.17.2 → loom_kernel-2.18.0}/src/loom/streaming/core/_message.py +0 -0
- {loom_kernel-2.17.2 → loom_kernel-2.18.0}/src/loom/streaming/core/_tracing.py +0 -0
- {loom_kernel-2.17.2 → loom_kernel-2.18.0}/src/loom/streaming/core/_typing.py +0 -0
- {loom_kernel-2.17.2 → loom_kernel-2.18.0}/src/loom/streaming/graph/__init__.py +0 -0
- {loom_kernel-2.17.2 → loom_kernel-2.18.0}/src/loom/streaming/graph/_flow.py +0 -0
- {loom_kernel-2.17.2 → loom_kernel-2.18.0}/src/loom/streaming/kafka/__init__.py +0 -0
- {loom_kernel-2.17.2 → loom_kernel-2.18.0}/src/loom/streaming/kafka/_codec.py +0 -0
- {loom_kernel-2.17.2 → loom_kernel-2.18.0}/src/loom/streaming/kafka/_config.py +0 -0
- {loom_kernel-2.17.2 → loom_kernel-2.18.0}/src/loom/streaming/kafka/_errors.py +0 -0
- {loom_kernel-2.17.2 → loom_kernel-2.18.0}/src/loom/streaming/kafka/_key_resolver.py +0 -0
- {loom_kernel-2.17.2 → loom_kernel-2.18.0}/src/loom/streaming/kafka/_message.py +0 -0
- {loom_kernel-2.17.2 → loom_kernel-2.18.0}/src/loom/streaming/kafka/_record.py +0 -0
- {loom_kernel-2.17.2 → loom_kernel-2.18.0}/src/loom/streaming/kafka/_wire.py +0 -0
- {loom_kernel-2.17.2 → loom_kernel-2.18.0}/src/loom/streaming/kafka/client/__init__.py +0 -0
- {loom_kernel-2.17.2 → loom_kernel-2.18.0}/src/loom/streaming/kafka/client/_consumer.py +0 -0
- {loom_kernel-2.17.2 → loom_kernel-2.18.0}/src/loom/streaming/kafka/client/_producer.py +0 -0
- {loom_kernel-2.17.2 → loom_kernel-2.18.0}/src/loom/streaming/kafka/client/_protocol.py +0 -0
- {loom_kernel-2.17.2 → loom_kernel-2.18.0}/src/loom/streaming/kafka/client/_retry.py +0 -0
- {loom_kernel-2.17.2 → loom_kernel-2.18.0}/src/loom/streaming/kafka/message/__init__.py +0 -0
- {loom_kernel-2.17.2 → loom_kernel-2.18.0}/src/loom/streaming/kafka/message/_consumer.py +0 -0
- {loom_kernel-2.17.2 → loom_kernel-2.18.0}/src/loom/streaming/kafka/message/_producer.py +0 -0
- {loom_kernel-2.17.2 → loom_kernel-2.18.0}/src/loom/streaming/kafka/message/_protocol.py +0 -0
- {loom_kernel-2.17.2 → loom_kernel-2.18.0}/src/loom/streaming/mongo/__init__.py +0 -0
- {loom_kernel-2.17.2 → loom_kernel-2.18.0}/src/loom/streaming/mongo/_bytewax_source.py +0 -0
- {loom_kernel-2.17.2 → loom_kernel-2.18.0}/src/loom/streaming/mongo/_config.py +0 -0
- {loom_kernel-2.17.2 → loom_kernel-2.18.0}/src/loom/streaming/mongo/_event.py +0 -0
- {loom_kernel-2.17.2 → loom_kernel-2.18.0}/src/loom/streaming/mongo/_normalize.py +0 -0
- {loom_kernel-2.17.2 → loom_kernel-2.18.0}/src/loom/streaming/nodes/__init__.py +0 -0
- {loom_kernel-2.17.2 → loom_kernel-2.18.0}/src/loom/streaming/nodes/_boundary.py +0 -0
- {loom_kernel-2.17.2 → loom_kernel-2.18.0}/src/loom/streaming/nodes/_branches.py +0 -0
- {loom_kernel-2.17.2 → loom_kernel-2.18.0}/src/loom/streaming/nodes/_broadcast.py +0 -0
- {loom_kernel-2.17.2 → loom_kernel-2.18.0}/src/loom/streaming/nodes/_capabilities.py +0 -0
- {loom_kernel-2.17.2 → loom_kernel-2.18.0}/src/loom/streaming/nodes/_decompose.py +0 -0
- {loom_kernel-2.17.2 → loom_kernel-2.18.0}/src/loom/streaming/nodes/_expand_routes.py +0 -0
- {loom_kernel-2.17.2 → loom_kernel-2.18.0}/src/loom/streaming/nodes/_expr_eval.py +0 -0
- {loom_kernel-2.17.2 → loom_kernel-2.18.0}/src/loom/streaming/nodes/_fork.py +0 -0
- {loom_kernel-2.17.2 → loom_kernel-2.18.0}/src/loom/streaming/nodes/_helpers.py +0 -0
- {loom_kernel-2.17.2 → loom_kernel-2.18.0}/src/loom/streaming/nodes/_mongo.py +0 -0
- {loom_kernel-2.17.2 → loom_kernel-2.18.0}/src/loom/streaming/nodes/_protocols.py +0 -0
- {loom_kernel-2.17.2 → loom_kernel-2.18.0}/src/loom/streaming/nodes/_router.py +0 -0
- {loom_kernel-2.17.2 → loom_kernel-2.18.0}/src/loom/streaming/nodes/_shape.py +0 -0
- {loom_kernel-2.17.2 → loom_kernel-2.18.0}/src/loom/streaming/nodes/_sink.py +0 -0
- {loom_kernel-2.17.2 → loom_kernel-2.18.0}/src/loom/streaming/nodes/_step.py +0 -0
- {loom_kernel-2.17.2 → loom_kernel-2.18.0}/src/loom/streaming/nodes/_table/__init__.py +0 -0
- {loom_kernel-2.17.2 → loom_kernel-2.18.0}/src/loom/streaming/nodes/_table/common.py +0 -0
- {loom_kernel-2.17.2 → loom_kernel-2.18.0}/src/loom/streaming/nodes/_table/config.py +0 -0
- {loom_kernel-2.17.2 → loom_kernel-2.18.0}/src/loom/streaming/nodes/_with.py +0 -0
- {loom_kernel-2.17.2 → loom_kernel-2.18.0}/src/loom/streaming/nodes/refs.py +0 -0
- {loom_kernel-2.17.2 → loom_kernel-2.18.0}/src/loom/streaming/testing.py +0 -0
- {loom_kernel-2.17.2 → loom_kernel-2.18.0}/src/loom/testing/__init__.py +0 -0
- {loom_kernel-2.17.2 → loom_kernel-2.18.0}/src/loom/testing/agents.py +0 -0
- {loom_kernel-2.17.2 → loom_kernel-2.18.0}/src/loom/testing/golden.py +0 -0
- {loom_kernel-2.17.2 → loom_kernel-2.18.0}/src/loom/testing/http_harness.py +0 -0
- {loom_kernel-2.17.2 → loom_kernel-2.18.0}/src/loom/testing/in_memory.py +0 -0
- {loom_kernel-2.17.2 → loom_kernel-2.18.0}/src/loom/testing/repository_harness.py +0 -0
- {loom_kernel-2.17.2 → loom_kernel-2.18.0}/src/loom/testing/runner.py +0 -0
|
@@ -179,6 +179,13 @@
|
|
|
179
179
|
|
|
180
180
|
### rest
|
|
181
181
|
|
|
182
|
+
- **rest:** a `403` can say why and what is missing. `Forbidden` takes two
|
|
183
|
+
optional keyword arguments, `reason` (a machine-readable cause such as
|
|
184
|
+
`"mfa_required"`) and `missing` (the permissions the caller lacks, kept as a
|
|
185
|
+
tuple); `HttpErrorMapper` adds `reason` and `missing` to the body only when the
|
|
186
|
+
refusal carries them, so existing 403 bodies do not change. Both are public:
|
|
187
|
+
never put token claims or tenant data in them. An empty `reason`, a single
|
|
188
|
+
string as `missing` or an empty permission raise `ValueError`.
|
|
182
189
|
- **rest:** a single `RuleViolation(field, message)` now answers its `field`.
|
|
183
190
|
`HttpErrorMapper` dropped it, so two `rule_violation` 422s could only be
|
|
184
191
|
told apart by their message text. The body adds `field` (`ErrorField.FIELD`,
|
|
@@ -246,6 +253,11 @@
|
|
|
246
253
|
|
|
247
254
|
### etl
|
|
248
255
|
|
|
256
|
+
- **etl:** `vacuum(full=True)` (`MaintainTable`, `MaintainSchema`,
|
|
257
|
+
`maintenance.vacuum.full`) also deletes files the Delta log does not
|
|
258
|
+
reference, such as the output of an aborted write, older than the retention
|
|
259
|
+
and honouring `dry_run`. It lists the whole table directory on each run.
|
|
260
|
+
Defaults to `False`.
|
|
249
261
|
- **etl:** a step may receive values from the runner's config without reading
|
|
250
262
|
the environment or taking them as params. `FromConfig("respondio.api_token")`
|
|
251
263
|
(a `str`) or `FromConfig("respondio", RespondioSettings)` (a type
|
|
@@ -479,6 +491,15 @@
|
|
|
479
491
|
|
|
480
492
|
### etl
|
|
481
493
|
|
|
494
|
+
- **etl:** `upsert` and `update` on the Polars backend write with the route's
|
|
495
|
+
`writer` and `commit` settings. The delta-rs MERGE received neither, so the
|
|
496
|
+
Parquet files it rewrote came out with delta-rs defaults (SNAPPY, row groups
|
|
497
|
+
of 1,048,576 rows) whatever the route declared, and its commit carried no
|
|
498
|
+
`custom_metadata`. The MERGE now takes the same `WriterProperties` and
|
|
499
|
+
`CommitProperties` as `append`, `replace`, `replace_partitions` and
|
|
500
|
+
`replace_where`. delta-rs MERGE takes no target file size: its files follow
|
|
501
|
+
the table property `delta.targetFileSize`, not the route's
|
|
502
|
+
`target_file_size`. Existing files keep their old settings until rewritten.
|
|
482
503
|
- **etl:** historify collapses lazy runs without a `PerformanceWarning`.
|
|
483
504
|
- **etl:** `IntoHistory(..., mode="snapshot")` no longer reopens a row on
|
|
484
505
|
every run when a tracked column is null. Classification joined existing
|
|
@@ -97,10 +97,37 @@ class Forbidden(DomainError):
|
|
|
97
97
|
|
|
98
98
|
Args:
|
|
99
99
|
message: Description of the access restriction.
|
|
100
|
+
reason: Optional machine-readable cause a client can act on, such as
|
|
101
|
+
``"mfa_required"``. ``None`` when the refusal has no specific cause.
|
|
102
|
+
missing: The permissions the caller lacks, in the order given; empty when
|
|
103
|
+
the authorizer does not tell them.
|
|
104
|
+
|
|
105
|
+
Both are keyword-only and public: the REST adapter puts them in the 403 body.
|
|
106
|
+
Never put token claims, tenant data or anything the caller may not learn in them;
|
|
107
|
+
leave them out where the refusal must not become an oracle for the policy.
|
|
108
|
+
|
|
109
|
+
Raises:
|
|
110
|
+
ValueError: If ``reason`` is empty, ``missing`` is a single string, or an item
|
|
111
|
+
of ``missing`` is not a non-empty string.
|
|
100
112
|
"""
|
|
101
113
|
|
|
102
|
-
def __init__(
|
|
114
|
+
def __init__(
|
|
115
|
+
self,
|
|
116
|
+
message: str = "Forbidden",
|
|
117
|
+
*,
|
|
118
|
+
reason: str | None = None,
|
|
119
|
+
missing: Sequence[str] = (),
|
|
120
|
+
) -> None:
|
|
121
|
+
if reason is not None and (not isinstance(reason, str) or not reason.strip()):
|
|
122
|
+
raise ValueError("Forbidden.reason must be a non-empty string or None")
|
|
123
|
+
if isinstance(missing, (str, bytes)):
|
|
124
|
+
raise ValueError("Forbidden.missing takes a sequence of permissions, not one string")
|
|
125
|
+
permissions = tuple(missing)
|
|
126
|
+
if any(not isinstance(item, str) or not item.strip() for item in permissions):
|
|
127
|
+
raise ValueError("Forbidden.missing items must be non-empty strings")
|
|
103
128
|
super().__init__(message, code=ErrorCode.FORBIDDEN)
|
|
129
|
+
self.reason = reason
|
|
130
|
+
self.missing: tuple[str, ...] = permissions
|
|
104
131
|
|
|
105
132
|
|
|
106
133
|
class Conflict(DomainError):
|
|
@@ -578,6 +578,7 @@ class PolarsTargetWriter(_WritePolicy[pl.LazyFrame, pl.DataFrame, PolarsPhysical
|
|
|
578
578
|
predicate=merge_plan.predicate,
|
|
579
579
|
source_alias=SOURCE_ALIAS,
|
|
580
580
|
target_alias=TARGET_ALIAS,
|
|
581
|
+
**self._delta_properties(location),
|
|
581
582
|
).when_matched_update(updates=merge_plan.update_set)
|
|
582
583
|
return merger, merge_plan, location
|
|
583
584
|
|
|
@@ -751,14 +752,21 @@ class PolarsTargetWriter(_WritePolicy[pl.LazyFrame, pl.DataFrame, PolarsPhysical
|
|
|
751
752
|
)
|
|
752
753
|
|
|
753
754
|
@staticmethod
|
|
754
|
-
def
|
|
755
|
+
def _delta_properties(loc: TableLocation) -> dict[str, Any]:
|
|
756
|
+
"""Build ``writer_properties`` and ``commit_properties`` from TableLocation."""
|
|
757
|
+
return {
|
|
758
|
+
"writer_properties": WriterProperties(**loc.writer) if loc.writer else None,
|
|
759
|
+
"commit_properties": CommitProperties(**loc.commit) if loc.commit else None,
|
|
760
|
+
}
|
|
761
|
+
|
|
762
|
+
@classmethod
|
|
763
|
+
def _write_kwargs(cls, loc: TableLocation) -> dict[str, Any]:
|
|
755
764
|
"""Build write kwargs from TableLocation."""
|
|
756
765
|
return {
|
|
757
766
|
"storage_options": loc.storage_options or None,
|
|
758
767
|
"configuration": loc.delta_config or None,
|
|
759
|
-
"writer_properties": WriterProperties(**loc.writer) if loc.writer else None,
|
|
760
768
|
"target_file_size": loc.target_file_size,
|
|
761
|
-
|
|
769
|
+
**cls._delta_properties(loc),
|
|
762
770
|
}
|
|
763
771
|
|
|
764
772
|
@staticmethod
|
|
@@ -73,6 +73,7 @@ class MaintainTable:
|
|
|
73
73
|
retention_hours: int | None = None,
|
|
74
74
|
*,
|
|
75
75
|
dry_run: bool = True,
|
|
76
|
+
full: bool = False,
|
|
76
77
|
) -> MaintainTable:
|
|
77
78
|
"""Schedule a VACUUM step.
|
|
78
79
|
|
|
@@ -82,8 +83,10 @@ class MaintainTable:
|
|
|
82
83
|
(default 168 h / 7 days).
|
|
83
84
|
dry_run: When ``True`` (default), lists files without deleting.
|
|
84
85
|
Set ``dry_run=False`` explicitly for production runs.
|
|
86
|
+
full: When ``True``, also deletes files the Delta log does not
|
|
87
|
+
reference. See :class:`~loom.etl.maintenance.VacuumSpec`.
|
|
85
88
|
"""
|
|
86
|
-
self._ops.append(VacuumSpec(retention_hours=retention_hours, dry_run=dry_run))
|
|
89
|
+
self._ops.append(VacuumSpec(retention_hours=retention_hours, dry_run=dry_run, full=full))
|
|
87
90
|
return self
|
|
88
91
|
|
|
89
92
|
def compact(self, target_size: int | None = None) -> MaintainTable:
|
|
@@ -162,9 +165,13 @@ class MaintainSchema:
|
|
|
162
165
|
retention_hours: int | None = None,
|
|
163
166
|
*,
|
|
164
167
|
dry_run: bool = True,
|
|
168
|
+
full: bool = False,
|
|
165
169
|
) -> MaintainSchema:
|
|
166
|
-
"""Schedule a VACUUM step for all discovered tables.
|
|
167
|
-
|
|
170
|
+
"""Schedule a VACUUM step for all discovered tables.
|
|
171
|
+
|
|
172
|
+
Takes the same arguments as :meth:`MaintainTable.vacuum`.
|
|
173
|
+
"""
|
|
174
|
+
self._ops.append(VacuumSpec(retention_hours=retention_hours, dry_run=dry_run, full=full))
|
|
168
175
|
return self
|
|
169
176
|
|
|
170
177
|
def compact(self, target_size: int | None = None) -> MaintainSchema:
|
|
@@ -31,11 +31,15 @@ class VacuumSpec:
|
|
|
31
31
|
property (default 168 hours / 7 days).
|
|
32
32
|
dry_run: When ``True`` (the default), lists eligible files without
|
|
33
33
|
deleting them. Set ``dry_run=False`` explicitly in production.
|
|
34
|
+
full: When ``True``, also deletes files the Delta log does not
|
|
35
|
+
reference, older than the retention. ``False`` (the default)
|
|
36
|
+
deletes only the files the log records as removed.
|
|
34
37
|
"""
|
|
35
38
|
|
|
36
39
|
name: ClassVar[str] = "vacuum"
|
|
37
40
|
retention_hours: int | None = None
|
|
38
41
|
dry_run: bool = True
|
|
42
|
+
full: bool = False
|
|
39
43
|
|
|
40
44
|
def execute(
|
|
41
45
|
self,
|
|
@@ -171,7 +171,11 @@ class MaintenanceRunner:
|
|
|
171
171
|
return MaintenanceReport()
|
|
172
172
|
|
|
173
173
|
vacuum_spec = (
|
|
174
|
-
VacuumSpec(
|
|
174
|
+
VacuumSpec(
|
|
175
|
+
retention_hours=mc.vacuum.retention_hours,
|
|
176
|
+
dry_run=mc.vacuum.dry_run,
|
|
177
|
+
full=mc.vacuum.full,
|
|
178
|
+
)
|
|
175
179
|
if mc.vacuum
|
|
176
180
|
else None
|
|
177
181
|
)
|
|
@@ -40,9 +40,10 @@ class DeltaRsMaintainer:
|
|
|
40
40
|
deleted = dt.vacuum(
|
|
41
41
|
retention_hours=spec.retention_hours,
|
|
42
42
|
dry_run=spec.dry_run,
|
|
43
|
+
full=spec.full,
|
|
43
44
|
commit_properties=commit,
|
|
44
45
|
)
|
|
45
|
-
_log.info("vacuum", uri=uri, dry_run=spec.dry_run, files=len(deleted))
|
|
46
|
+
_log.info("vacuum", uri=uri, dry_run=spec.dry_run, full=spec.full, files=len(deleted))
|
|
46
47
|
return VacuumResult(files_deleted=deleted)
|
|
47
48
|
|
|
48
49
|
def compact(
|
|
@@ -307,10 +307,14 @@ class MaintenanceVacuumConfig(LoomFrozenStruct, frozen=True):
|
|
|
307
307
|
(default 168 h / 7 days).
|
|
308
308
|
dry_run: When ``True`` (default), lists files without deleting.
|
|
309
309
|
Set ``dry_run=False`` explicitly for production runs.
|
|
310
|
+
full: When ``True``, also deletes files the Delta log does not
|
|
311
|
+
reference, older than the retention. ``False`` (default) deletes
|
|
312
|
+
only the files the log records as removed.
|
|
310
313
|
"""
|
|
311
314
|
|
|
312
315
|
retention_hours: int | None = None
|
|
313
316
|
dry_run: bool = True
|
|
317
|
+
full: bool = False
|
|
314
318
|
|
|
315
319
|
|
|
316
320
|
class MaintenanceConfig(LoomFrozenStruct, frozen=True):
|
|
@@ -9,7 +9,7 @@ from typing import Any, ClassVar
|
|
|
9
9
|
from fastapi import HTTPException
|
|
10
10
|
|
|
11
11
|
from loom.core.engine.post_commit import PostCommitError
|
|
12
|
-
from loom.core.errors import LoomError, NotFound, RuleViolation, RuleViolations
|
|
12
|
+
from loom.core.errors import Forbidden, LoomError, NotFound, RuleViolation, RuleViolations
|
|
13
13
|
from loom.core.errors.codes import ErrorCode
|
|
14
14
|
from loom.core.model import BoundaryValidationError
|
|
15
15
|
from loom.core.tracing import get_trace_id
|
|
@@ -41,6 +41,8 @@ class ErrorField(StrEnum):
|
|
|
41
41
|
VIOLATIONS = "violations"
|
|
42
42
|
FIELD = "field"
|
|
43
43
|
COMMITTED = "committed"
|
|
44
|
+
REASON = "reason"
|
|
45
|
+
MISSING = "missing"
|
|
44
46
|
|
|
45
47
|
|
|
46
48
|
class HttpErrorMapper:
|
|
@@ -52,6 +54,8 @@ class HttpErrorMapper:
|
|
|
52
54
|
per error type:
|
|
53
55
|
|
|
54
56
|
- :class:`~loom.core.errors.NotFound` → ``entity``, ``id``
|
|
57
|
+
- :class:`~loom.core.errors.Forbidden` → ``reason`` and ``missing``, each only
|
|
58
|
+
when the refusal carries it
|
|
55
59
|
- :class:`~loom.core.errors.RuleViolation` → ``field``
|
|
56
60
|
- :class:`~loom.core.errors.RuleViolations` → ``violations``
|
|
57
61
|
- :class:`~loom.core.model.BoundaryValidationError` → ``violations``
|
|
@@ -109,6 +113,12 @@ class HttpErrorMapper:
|
|
|
109
113
|
detail[ErrorField.ENTITY] = error.entity
|
|
110
114
|
detail[ErrorField.ID] = error.id
|
|
111
115
|
|
|
116
|
+
if isinstance(error, Forbidden):
|
|
117
|
+
if error.reason is not None:
|
|
118
|
+
detail[ErrorField.REASON] = error.reason
|
|
119
|
+
if error.missing:
|
|
120
|
+
detail[ErrorField.MISSING] = list(error.missing)
|
|
121
|
+
|
|
112
122
|
if isinstance(error, RuleViolation):
|
|
113
123
|
detail[ErrorField.FIELD] = error.field
|
|
114
124
|
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{loom_kernel-2.17.2 → loom_kernel-2.18.0}/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.17.2 → loom_kernel-2.18.0}/src/loom/ai/engines/pydantic_ai/extras/__init__.py
RENAMED
|
File without changes
|
|
File without changes
|
{loom_kernel-2.17.2 → loom_kernel-2.18.0}/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.17.2 → loom_kernel-2.18.0}/src/loom/ai/engines/pydantic_ai/providers/__init__.py
RENAMED
|
File without changes
|
{loom_kernel-2.17.2 → loom_kernel-2.18.0}/src/loom/ai/engines/pydantic_ai/providers/_shared.py
RENAMED
|
File without changes
|
{loom_kernel-2.17.2 → loom_kernel-2.18.0}/src/loom/ai/engines/pydantic_ai/providers/anthropic.py
RENAMED
|
File without changes
|
{loom_kernel-2.17.2 → loom_kernel-2.18.0}/src/loom/ai/engines/pydantic_ai/providers/bedrock.py
RENAMED
|
File without changes
|
{loom_kernel-2.17.2 → loom_kernel-2.18.0}/src/loom/ai/engines/pydantic_ai/providers/gateway.py
RENAMED
|
File without changes
|
{loom_kernel-2.17.2 → loom_kernel-2.18.0}/src/loom/ai/engines/pydantic_ai/providers/openai.py
RENAMED
|
File without changes
|
{loom_kernel-2.17.2 → loom_kernel-2.18.0}/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
|
|
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
|