quadkit 0.0.45__tar.gz → 0.0.46__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.
- {quadkit-0.0.45 → quadkit-0.0.46}/PKG-INFO +22 -22
- {quadkit-0.0.45 → quadkit-0.0.46}/README.md +17 -17
- {quadkit-0.0.45 → quadkit-0.0.46}/pyproject.toml +5 -5
- {quadkit-0.0.45 → quadkit-0.0.46}/src/quadkit/di/module/compiler/phases/collect.py +1 -1
- {quadkit-0.0.45 → quadkit-0.0.46}/src/quadkit/di/module/errors.py +4 -4
- {quadkit-0.0.45 → quadkit-0.0.46}/.gitignore +0 -0
- {quadkit-0.0.45 → quadkit-0.0.46}/LICENSE +0 -0
- {quadkit-0.0.45 → quadkit-0.0.46}/NOTICE +0 -0
- {quadkit-0.0.45 → quadkit-0.0.46}/example.yaml +0 -0
- {quadkit-0.0.45 → quadkit-0.0.46}/src/quadkit/__init__.py +0 -0
- {quadkit-0.0.45 → quadkit-0.0.46}/src/quadkit/app/__init__.py +0 -0
- {quadkit-0.0.45 → quadkit-0.0.46}/src/quadkit/app/asgi_lifespan.py +0 -0
- {quadkit-0.0.45 → quadkit-0.0.46}/src/quadkit/app/base.py +0 -0
- {quadkit-0.0.45 → quadkit-0.0.46}/src/quadkit/app/config/__init__.py +0 -0
- {quadkit-0.0.45 → quadkit-0.0.46}/src/quadkit/app/config/discovery.py +0 -0
- {quadkit-0.0.45 → quadkit-0.0.46}/src/quadkit/app/config/models.py +0 -0
- {quadkit-0.0.45 → quadkit-0.0.46}/src/quadkit/app/config_validation.py +0 -0
- {quadkit-0.0.45 → quadkit-0.0.46}/src/quadkit/app/constants.py +0 -0
- {quadkit-0.0.45 → quadkit-0.0.46}/src/quadkit/app/di/__init__.py +0 -0
- {quadkit-0.0.45 → quadkit-0.0.46}/src/quadkit/app/di/provider.py +0 -0
- {quadkit-0.0.45 → quadkit-0.0.46}/src/quadkit/app/discovery.py +0 -0
- {quadkit-0.0.45 → quadkit-0.0.46}/src/quadkit/app/events.py +0 -0
- {quadkit-0.0.45 → quadkit-0.0.46}/src/quadkit/app/exceptions.py +0 -0
- {quadkit-0.0.45 → quadkit-0.0.46}/src/quadkit/app/factory.py +0 -0
- {quadkit-0.0.45 → quadkit-0.0.46}/src/quadkit/app/health_probes.py +0 -0
- {quadkit-0.0.45 → quadkit-0.0.46}/src/quadkit/app/injectable_provider.py +0 -0
- {quadkit-0.0.45 → quadkit-0.0.46}/src/quadkit/app/invoker.py +0 -0
- {quadkit-0.0.45 → quadkit-0.0.46}/src/quadkit/app/lifecycle.py +0 -0
- {quadkit-0.0.45 → quadkit-0.0.46}/src/quadkit/app/module.py +0 -0
- {quadkit-0.0.45 → quadkit-0.0.46}/src/quadkit/app/pipeline.py +0 -0
- {quadkit-0.0.45 → quadkit-0.0.46}/src/quadkit/app/protocols.py +0 -0
- {quadkit-0.0.45 → quadkit-0.0.46}/src/quadkit/app/py.typed +0 -0
- {quadkit-0.0.45 → quadkit-0.0.46}/src/quadkit/app/runner.py +0 -0
- {quadkit-0.0.45 → quadkit-0.0.46}/src/quadkit/app/secrets.py +0 -0
- {quadkit-0.0.45 → quadkit-0.0.46}/src/quadkit/app/standard.py +0 -0
- {quadkit-0.0.45 → quadkit-0.0.46}/src/quadkit/app/types.py +0 -0
- {quadkit-0.0.45 → quadkit-0.0.46}/src/quadkit/codegen/__init__.py +0 -0
- {quadkit-0.0.45 → quadkit-0.0.46}/src/quadkit/codegen/base.py +0 -0
- {quadkit-0.0.45 → quadkit-0.0.46}/src/quadkit/codegen/field_types.py +0 -0
- {quadkit-0.0.45 → quadkit-0.0.46}/src/quadkit/concurrency/__init__.py +0 -0
- {quadkit-0.0.45 → quadkit-0.0.46}/src/quadkit/concurrency/bridges/__init__.py +0 -0
- {quadkit-0.0.45 → quadkit-0.0.46}/src/quadkit/concurrency/bridges/py.typed +0 -0
- {quadkit-0.0.45 → quadkit-0.0.46}/src/quadkit/concurrency/bridges/sync_bridge.py +0 -0
- {quadkit-0.0.45 → quadkit-0.0.46}/src/quadkit/concurrency/channels/__init__.py +0 -0
- {quadkit-0.0.45 → quadkit-0.0.46}/src/quadkit/concurrency/channels/channel.py +0 -0
- {quadkit-0.0.45 → quadkit-0.0.46}/src/quadkit/concurrency/channels/py.typed +0 -0
- {quadkit-0.0.45 → quadkit-0.0.46}/src/quadkit/concurrency/config.py +0 -0
- {quadkit-0.0.45 → quadkit-0.0.46}/src/quadkit/concurrency/constants.py +0 -0
- {quadkit-0.0.45 → quadkit-0.0.46}/src/quadkit/concurrency/di/__init__.py +0 -0
- {quadkit-0.0.45 → quadkit-0.0.46}/src/quadkit/concurrency/di/provider.py +0 -0
- {quadkit-0.0.45 → quadkit-0.0.46}/src/quadkit/concurrency/di/py.typed +0 -0
- {quadkit-0.0.45 → quadkit-0.0.46}/src/quadkit/concurrency/exceptions.py +0 -0
- {quadkit-0.0.45 → quadkit-0.0.46}/src/quadkit/concurrency/executors/__init__.py +0 -0
- {quadkit-0.0.45 → quadkit-0.0.46}/src/quadkit/concurrency/executors/dispatcher.py +0 -0
- {quadkit-0.0.45 → quadkit-0.0.46}/src/quadkit/concurrency/executors/parallel.py +0 -0
- {quadkit-0.0.45 → quadkit-0.0.46}/src/quadkit/concurrency/executors/py.typed +0 -0
- {quadkit-0.0.45 → quadkit-0.0.46}/src/quadkit/concurrency/executors/task_manager.py +0 -0
- {quadkit-0.0.45 → quadkit-0.0.46}/src/quadkit/concurrency/locks/__init__.py +0 -0
- {quadkit-0.0.45 → quadkit-0.0.46}/src/quadkit/concurrency/locks/py.typed +0 -0
- {quadkit-0.0.45 → quadkit-0.0.46}/src/quadkit/concurrency/locks/rwlock.py +0 -0
- {quadkit-0.0.45 → quadkit-0.0.46}/src/quadkit/concurrency/module.py +0 -0
- {quadkit-0.0.45 → quadkit-0.0.46}/src/quadkit/concurrency/py.typed +0 -0
- {quadkit-0.0.45 → quadkit-0.0.46}/src/quadkit/concurrency/task_utils.py +0 -0
- {quadkit-0.0.45 → quadkit-0.0.46}/src/quadkit/config/__init__.py +0 -0
- {quadkit-0.0.45 → quadkit-0.0.46}/src/quadkit/config/base.py +0 -0
- {quadkit-0.0.45 → quadkit-0.0.46}/src/quadkit/config/constants.py +0 -0
- {quadkit-0.0.45 → quadkit-0.0.46}/src/quadkit/config/di/__init__.py +0 -0
- {quadkit-0.0.45 → quadkit-0.0.46}/src/quadkit/config/di/provider.py +0 -0
- {quadkit-0.0.45 → quadkit-0.0.46}/src/quadkit/config/exceptions.py +0 -0
- {quadkit-0.0.45 → quadkit-0.0.46}/src/quadkit/config/lib/__init__.py +0 -0
- {quadkit-0.0.45 → quadkit-0.0.46}/src/quadkit/config/lib/merge.py +0 -0
- {quadkit-0.0.45 → quadkit-0.0.46}/src/quadkit/config/lib/registry.py +0 -0
- {quadkit-0.0.45 → quadkit-0.0.46}/src/quadkit/config/lib/sources.py +0 -0
- {quadkit-0.0.45 → quadkit-0.0.46}/src/quadkit/config/lib/validation.py +0 -0
- {quadkit-0.0.45 → quadkit-0.0.46}/src/quadkit/config/lib/watcher.py +0 -0
- {quadkit-0.0.45 → quadkit-0.0.46}/src/quadkit/config/main.py +0 -0
- {quadkit-0.0.45 → quadkit-0.0.46}/src/quadkit/config/protocols.py +0 -0
- {quadkit-0.0.45 → quadkit-0.0.46}/src/quadkit/config/secrets.py +0 -0
- {quadkit-0.0.45 → quadkit-0.0.46}/src/quadkit/config/types.py +0 -0
- {quadkit-0.0.45 → quadkit-0.0.46}/src/quadkit/constants.py +0 -0
- {quadkit-0.0.45 → quadkit-0.0.46}/src/quadkit/di/__init__.py +0 -0
- {quadkit-0.0.45 → quadkit-0.0.46}/src/quadkit/di/_graph.py +0 -0
- {quadkit-0.0.45 → quadkit-0.0.46}/src/quadkit/di/builder.py +0 -0
- {quadkit-0.0.45 → quadkit-0.0.46}/src/quadkit/di/config/__init__.py +0 -0
- {quadkit-0.0.45 → quadkit-0.0.46}/src/quadkit/di/config/models.py +0 -0
- {quadkit-0.0.45 → quadkit-0.0.46}/src/quadkit/di/constants.py +0 -0
- {quadkit-0.0.45 → quadkit-0.0.46}/src/quadkit/di/container/__init__.py +0 -0
- {quadkit-0.0.45 → quadkit-0.0.46}/src/quadkit/di/container/container.py +0 -0
- {quadkit-0.0.45 → quadkit-0.0.46}/src/quadkit/di/container/container_introspection.py +0 -0
- {quadkit-0.0.45 → quadkit-0.0.46}/src/quadkit/di/container/container_resolution.py +0 -0
- {quadkit-0.0.45 → quadkit-0.0.46}/src/quadkit/di/container/container_runtime.py +0 -0
- {quadkit-0.0.45 → quadkit-0.0.46}/src/quadkit/di/container/registrar.py +0 -0
- {quadkit-0.0.45 → quadkit-0.0.46}/src/quadkit/di/container/resolver.py +0 -0
- {quadkit-0.0.45 → quadkit-0.0.46}/src/quadkit/di/container/scope.py +0 -0
- {quadkit-0.0.45 → quadkit-0.0.46}/src/quadkit/di/container/validation.py +0 -0
- {quadkit-0.0.45 → quadkit-0.0.46}/src/quadkit/di/context.py +0 -0
- {quadkit-0.0.45 → quadkit-0.0.46}/src/quadkit/di/decorators.py +0 -0
- {quadkit-0.0.45 → quadkit-0.0.46}/src/quadkit/di/exceptions.py +0 -0
- {quadkit-0.0.45 → quadkit-0.0.46}/src/quadkit/di/extensions/__init__.py +0 -0
- {quadkit-0.0.45 → quadkit-0.0.46}/src/quadkit/di/extensions/aop_interceptors.py +0 -0
- {quadkit-0.0.45 → quadkit-0.0.46}/src/quadkit/di/extensions/discovery.py +0 -0
- {quadkit-0.0.45 → quadkit-0.0.46}/src/quadkit/di/extensions/interceptors.py +0 -0
- {quadkit-0.0.45 → quadkit-0.0.46}/src/quadkit/di/extensions/strategies.py +0 -0
- {quadkit-0.0.45 → quadkit-0.0.46}/src/quadkit/di/extensions/validator.py +0 -0
- {quadkit-0.0.45 → quadkit-0.0.46}/src/quadkit/di/function_provider.py +0 -0
- {quadkit-0.0.45 → quadkit-0.0.46}/src/quadkit/di/integration/__init__.py +0 -0
- {quadkit-0.0.45 → quadkit-0.0.46}/src/quadkit/di/integration/provider.py +0 -0
- {quadkit-0.0.45 → quadkit-0.0.46}/src/quadkit/di/markers.py +0 -0
- {quadkit-0.0.45 → quadkit-0.0.46}/src/quadkit/di/module/__init__.py +0 -0
- {quadkit-0.0.45 → quadkit-0.0.46}/src/quadkit/di/module/base.py +0 -0
- {quadkit-0.0.45 → quadkit-0.0.46}/src/quadkit/di/module/compiler/__init__.py +0 -0
- {quadkit-0.0.45 → quadkit-0.0.46}/src/quadkit/di/module/compiler/_graph_utils.py +0 -0
- {quadkit-0.0.45 → quadkit-0.0.46}/src/quadkit/di/module/compiler/compiler.py +0 -0
- {quadkit-0.0.45 → quadkit-0.0.46}/src/quadkit/di/module/compiler/context.py +0 -0
- {quadkit-0.0.45 → quadkit-0.0.46}/src/quadkit/di/module/compiler/phases/__init__.py +0 -0
- {quadkit-0.0.45 → quadkit-0.0.46}/src/quadkit/di/module/compiler/phases/detect_cycles.py +0 -0
- {quadkit-0.0.45 → quadkit-0.0.46}/src/quadkit/di/module/compiler/phases/expand.py +0 -0
- {quadkit-0.0.45 → quadkit-0.0.46}/src/quadkit/di/module/compiler/phases/order.py +0 -0
- {quadkit-0.0.45 → quadkit-0.0.46}/src/quadkit/di/module/compiler/phases/protocol.py +0 -0
- {quadkit-0.0.45 → quadkit-0.0.46}/src/quadkit/di/module/compiler/phases/validate.py +0 -0
- {quadkit-0.0.45 → quadkit-0.0.46}/src/quadkit/di/module/compiler/phases/visibility.py +0 -0
- {quadkit-0.0.45 → quadkit-0.0.46}/src/quadkit/di/module/constants.py +0 -0
- {quadkit-0.0.45 → quadkit-0.0.46}/src/quadkit/di/module/decorator.py +0 -0
- {quadkit-0.0.45 → quadkit-0.0.46}/src/quadkit/di/module/dynamic.py +0 -0
- {quadkit-0.0.45 → quadkit-0.0.46}/src/quadkit/di/module/graph.py +0 -0
- {quadkit-0.0.45 → quadkit-0.0.46}/src/quadkit/di/module/introspection.py +0 -0
- {quadkit-0.0.45 → quadkit-0.0.46}/src/quadkit/di/module/metadata.py +0 -0
- {quadkit-0.0.45 → quadkit-0.0.46}/src/quadkit/di/module/registry.py +0 -0
- {quadkit-0.0.45 → quadkit-0.0.46}/src/quadkit/di/orchestrator/__init__.py +0 -0
- {quadkit-0.0.45 → quadkit-0.0.46}/src/quadkit/di/orchestrator/events.py +0 -0
- {quadkit-0.0.45 → quadkit-0.0.46}/src/quadkit/di/orchestrator/health.py +0 -0
- {quadkit-0.0.45 → quadkit-0.0.46}/src/quadkit/di/orchestrator/lifecycle.py +0 -0
- {quadkit-0.0.45 → quadkit-0.0.46}/src/quadkit/di/orchestrator/orchestrator.py +0 -0
- {quadkit-0.0.45 → quadkit-0.0.46}/src/quadkit/di/orchestrator/registry.py +0 -0
- {quadkit-0.0.45 → quadkit-0.0.46}/src/quadkit/di/protocols.py +0 -0
- {quadkit-0.0.45 → quadkit-0.0.46}/src/quadkit/di/provider.py +0 -0
- {quadkit-0.0.45 → quadkit-0.0.46}/src/quadkit/di/provider_utils.py +0 -0
- {quadkit-0.0.45 → quadkit-0.0.46}/src/quadkit/di/py.typed +0 -0
- {quadkit-0.0.45 → quadkit-0.0.46}/src/quadkit/di/resolution/__init__.py +0 -0
- {quadkit-0.0.45 → quadkit-0.0.46}/src/quadkit/di/resolution/context.py +0 -0
- {quadkit-0.0.45 → quadkit-0.0.46}/src/quadkit/di/resolution/descriptor.py +0 -0
- {quadkit-0.0.45 → quadkit-0.0.46}/src/quadkit/di/resolution/diagnostics.py +0 -0
- {quadkit-0.0.45 → quadkit-0.0.46}/src/quadkit/di/resolution/injector.py +0 -0
- {quadkit-0.0.45 → quadkit-0.0.46}/src/quadkit/di/resolution/invoker.py +0 -0
- {quadkit-0.0.45 → quadkit-0.0.46}/src/quadkit/di/resolution/registry.py +0 -0
- {quadkit-0.0.45 → quadkit-0.0.46}/src/quadkit/di/resolution/resolver.py +0 -0
- {quadkit-0.0.45 → quadkit-0.0.46}/src/quadkit/di/resolution/store.py +0 -0
- {quadkit-0.0.45 → quadkit-0.0.46}/src/quadkit/di/resolution/type_hints.py +0 -0
- {quadkit-0.0.45 → quadkit-0.0.46}/src/quadkit/di/resolution/validator.py +0 -0
- {quadkit-0.0.45 → quadkit-0.0.46}/src/quadkit/di/types.py +0 -0
- {quadkit-0.0.45 → quadkit-0.0.46}/src/quadkit/domain/__init__.py +0 -0
- {quadkit-0.0.45 → quadkit-0.0.46}/src/quadkit/domain/constants.py +0 -0
- {quadkit-0.0.45 → quadkit-0.0.46}/src/quadkit/domain/exceptions.py +0 -0
- {quadkit-0.0.45 → quadkit-0.0.46}/src/quadkit/domain/models/__init__.py +0 -0
- {quadkit-0.0.45 → quadkit-0.0.46}/src/quadkit/domain/models/aggregate.py +0 -0
- {quadkit-0.0.45 → quadkit-0.0.46}/src/quadkit/domain/models/base.py +0 -0
- {quadkit-0.0.45 → quadkit-0.0.46}/src/quadkit/domain/models/coercion.py +0 -0
- {quadkit-0.0.45 → quadkit-0.0.46}/src/quadkit/domain/models/entity.py +0 -0
- {quadkit-0.0.45 → quadkit-0.0.46}/src/quadkit/domain/models/factory.py +0 -0
- {quadkit-0.0.45 → quadkit-0.0.46}/src/quadkit/domain/models/py.typed +0 -0
- {quadkit-0.0.45 → quadkit-0.0.46}/src/quadkit/domain/models/value_object.py +0 -0
- {quadkit-0.0.45 → quadkit-0.0.46}/src/quadkit/domain/module.py +0 -0
- {quadkit-0.0.45 → quadkit-0.0.46}/src/quadkit/domain/py.typed +0 -0
- {quadkit-0.0.45 → quadkit-0.0.46}/src/quadkit/domain/types.py +0 -0
- {quadkit-0.0.45 → quadkit-0.0.46}/src/quadkit/domain/unit_of_work.py +0 -0
- {quadkit-0.0.45 → quadkit-0.0.46}/src/quadkit/exceptions.py +0 -0
- {quadkit-0.0.45 → quadkit-0.0.46}/src/quadkit/hooks/__init__.py +0 -0
- {quadkit-0.0.45 → quadkit-0.0.46}/src/quadkit/hooks/ambient.py +0 -0
- {quadkit-0.0.45 → quadkit-0.0.46}/src/quadkit/hooks/registry.py +0 -0
- {quadkit-0.0.45 → quadkit-0.0.46}/src/quadkit/hooks/types.py +0 -0
- {quadkit-0.0.45 → quadkit-0.0.46}/src/quadkit/identity/__init__.py +0 -0
- {quadkit-0.0.45 → quadkit-0.0.46}/src/quadkit/identity/ambient.py +0 -0
- {quadkit-0.0.45 → quadkit-0.0.46}/src/quadkit/identity/config.py +0 -0
- {quadkit-0.0.45 → quadkit-0.0.46}/src/quadkit/identity/constants.py +0 -0
- {quadkit-0.0.45 → quadkit-0.0.46}/src/quadkit/identity/di/__init__.py +0 -0
- {quadkit-0.0.45 → quadkit-0.0.46}/src/quadkit/identity/di/provider.py +0 -0
- {quadkit-0.0.45 → quadkit-0.0.46}/src/quadkit/identity/generator.py +0 -0
- {quadkit-0.0.45 → quadkit-0.0.46}/src/quadkit/logging/README.md +0 -0
- {quadkit-0.0.45 → quadkit-0.0.46}/src/quadkit/logging/__init__.py +0 -0
- {quadkit-0.0.45 → quadkit-0.0.46}/src/quadkit/logging/config/__init__.py +0 -0
- {quadkit-0.0.45 → quadkit-0.0.46}/src/quadkit/logging/config/models.py +0 -0
- {quadkit-0.0.45 → quadkit-0.0.46}/src/quadkit/logging/config/redaction.py +0 -0
- {quadkit-0.0.45 → quadkit-0.0.46}/src/quadkit/logging/config/sampling.py +0 -0
- {quadkit-0.0.45 → quadkit-0.0.46}/src/quadkit/logging/configurator.py +0 -0
- {quadkit-0.0.45 → quadkit-0.0.46}/src/quadkit/logging/constants.py +0 -0
- {quadkit-0.0.45 → quadkit-0.0.46}/src/quadkit/logging/debug.py +0 -0
- {quadkit-0.0.45 → quadkit-0.0.46}/src/quadkit/logging/di/__init__.py +0 -0
- {quadkit-0.0.45 → quadkit-0.0.46}/src/quadkit/logging/di/provider.py +0 -0
- {quadkit-0.0.45 → quadkit-0.0.46}/src/quadkit/logging/factory.py +0 -0
- {quadkit-0.0.45 → quadkit-0.0.46}/src/quadkit/logging/processors.py +0 -0
- {quadkit-0.0.45 → quadkit-0.0.46}/src/quadkit/logging/redaction.py +0 -0
- {quadkit-0.0.45 → quadkit-0.0.46}/src/quadkit/logging/types.py +0 -0
- {quadkit-0.0.45 → quadkit-0.0.46}/src/quadkit/mapping/__init__.py +0 -0
- {quadkit-0.0.45 → quadkit-0.0.46}/src/quadkit/mapping/config.py +0 -0
- {quadkit-0.0.45 → quadkit-0.0.46}/src/quadkit/mapping/constants.py +0 -0
- {quadkit-0.0.45 → quadkit-0.0.46}/src/quadkit/mapping/core/__init__.py +0 -0
- {quadkit-0.0.45 → quadkit-0.0.46}/src/quadkit/mapping/core/mapper.py +0 -0
- {quadkit-0.0.45 → quadkit-0.0.46}/src/quadkit/mapping/di/__init__.py +0 -0
- {quadkit-0.0.45 → quadkit-0.0.46}/src/quadkit/mapping/di/provider.py +0 -0
- {quadkit-0.0.45 → quadkit-0.0.46}/src/quadkit/mapping/exceptions.py +0 -0
- {quadkit-0.0.45 → quadkit-0.0.46}/src/quadkit/mapping/module.py +0 -0
- {quadkit-0.0.45 → quadkit-0.0.46}/src/quadkit/mapping/protocols.py +0 -0
- {quadkit-0.0.45 → quadkit-0.0.46}/src/quadkit/mapping/py.typed +0 -0
- {quadkit-0.0.45 → quadkit-0.0.46}/src/quadkit/mapping/types.py +0 -0
- {quadkit-0.0.45 → quadkit-0.0.46}/src/quadkit/middleware/__init__.py +0 -0
- {quadkit-0.0.45 → quadkit-0.0.46}/src/quadkit/middleware/builtins/__init__.py +0 -0
- {quadkit-0.0.45 → quadkit-0.0.46}/src/quadkit/middleware/builtins/caching.py +0 -0
- {quadkit-0.0.45 → quadkit-0.0.46}/src/quadkit/middleware/builtins/di.py +0 -0
- {quadkit-0.0.45 → quadkit-0.0.46}/src/quadkit/middleware/builtins/observability.py +0 -0
- {quadkit-0.0.45 → quadkit-0.0.46}/src/quadkit/middleware/builtins/resilience.py +0 -0
- {quadkit-0.0.45 → quadkit-0.0.46}/src/quadkit/middleware/builtins/routing.py +0 -0
- {quadkit-0.0.45 → quadkit-0.0.46}/src/quadkit/middleware/builtins/validation.py +0 -0
- {quadkit-0.0.45 → quadkit-0.0.46}/src/quadkit/middleware/config.py +0 -0
- {quadkit-0.0.45 → quadkit-0.0.46}/src/quadkit/middleware/constants.py +0 -0
- {quadkit-0.0.45 → quadkit-0.0.46}/src/quadkit/middleware/core/__init__.py +0 -0
- {quadkit-0.0.45 → quadkit-0.0.46}/src/quadkit/middleware/core/chain.py +0 -0
- {quadkit-0.0.45 → quadkit-0.0.46}/src/quadkit/middleware/core/exception_filters.py +0 -0
- {quadkit-0.0.45 → quadkit-0.0.46}/src/quadkit/middleware/core/registry.py +0 -0
- {quadkit-0.0.45 → quadkit-0.0.46}/src/quadkit/middleware/di/__init__.py +0 -0
- {quadkit-0.0.45 → quadkit-0.0.46}/src/quadkit/middleware/di/provider.py +0 -0
- {quadkit-0.0.45 → quadkit-0.0.46}/src/quadkit/middleware/exceptions.py +0 -0
- {quadkit-0.0.45 → quadkit-0.0.46}/src/quadkit/middleware/module.py +0 -0
- {quadkit-0.0.45 → quadkit-0.0.46}/src/quadkit/middleware/types.py +0 -0
- {quadkit-0.0.45 → quadkit-0.0.46}/src/quadkit/module.py +0 -0
- {quadkit-0.0.45 → quadkit-0.0.46}/src/quadkit/observability/__init__.py +0 -0
- {quadkit-0.0.45 → quadkit-0.0.46}/src/quadkit/observability/core.py +0 -0
- {quadkit-0.0.45 → quadkit-0.0.46}/src/quadkit/observability/di/__init__.py +0 -0
- {quadkit-0.0.45 → quadkit-0.0.46}/src/quadkit/observability/di/sub_providers/__init__.py +0 -0
- {quadkit-0.0.45 → quadkit-0.0.46}/src/quadkit/observability/di/sub_providers/observability.py +0 -0
- {quadkit-0.0.45 → quadkit-0.0.46}/src/quadkit/plugins/__init__.py +0 -0
- {quadkit-0.0.45 → quadkit-0.0.46}/src/quadkit/plugins/discovery.py +0 -0
- {quadkit-0.0.45 → quadkit-0.0.46}/src/quadkit/plugins/engine.py +0 -0
- {quadkit-0.0.45 → quadkit-0.0.46}/src/quadkit/plugins/exceptions.py +0 -0
- {quadkit-0.0.45 → quadkit-0.0.46}/src/quadkit/plugins/module.py +0 -0
- {quadkit-0.0.45 → quadkit-0.0.46}/src/quadkit/plugins/state.py +0 -0
- {quadkit-0.0.45 → quadkit-0.0.46}/src/quadkit/primitives/__init__.py +0 -0
- {quadkit-0.0.45 → quadkit-0.0.46}/src/quadkit/primitives/builder.py +0 -0
- {quadkit-0.0.45 → quadkit-0.0.46}/src/quadkit/primitives/clock.py +0 -0
- {quadkit-0.0.45 → quadkit-0.0.46}/src/quadkit/primitives/constants.py +0 -0
- {quadkit-0.0.45 → quadkit-0.0.46}/src/quadkit/primitives/context.py +0 -0
- {quadkit-0.0.45 → quadkit-0.0.46}/src/quadkit/primitives/context_keys.py +0 -0
- {quadkit-0.0.45 → quadkit-0.0.46}/src/quadkit/primitives/context_registry.py +0 -0
- {quadkit-0.0.45 → quadkit-0.0.46}/src/quadkit/primitives/data.py +0 -0
- {quadkit-0.0.45 → quadkit-0.0.46}/src/quadkit/primitives/di/__init__.py +0 -0
- {quadkit-0.0.45 → quadkit-0.0.46}/src/quadkit/primitives/di/provider.py +0 -0
- {quadkit-0.0.45 → quadkit-0.0.46}/src/quadkit/primitives/exceptions.py +0 -0
- {quadkit-0.0.45 → quadkit-0.0.46}/src/quadkit/primitives/lazy.py +0 -0
- {quadkit-0.0.45 → quadkit-0.0.46}/src/quadkit/primitives/pipeline.py +0 -0
- {quadkit-0.0.45 → quadkit-0.0.46}/src/quadkit/primitives/protocols.py +0 -0
- {quadkit-0.0.45 → quadkit-0.0.46}/src/quadkit/primitives/registry/__init__.py +0 -0
- {quadkit-0.0.45 → quadkit-0.0.46}/src/quadkit/primitives/registry/core.py +0 -0
- {quadkit-0.0.45 → quadkit-0.0.46}/src/quadkit/primitives/registry/introspection.py +0 -0
- {quadkit-0.0.45 → quadkit-0.0.46}/src/quadkit/primitives/trusted_html.py +0 -0
- {quadkit-0.0.45 → quadkit-0.0.46}/src/quadkit/primitives/types.py +0 -0
- {quadkit-0.0.45 → quadkit-0.0.46}/src/quadkit/primitives/typing.py +0 -0
- {quadkit-0.0.45 → quadkit-0.0.46}/src/quadkit/py.typed +0 -0
- {quadkit-0.0.45 → quadkit-0.0.46}/src/quadkit/reactive/__init__.py +0 -0
- {quadkit-0.0.45 → quadkit-0.0.46}/src/quadkit/reactive/core.py +0 -0
- {quadkit-0.0.45 → quadkit-0.0.46}/src/quadkit/reactive/exceptions.py +0 -0
- {quadkit-0.0.45 → quadkit-0.0.46}/src/quadkit/reactive/operators/__init__.py +0 -0
- {quadkit-0.0.45 → quadkit-0.0.46}/src/quadkit/reactive/operators/control.py +0 -0
- {quadkit-0.0.45 → quadkit-0.0.46}/src/quadkit/reactive/operators/time_ops.py +0 -0
- {quadkit-0.0.45 → quadkit-0.0.46}/src/quadkit/reactive/operators/transform.py +0 -0
- {quadkit-0.0.45 → quadkit-0.0.46}/src/quadkit/reactive/retry.py +0 -0
- {quadkit-0.0.45 → quadkit-0.0.46}/src/quadkit/reactive/subjects.py +0 -0
- {quadkit-0.0.45 → quadkit-0.0.46}/src/quadkit/result/__init__.py +0 -0
- {quadkit-0.0.45 → quadkit-0.0.46}/src/quadkit/result/_pipeline.py +0 -0
- {quadkit-0.0.45 → quadkit-0.0.46}/src/quadkit/result/errors.py +0 -0
- {quadkit-0.0.45 → quadkit-0.0.46}/src/quadkit/result/types.py +0 -0
- {quadkit-0.0.45 → quadkit-0.0.46}/src/quadkit/result/utils.py +0 -0
- {quadkit-0.0.45 → quadkit-0.0.46}/src/quadkit/saga/__init__.py +0 -0
- {quadkit-0.0.45 → quadkit-0.0.46}/src/quadkit/saga/base.py +0 -0
- {quadkit-0.0.45 → quadkit-0.0.46}/src/quadkit/saga/canonical_json.py +0 -0
- {quadkit-0.0.45 → quadkit-0.0.46}/src/quadkit/saga/content_addressed.py +0 -0
- {quadkit-0.0.45 → quadkit-0.0.46}/src/quadkit/security/__init__.py +0 -0
- {quadkit-0.0.45 → quadkit-0.0.46}/src/quadkit/security/config.py +0 -0
- {quadkit-0.0.45 → quadkit-0.0.46}/src/quadkit/security/constants.py +0 -0
- {quadkit-0.0.45 → quadkit-0.0.46}/src/quadkit/security/decorators.py +0 -0
- {quadkit-0.0.45 → quadkit-0.0.46}/src/quadkit/security/encryption/__init__.py +0 -0
- {quadkit-0.0.45 → quadkit-0.0.46}/src/quadkit/security/encryption/service.py +0 -0
- {quadkit-0.0.45 → quadkit-0.0.46}/src/quadkit/security/events.py +0 -0
- {quadkit-0.0.45 → quadkit-0.0.46}/src/quadkit/security/exceptions.py +0 -0
- {quadkit-0.0.45 → quadkit-0.0.46}/src/quadkit/security/guards/__init__.py +0 -0
- {quadkit-0.0.45 → quadkit-0.0.46}/src/quadkit/security/guards/chain.py +0 -0
- {quadkit-0.0.45 → quadkit-0.0.46}/src/quadkit/security/guards/decorator.py +0 -0
- {quadkit-0.0.45 → quadkit-0.0.46}/src/quadkit/security/hashing/__init__.py +0 -0
- {quadkit-0.0.45 → quadkit-0.0.46}/src/quadkit/security/hashing/ambient.py +0 -0
- {quadkit-0.0.45 → quadkit-0.0.46}/src/quadkit/security/hashing/digest.py +0 -0
- {quadkit-0.0.45 → quadkit-0.0.46}/src/quadkit/security/hashing/kdf.py +0 -0
- {quadkit-0.0.45 → quadkit-0.0.46}/src/quadkit/security/hooks.py +0 -0
- {quadkit-0.0.45 → quadkit-0.0.46}/src/quadkit/security/provider.py +0 -0
- {quadkit-0.0.45 → quadkit-0.0.46}/src/quadkit/security/py.typed +0 -0
- {quadkit-0.0.45 → quadkit-0.0.46}/src/quadkit/security/sanitization/__init__.py +0 -0
- {quadkit-0.0.45 → quadkit-0.0.46}/src/quadkit/security/sanitization/filename.py +0 -0
- {quadkit-0.0.45 → quadkit-0.0.46}/src/quadkit/security/sanitization/html.py +0 -0
- {quadkit-0.0.45 → quadkit-0.0.46}/src/quadkit/security/sanitization/sanitizer.py +0 -0
- {quadkit-0.0.45 → quadkit-0.0.46}/src/quadkit/security/sanitization/url.py +0 -0
- {quadkit-0.0.45 → quadkit-0.0.46}/src/quadkit/security/secrets/__init__.py +0 -0
- {quadkit-0.0.45 → quadkit-0.0.46}/src/quadkit/security/secrets/rotation.py +0 -0
- {quadkit-0.0.45 → quadkit-0.0.46}/src/quadkit/security/secrets/store.py +0 -0
- {quadkit-0.0.45 → quadkit-0.0.46}/src/quadkit/security/secrets/types.py +0 -0
- {quadkit-0.0.45 → quadkit-0.0.46}/src/quadkit/security/types.py +0 -0
- {quadkit-0.0.45 → quadkit-0.0.46}/src/quadkit/serialization/__init__.py +0 -0
- {quadkit-0.0.45 → quadkit-0.0.46}/src/quadkit/serialization/backends/__init__.py +0 -0
- {quadkit-0.0.45 → quadkit-0.0.46}/src/quadkit/serialization/backends/json.py +0 -0
- {quadkit-0.0.45 → quadkit-0.0.46}/src/quadkit/serialization/backends/py.typed +0 -0
- {quadkit-0.0.45 → quadkit-0.0.46}/src/quadkit/serialization/config.py +0 -0
- {quadkit-0.0.45 → quadkit-0.0.46}/src/quadkit/serialization/constants.py +0 -0
- {quadkit-0.0.45 → quadkit-0.0.46}/src/quadkit/serialization/di/__init__.py +0 -0
- {quadkit-0.0.45 → quadkit-0.0.46}/src/quadkit/serialization/di/provider.py +0 -0
- {quadkit-0.0.45 → quadkit-0.0.46}/src/quadkit/serialization/di/py.typed +0 -0
- {quadkit-0.0.45 → quadkit-0.0.46}/src/quadkit/serialization/domain/__init__.py +0 -0
- {quadkit-0.0.45 → quadkit-0.0.46}/src/quadkit/serialization/domain/domain.py +0 -0
- {quadkit-0.0.45 → quadkit-0.0.46}/src/quadkit/serialization/domain/py.typed +0 -0
- {quadkit-0.0.45 → quadkit-0.0.46}/src/quadkit/serialization/exceptions.py +0 -0
- {quadkit-0.0.45 → quadkit-0.0.46}/src/quadkit/serialization/module.py +0 -0
- {quadkit-0.0.45 → quadkit-0.0.46}/src/quadkit/serialization/py.typed +0 -0
- {quadkit-0.0.45 → quadkit-0.0.46}/src/quadkit/serialization/registry/__init__.py +0 -0
- {quadkit-0.0.45 → quadkit-0.0.46}/src/quadkit/serialization/registry/py.typed +0 -0
- {quadkit-0.0.45 → quadkit-0.0.46}/src/quadkit/serialization/registry/registry.py +0 -0
- {quadkit-0.0.45 → quadkit-0.0.46}/src/quadkit/serialization/schema/__init__.py +0 -0
- {quadkit-0.0.45 → quadkit-0.0.46}/src/quadkit/serialization/schema/py.typed +0 -0
- {quadkit-0.0.45 → quadkit-0.0.46}/src/quadkit/serialization/schema/schema.py +0 -0
- {quadkit-0.0.45 → quadkit-0.0.46}/src/quadkit/serialization/types.py +0 -0
- {quadkit-0.0.45 → quadkit-0.0.46}/src/quadkit/types.py +0 -0
- {quadkit-0.0.45 → quadkit-0.0.46}/src/quadkit/validation/__init__.py +0 -0
- {quadkit-0.0.45 → quadkit-0.0.46}/src/quadkit/validation/config.py +0 -0
- {quadkit-0.0.45 → quadkit-0.0.46}/src/quadkit/validation/constants.py +0 -0
- {quadkit-0.0.45 → quadkit-0.0.46}/src/quadkit/validation/decorators.py +0 -0
- {quadkit-0.0.45 → quadkit-0.0.46}/src/quadkit/validation/engine/__init__.py +0 -0
- {quadkit-0.0.45 → quadkit-0.0.46}/src/quadkit/validation/engine/coercion.py +0 -0
- {quadkit-0.0.45 → quadkit-0.0.46}/src/quadkit/validation/engine/py.typed +0 -0
- {quadkit-0.0.45 → quadkit-0.0.46}/src/quadkit/validation/engine/validator.py +0 -0
- {quadkit-0.0.45 → quadkit-0.0.46}/src/quadkit/validation/exceptions.py +0 -0
- {quadkit-0.0.45 → quadkit-0.0.46}/src/quadkit/validation/module.py +0 -0
- {quadkit-0.0.45 → quadkit-0.0.46}/src/quadkit/validation/py.typed +0 -0
- {quadkit-0.0.45 → quadkit-0.0.46}/src/quadkit/validation/rules/__init__.py +0 -0
- {quadkit-0.0.45 → quadkit-0.0.46}/src/quadkit/validation/rules/py.typed +0 -0
- {quadkit-0.0.45 → quadkit-0.0.46}/src/quadkit/validation/rules/rules.py +0 -0
- {quadkit-0.0.45 → quadkit-0.0.46}/src/quadkit/validation/schema/__init__.py +0 -0
- {quadkit-0.0.45 → quadkit-0.0.46}/src/quadkit/validation/schema/fields.py +0 -0
- {quadkit-0.0.45 → quadkit-0.0.46}/src/quadkit/validation/schema/introspection.py +0 -0
- {quadkit-0.0.45 → quadkit-0.0.46}/src/quadkit/validation/schema/py.typed +0 -0
- {quadkit-0.0.45 → quadkit-0.0.46}/src/quadkit/validation/types.py +0 -0
- {quadkit-0.0.45 → quadkit-0.0.46}/tests/conftest.py +0 -0
- {quadkit-0.0.45 → quadkit-0.0.46}/tests/integration/di/__init__.py +0 -0
- {quadkit-0.0.45 → quadkit-0.0.46}/tests/integration/di/module/__init__.py +0 -0
- {quadkit-0.0.45 → quadkit-0.0.46}/tests/integration/di/module/_fixtures.py +0 -0
- {quadkit-0.0.45 → quadkit-0.0.46}/tests/integration/di/module/conftest.py +0 -0
- {quadkit-0.0.45 → quadkit-0.0.46}/tests/integration/di/module/test_boot_level.py +0 -0
- {quadkit-0.0.45 → quadkit-0.0.46}/tests/integration/di/module/test_cross_method.py +0 -0
- {quadkit-0.0.45 → quadkit-0.0.46}/tests/integration/di/module/test_dependency_chain.py +0 -0
- {quadkit-0.0.45 → quadkit-0.0.46}/tests/integration/di/module/test_exports.py +0 -0
- {quadkit-0.0.45 → quadkit-0.0.46}/tests/integration/di/module/test_importers.py +0 -0
- {quadkit-0.0.45 → quadkit-0.0.46}/tests/integration/di/module/test_module_health_integration.py +0 -0
- {quadkit-0.0.45 → quadkit-0.0.46}/tests/integration/di/module/test_module_lifecycle_integration.py +0 -0
- {quadkit-0.0.45 → quadkit-0.0.46}/tests/integration/di/module/test_name_lookup.py +0 -0
- {quadkit-0.0.45 → quadkit-0.0.46}/tests/integration/di/module/test_stub_enforcement_integration.py +0 -0
- {quadkit-0.0.45 → quadkit-0.0.46}/tests/integration/di/test_visibility_enforcement_e2e.py +0 -0
- {quadkit-0.0.45 → quadkit-0.0.46}/tests/integration/mapping/test_mapping_lifecycle.py +0 -0
- {quadkit-0.0.45 → quadkit-0.0.46}/tests/integration/middleware/test_middleware_lifecycle.py +0 -0
- {quadkit-0.0.45 → quadkit-0.0.46}/tests/integration/test_corrected_patterns_integration.py +0 -0
- {quadkit-0.0.45 → quadkit-0.0.46}/tests/integration/test_database_integration.py +0 -0
- {quadkit-0.0.45 → quadkit-0.0.46}/tests/integration/test_full_pipeline.py +0 -0
- {quadkit-0.0.45 → quadkit-0.0.46}/tests/integration/test_monitor_config_integration.py +0 -0
- {quadkit-0.0.45 → quadkit-0.0.46}/tests/test.md +0 -0
- {quadkit-0.0.45 → quadkit-0.0.46}/tests/test_import_diagnostic.py +0 -0
- {quadkit-0.0.45 → quadkit-0.0.46}/tests/unit/__init__.py +0 -0
- {quadkit-0.0.45 → quadkit-0.0.46}/tests/unit/aop/test_interceptor_timeout.py +0 -0
- {quadkit-0.0.45 → quadkit-0.0.46}/tests/unit/clock/test_clock.py +0 -0
- {quadkit-0.0.45 → quadkit-0.0.46}/tests/unit/codegen/__init__.py +0 -0
- {quadkit-0.0.45 → quadkit-0.0.46}/tests/unit/codegen/test_generator_base.py +0 -0
- {quadkit-0.0.45 → quadkit-0.0.46}/tests/unit/codegen/test_staged_generation.py +0 -0
- {quadkit-0.0.45 → quadkit-0.0.46}/tests/unit/codegen/test_template_overrides.py +0 -0
- {quadkit-0.0.45 → quadkit-0.0.46}/tests/unit/concurrency/conftest.py +0 -0
- {quadkit-0.0.45 → quadkit-0.0.46}/tests/unit/concurrency/test_bounded_channel.py +0 -0
- {quadkit-0.0.45 → quadkit-0.0.46}/tests/unit/concurrency/test_channel.py +0 -0
- {quadkit-0.0.45 → quadkit-0.0.46}/tests/unit/concurrency/test_channel_close_wakes_receivers.py +0 -0
- {quadkit-0.0.45 → quadkit-0.0.46}/tests/unit/concurrency/test_concurrency_config.py +0 -0
- {quadkit-0.0.45 → quadkit-0.0.46}/tests/unit/concurrency/test_concurrency_constants.py +0 -0
- {quadkit-0.0.45 → quadkit-0.0.46}/tests/unit/concurrency/test_concurrency_constants_new.py +0 -0
- {quadkit-0.0.45 → quadkit-0.0.46}/tests/unit/concurrency/test_concurrency_exceptions.py +0 -0
- {quadkit-0.0.45 → quadkit-0.0.46}/tests/unit/concurrency/test_concurrency_parallel.py +0 -0
- {quadkit-0.0.45 → quadkit-0.0.46}/tests/unit/concurrency/test_concurrency_provider_config.py +0 -0
- {quadkit-0.0.45 → quadkit-0.0.46}/tests/unit/concurrency/test_concurrency_rwlock.py +0 -0
- {quadkit-0.0.45 → quadkit-0.0.46}/tests/unit/concurrency/test_config_pool.py +0 -0
- {quadkit-0.0.45 → quadkit-0.0.46}/tests/unit/concurrency/test_dispatcher.py +0 -0
- {quadkit-0.0.45 → quadkit-0.0.46}/tests/unit/concurrency/test_sync_bridge.py +0 -0
- {quadkit-0.0.45 → quadkit-0.0.46}/tests/unit/concurrency/test_task_manager.py +0 -0
- {quadkit-0.0.45 → quadkit-0.0.46}/tests/unit/concurrency/test_task_utils.py +0 -0
- {quadkit-0.0.45 → quadkit-0.0.46}/tests/unit/config/test_config_constants_new.py +0 -0
- {quadkit-0.0.45 → quadkit-0.0.46}/tests/unit/config/test_config_protocols.py +0 -0
- {quadkit-0.0.45 → quadkit-0.0.46}/tests/unit/config/test_config_sources.py +0 -0
- {quadkit-0.0.45 → quadkit-0.0.46}/tests/unit/config/test_env_interpolation.py +0 -0
- {quadkit-0.0.45 → quadkit-0.0.46}/tests/unit/config/test_loader_fail_fast.py +0 -0
- {quadkit-0.0.45 → quadkit-0.0.46}/tests/unit/config/test_logging_redaction_config.py +0 -0
- {quadkit-0.0.45 → quadkit-0.0.46}/tests/unit/config/test_logging_sampling.py +0 -0
- {quadkit-0.0.45 → quadkit-0.0.46}/tests/unit/config/test_profile_overlay.py +0 -0
- {quadkit-0.0.45 → quadkit-0.0.46}/tests/unit/config/test_scoping.py +0 -0
- {quadkit-0.0.45 → quadkit-0.0.46}/tests/unit/config/test_secrets_validator.py +0 -0
- {quadkit-0.0.45 → quadkit-0.0.46}/tests/unit/config/test_strict_bool_env.py +0 -0
- {quadkit-0.0.45 → quadkit-0.0.46}/tests/unit/config/test_strict_sections.py +0 -0
- {quadkit-0.0.45 → quadkit-0.0.46}/tests/unit/core/test_context_correlation.py +0 -0
- {quadkit-0.0.45 → quadkit-0.0.46}/tests/unit/core/test_core_constants.py +0 -0
- {quadkit-0.0.45 → quadkit-0.0.46}/tests/unit/core/test_core_types.py +0 -0
- {quadkit-0.0.45 → quadkit-0.0.46}/tests/unit/core/test_request_context_di.py +0 -0
- {quadkit-0.0.45 → quadkit-0.0.46}/tests/unit/core/test_typing.py +0 -0
- {quadkit-0.0.45 → quadkit-0.0.46}/tests/unit/core/validation/test_protocols.py +0 -0
- {quadkit-0.0.45 → quadkit-0.0.46}/tests/unit/di/__init__.py +0 -0
- {quadkit-0.0.45 → quadkit-0.0.46}/tests/unit/di/integration/test_provider.py +0 -0
- {quadkit-0.0.45 → quadkit-0.0.46}/tests/unit/di/module/__init__.py +0 -0
- {quadkit-0.0.45 → quadkit-0.0.46}/tests/unit/di/module/conftest.py +0 -0
- {quadkit-0.0.45 → quadkit-0.0.46}/tests/unit/di/module/test_compiler.py +0 -0
- {quadkit-0.0.45 → quadkit-0.0.46}/tests/unit/di/module/test_decorator.py +0 -0
- {quadkit-0.0.45 → quadkit-0.0.46}/tests/unit/di/module/test_dynamic.py +0 -0
- {quadkit-0.0.45 → quadkit-0.0.46}/tests/unit/di/module/test_errors.py +0 -0
- {quadkit-0.0.45 → quadkit-0.0.46}/tests/unit/di/module/test_global.py +0 -0
- {quadkit-0.0.45 → quadkit-0.0.46}/tests/unit/di/module/test_graph_reflection.py +0 -0
- {quadkit-0.0.45 → quadkit-0.0.46}/tests/unit/di/module/test_health_graph.py +0 -0
- {quadkit-0.0.45 → quadkit-0.0.46}/tests/unit/di/module/test_integration.py +0 -0
- {quadkit-0.0.45 → quadkit-0.0.46}/tests/unit/di/module/test_introspection.py +0 -0
- {quadkit-0.0.45 → quadkit-0.0.46}/tests/unit/di/module/test_lifecycle.py +0 -0
- {quadkit-0.0.45 → quadkit-0.0.46}/tests/unit/di/module/test_module_lifecycle.py +0 -0
- {quadkit-0.0.45 → quadkit-0.0.46}/tests/unit/di/module/test_reexport.py +0 -0
- {quadkit-0.0.45 → quadkit-0.0.46}/tests/unit/di/module/test_registry.py +0 -0
- {quadkit-0.0.45 → quadkit-0.0.46}/tests/unit/di/module/test_stub_compiler.py +0 -0
- {quadkit-0.0.45 → quadkit-0.0.46}/tests/unit/di/module/test_stub_decorator.py +0 -0
- {quadkit-0.0.45 → quadkit-0.0.46}/tests/unit/di/module/test_visibility.py +0 -0
- {quadkit-0.0.45 → quadkit-0.0.46}/tests/unit/di/test_advanced_features.py +0 -0
- {quadkit-0.0.45 → quadkit-0.0.46}/tests/unit/di/test_container_basics.py +0 -0
- {quadkit-0.0.45 → quadkit-0.0.46}/tests/unit/di/test_container_builder.py +0 -0
- {quadkit-0.0.45 → quadkit-0.0.46}/tests/unit/di/test_container_freeze.py +0 -0
- {quadkit-0.0.45 → quadkit-0.0.46}/tests/unit/di/test_container_hardening.py +0 -0
- {quadkit-0.0.45 → quadkit-0.0.46}/tests/unit/di/test_container_visibility.py +0 -0
- {quadkit-0.0.45 → quadkit-0.0.46}/tests/unit/di/test_decorators.py +0 -0
- {quadkit-0.0.45 → quadkit-0.0.46}/tests/unit/di/test_descriptor.py +0 -0
- {quadkit-0.0.45 → quadkit-0.0.46}/tests/unit/di/test_di_constants_new.py +0 -0
- {quadkit-0.0.45 → quadkit-0.0.46}/tests/unit/di/test_di_decorators.py +0 -0
- {quadkit-0.0.45 → quadkit-0.0.46}/tests/unit/di/test_di_provider_config_wiring.py +0 -0
- {quadkit-0.0.45 → quadkit-0.0.46}/tests/unit/di/test_diagnostics.py +0 -0
- {quadkit-0.0.45 → quadkit-0.0.46}/tests/unit/di/test_extensions_discovery.py +0 -0
- {quadkit-0.0.45 → quadkit-0.0.46}/tests/unit/di/test_extensions_validator.py +0 -0
- {quadkit-0.0.45 → quadkit-0.0.46}/tests/unit/di/test_function_provider_boot.py +0 -0
- {quadkit-0.0.45 → quadkit-0.0.46}/tests/unit/di/test_graph_validator.py +0 -0
- {quadkit-0.0.45 → quadkit-0.0.46}/tests/unit/di/test_interceptor_registry.py +0 -0
- {quadkit-0.0.45 → quadkit-0.0.46}/tests/unit/di/test_invoker_unit.py +0 -0
- {quadkit-0.0.45 → quadkit-0.0.46}/tests/unit/di/test_lifecycle_orchestrator.py +0 -0
- {quadkit-0.0.45 → quadkit-0.0.46}/tests/unit/di/test_module_validation.py +0 -0
- {quadkit-0.0.45 → quadkit-0.0.46}/tests/unit/di/test_module_visibility_boot.py +0 -0
- {quadkit-0.0.45 → quadkit-0.0.46}/tests/unit/di/test_module_visibility_enforcement.py +0 -0
- {quadkit-0.0.45 → quadkit-0.0.46}/tests/unit/di/test_named_binding.py +0 -0
- {quadkit-0.0.45 → quadkit-0.0.46}/tests/unit/di/test_orchestrator_health.py +0 -0
- {quadkit-0.0.45 → quadkit-0.0.46}/tests/unit/di/test_provider_basics.py +0 -0
- {quadkit-0.0.45 → quadkit-0.0.46}/tests/unit/di/test_provider_config_injection.py +0 -0
- {quadkit-0.0.45 → quadkit-0.0.46}/tests/unit/di/test_provider_conformance.py +0 -0
- {quadkit-0.0.45 → quadkit-0.0.46}/tests/unit/di/test_provider_orchestration.py +0 -0
- {quadkit-0.0.45 → quadkit-0.0.46}/tests/unit/di/test_provider_reset_state.py +0 -0
- {quadkit-0.0.45 → quadkit-0.0.46}/tests/unit/di/test_provider_utils.py +0 -0
- {quadkit-0.0.45 → quadkit-0.0.46}/tests/unit/di/test_scope_concurrency.py +0 -0
- {quadkit-0.0.45 → quadkit-0.0.46}/tests/unit/di/test_scope_manager.py +0 -0
- {quadkit-0.0.45 → quadkit-0.0.46}/tests/unit/di/test_service_store.py +0 -0
- {quadkit-0.0.45 → quadkit-0.0.46}/tests/unit/di/test_type_hints.py +0 -0
- {quadkit-0.0.45 → quadkit-0.0.46}/tests/unit/di/test_validation.py +0 -0
- {quadkit-0.0.45 → quadkit-0.0.46}/tests/unit/domain/conftest.py +0 -0
- {quadkit-0.0.45 → quadkit-0.0.46}/tests/unit/domain/test_aggregates.py +0 -0
- {quadkit-0.0.45 → quadkit-0.0.46}/tests/unit/domain/test_domain.py +0 -0
- {quadkit-0.0.45 → quadkit-0.0.46}/tests/unit/domain/test_domain_constants.py +0 -0
- {quadkit-0.0.45 → quadkit-0.0.46}/tests/unit/domain/test_domain_exceptions.py +0 -0
- {quadkit-0.0.45 → quadkit-0.0.46}/tests/unit/domain/test_domain_hydration.py +0 -0
- {quadkit-0.0.45 → quadkit-0.0.46}/tests/unit/domain/test_domain_init.py +0 -0
- {quadkit-0.0.45 → quadkit-0.0.46}/tests/unit/domain/test_domain_model_strict.py +0 -0
- {quadkit-0.0.45 → quadkit-0.0.46}/tests/unit/domain/test_domain_module.py +0 -0
- {quadkit-0.0.45 → quadkit-0.0.46}/tests/unit/domain/test_models_factory.py +0 -0
- {quadkit-0.0.45 → quadkit-0.0.46}/tests/unit/domain/test_value_object.py +0 -0
- {quadkit-0.0.45 → quadkit-0.0.46}/tests/unit/identity/test_identity.py +0 -0
- {quadkit-0.0.45 → quadkit-0.0.46}/tests/unit/logging/test_logging_constants_new.py +0 -0
- {quadkit-0.0.45 → quadkit-0.0.46}/tests/unit/mapping/conftest.py +0 -0
- {quadkit-0.0.45 → quadkit-0.0.46}/tests/unit/mapping/test_auto_map.py +0 -0
- {quadkit-0.0.45 → quadkit-0.0.46}/tests/unit/mapping/test_auto_map_dataclass.py +0 -0
- {quadkit-0.0.45 → quadkit-0.0.46}/tests/unit/mapping/test_exceptions.py +0 -0
- {quadkit-0.0.45 → quadkit-0.0.46}/tests/unit/mapping/test_mapping_constants_new.py +0 -0
- {quadkit-0.0.45 → quadkit-0.0.46}/tests/unit/mapping/test_mapping_exceptions.py +0 -0
- {quadkit-0.0.45 → quadkit-0.0.46}/tests/unit/mapping/test_mapping_mapper.py +0 -0
- {quadkit-0.0.45 → quadkit-0.0.46}/tests/unit/mapping/test_mapping_module.py +0 -0
- {quadkit-0.0.45 → quadkit-0.0.46}/tests/unit/mapping/test_mapping_types.py +0 -0
- {quadkit-0.0.45 → quadkit-0.0.46}/tests/unit/mapping/test_protocol.py +0 -0
- {quadkit-0.0.45 → quadkit-0.0.46}/tests/unit/mapping/test_registry.py +0 -0
- {quadkit-0.0.45 → quadkit-0.0.46}/tests/unit/middleware/conftest.py +0 -0
- {quadkit-0.0.45 → quadkit-0.0.46}/tests/unit/middleware/test_builtins.py +0 -0
- {quadkit-0.0.45 → quadkit-0.0.46}/tests/unit/middleware/test_chain.py +0 -0
- {quadkit-0.0.45 → quadkit-0.0.46}/tests/unit/middleware/test_config_alignment.py +0 -0
- {quadkit-0.0.45 → quadkit-0.0.46}/tests/unit/middleware/test_exception_filters.py +0 -0
- {quadkit-0.0.45 → quadkit-0.0.46}/tests/unit/middleware/test_middleware_chain.py +0 -0
- {quadkit-0.0.45 → quadkit-0.0.46}/tests/unit/middleware/test_middleware_constants.py +0 -0
- {quadkit-0.0.45 → quadkit-0.0.46}/tests/unit/middleware/test_middleware_constants_new.py +0 -0
- {quadkit-0.0.45 → quadkit-0.0.46}/tests/unit/middleware/test_middleware_ep_discovery.py +0 -0
- {quadkit-0.0.45 → quadkit-0.0.46}/tests/unit/middleware/test_middleware_exceptions.py +0 -0
- {quadkit-0.0.45 → quadkit-0.0.46}/tests/unit/middleware/test_middleware_module.py +0 -0
- {quadkit-0.0.45 → quadkit-0.0.46}/tests/unit/middleware/test_middleware_routing.py +0 -0
- {quadkit-0.0.45 → quadkit-0.0.46}/tests/unit/middleware/test_middleware_types.py +0 -0
- {quadkit-0.0.45 → quadkit-0.0.46}/tests/unit/middleware/test_p2_retry_traceback.py +0 -0
- {quadkit-0.0.45 → quadkit-0.0.46}/tests/unit/middleware/test_registry_defaults.py +0 -0
- {quadkit-0.0.45 → quadkit-0.0.46}/tests/unit/middleware/test_registry_with_resilience.py +0 -0
- {quadkit-0.0.45 → quadkit-0.0.46}/tests/unit/plugins/test_discovery.py +0 -0
- {quadkit-0.0.45 → quadkit-0.0.46}/tests/unit/plugins/test_engine.py +0 -0
- {quadkit-0.0.45 → quadkit-0.0.46}/tests/unit/plugins/test_state.py +0 -0
- {quadkit-0.0.45 → quadkit-0.0.46}/tests/unit/plugins/test_state_hardening.py +0 -0
- {quadkit-0.0.45 → quadkit-0.0.46}/tests/unit/plugins/test_validation.py +0 -0
- {quadkit-0.0.45 → quadkit-0.0.46}/tests/unit/primitives/test_primitives_constants.py +0 -0
- {quadkit-0.0.45 → quadkit-0.0.46}/tests/unit/primitives/test_public_surface_is_static.py +0 -0
- {quadkit-0.0.45 → quadkit-0.0.46}/tests/unit/primitives/test_registry_advanced.py +0 -0
- {quadkit-0.0.45 → quadkit-0.0.46}/tests/unit/primitives/test_registry_introspection.py +0 -0
- {quadkit-0.0.45 → quadkit-0.0.46}/tests/unit/primitives/test_trusted_html.py +0 -0
- {quadkit-0.0.45 → quadkit-0.0.46}/tests/unit/reactive/test_control.py +0 -0
- {quadkit-0.0.45 → quadkit-0.0.46}/tests/unit/reactive/test_core.py +0 -0
- {quadkit-0.0.45 → quadkit-0.0.46}/tests/unit/reactive/test_facade.py +0 -0
- {quadkit-0.0.45 → quadkit-0.0.46}/tests/unit/reactive/test_retry.py +0 -0
- {quadkit-0.0.45 → quadkit-0.0.46}/tests/unit/reactive/test_subjects.py +0 -0
- {quadkit-0.0.45 → quadkit-0.0.46}/tests/unit/reactive/test_time_ops.py +0 -0
- {quadkit-0.0.45 → quadkit-0.0.46}/tests/unit/reactive/test_transform.py +0 -0
- {quadkit-0.0.45 → quadkit-0.0.46}/tests/unit/security/__init__.py +0 -0
- {quadkit-0.0.45 → quadkit-0.0.46}/tests/unit/security/test_exceptions.py +0 -0
- {quadkit-0.0.45 → quadkit-0.0.46}/tests/unit/security/test_guards.py +0 -0
- {quadkit-0.0.45 → quadkit-0.0.46}/tests/unit/security/test_hashing.py +0 -0
- {quadkit-0.0.45 → quadkit-0.0.46}/tests/unit/security/test_package_hooks_p2.py +0 -0
- {quadkit-0.0.45 → quadkit-0.0.46}/tests/unit/security/test_secret_rotation_policy.py +0 -0
- {quadkit-0.0.45 → quadkit-0.0.46}/tests/unit/security/test_secrets_rotation.py +0 -0
- {quadkit-0.0.45 → quadkit-0.0.46}/tests/unit/security/test_secrets_store.py +0 -0
- {quadkit-0.0.45 → quadkit-0.0.46}/tests/unit/security/test_security_api.py +0 -0
- {quadkit-0.0.45 → quadkit-0.0.46}/tests/unit/security/test_security_components_p2.py +0 -0
- {quadkit-0.0.45 → quadkit-0.0.46}/tests/unit/security/test_security_constants.py +0 -0
- {quadkit-0.0.45 → quadkit-0.0.46}/tests/unit/security/test_security_exceptions.py +0 -0
- {quadkit-0.0.45 → quadkit-0.0.46}/tests/unit/security/test_security_types.py +0 -0
- {quadkit-0.0.45 → quadkit-0.0.46}/tests/unit/serialization/conftest.py +0 -0
- {quadkit-0.0.45 → quadkit-0.0.46}/tests/unit/serialization/test_schema.py +0 -0
- {quadkit-0.0.45 → quadkit-0.0.46}/tests/unit/serialization/test_serialization_constants.py +0 -0
- {quadkit-0.0.45 → quadkit-0.0.46}/tests/unit/serialization/test_serialization_di_provider.py +0 -0
- {quadkit-0.0.45 → quadkit-0.0.46}/tests/unit/serialization/test_serialization_domain.py +0 -0
- {quadkit-0.0.45 → quadkit-0.0.46}/tests/unit/serialization/test_serialization_init.py +0 -0
- {quadkit-0.0.45 → quadkit-0.0.46}/tests/unit/serialization/test_serialization_json.py +0 -0
- {quadkit-0.0.45 → quadkit-0.0.46}/tests/unit/serialization/test_serialization_registry.py +0 -0
- {quadkit-0.0.45 → quadkit-0.0.46}/tests/unit/serialization/test_serialization_types.py +0 -0
- {quadkit-0.0.45 → quadkit-0.0.46}/tests/unit/test_app_boot_validation.py +0 -0
- {quadkit-0.0.45 → quadkit-0.0.46}/tests/unit/test_app_config_and_misc.py +0 -0
- {quadkit-0.0.45 → quadkit-0.0.46}/tests/unit/test_app_constants.py +0 -0
- {quadkit-0.0.45 → quadkit-0.0.46}/tests/unit/test_app_discovery.py +0 -0
- {quadkit-0.0.45 → quadkit-0.0.46}/tests/unit/test_app_health_baseline.py +0 -0
- {quadkit-0.0.45 → quadkit-0.0.46}/tests/unit/test_app_health_config.py +0 -0
- {quadkit-0.0.45 → quadkit-0.0.46}/tests/unit/test_app_runner_and_lifespan.py +0 -0
- {quadkit-0.0.45 → quadkit-0.0.46}/tests/unit/test_app_types.py +0 -0
- {quadkit-0.0.45 → quadkit-0.0.46}/tests/unit/test_app_validation_and_misc.py +0 -0
- {quadkit-0.0.45 → quadkit-0.0.46}/tests/unit/test_application.py +0 -0
- {quadkit-0.0.45 → quadkit-0.0.46}/tests/unit/test_application_base.py +0 -0
- {quadkit-0.0.45 → quadkit-0.0.46}/tests/unit/test_application_lifecycle.py +0 -0
- {quadkit-0.0.45 → quadkit-0.0.46}/tests/unit/test_base_and_misc_exceptions.py +0 -0
- {quadkit-0.0.45 → quadkit-0.0.46}/tests/unit/test_clock_and_pipeline_primitives.py +0 -0
- {quadkit-0.0.45 → quadkit-0.0.46}/tests/unit/test_codegen.py +0 -0
- {quadkit-0.0.45 → quadkit-0.0.46}/tests/unit/test_compiler_graph_utils.py +0 -0
- {quadkit-0.0.45 → quadkit-0.0.46}/tests/unit/test_component_exceptions.py +0 -0
- {quadkit-0.0.45 → quadkit-0.0.46}/tests/unit/test_concurrency_constants.py +0 -0
- {quadkit-0.0.45 → quadkit-0.0.46}/tests/unit/test_concurrency_exceptions.py +0 -0
- {quadkit-0.0.45 → quadkit-0.0.46}/tests/unit/test_config.py +0 -0
- {quadkit-0.0.45 → quadkit-0.0.46}/tests/unit/test_config_constants.py +0 -0
- {quadkit-0.0.45 → quadkit-0.0.46}/tests/unit/test_config_hardening.py +0 -0
- {quadkit-0.0.45 → quadkit-0.0.46}/tests/unit/test_config_quadkit.py +0 -0
- {quadkit-0.0.45 → quadkit-0.0.46}/tests/unit/test_config_requirements.py +0 -0
- {quadkit-0.0.45 → quadkit-0.0.46}/tests/unit/test_config_sources.py +0 -0
- {quadkit-0.0.45 → quadkit-0.0.46}/tests/unit/test_config_types.py +0 -0
- {quadkit-0.0.45 → quadkit-0.0.46}/tests/unit/test_config_watcher.py +0 -0
- {quadkit-0.0.45 → quadkit-0.0.46}/tests/unit/test_container_exceptions.py +0 -0
- {quadkit-0.0.45 → quadkit-0.0.46}/tests/unit/test_container_introspection.py +0 -0
- {quadkit-0.0.45 → quadkit-0.0.46}/tests/unit/test_container_override.py +0 -0
- {quadkit-0.0.45 → quadkit-0.0.46}/tests/unit/test_container_resolver_impl.py +0 -0
- {quadkit-0.0.45 → quadkit-0.0.46}/tests/unit/test_container_runtime_mixin.py +0 -0
- {quadkit-0.0.45 → quadkit-0.0.46}/tests/unit/test_context_registry.py +0 -0
- {quadkit-0.0.45 → quadkit-0.0.46}/tests/unit/test_contract_completeness.py +0 -0
- {quadkit-0.0.45 → quadkit-0.0.46}/tests/unit/test_core_builder.py +0 -0
- {quadkit-0.0.45 → quadkit-0.0.46}/tests/unit/test_core_constants.py +0 -0
- {quadkit-0.0.45 → quadkit-0.0.46}/tests/unit/test_core_lazy.py +0 -0
- {quadkit-0.0.45 → quadkit-0.0.46}/tests/unit/test_core_module.py +0 -0
- {quadkit-0.0.45 → quadkit-0.0.46}/tests/unit/test_core_pipeline.py +0 -0
- {quadkit-0.0.45 → quadkit-0.0.46}/tests/unit/test_dependency_injector.py +0 -0
- {quadkit-0.0.45 → quadkit-0.0.46}/tests/unit/test_di_constants.py +0 -0
- {quadkit-0.0.45 → quadkit-0.0.46}/tests/unit/test_di_descriptor.py +0 -0
- {quadkit-0.0.45 → quadkit-0.0.46}/tests/unit/test_di_module_constants.py +0 -0
- {quadkit-0.0.45 → quadkit-0.0.46}/tests/unit/test_domain_constants.py +0 -0
- {quadkit-0.0.45 → quadkit-0.0.46}/tests/unit/test_domain_exceptions.py +0 -0
- {quadkit-0.0.45 → quadkit-0.0.46}/tests/unit/test_domain_model_base.py +0 -0
- {quadkit-0.0.45 → quadkit-0.0.46}/tests/unit/test_dynamic_module.py +0 -0
- {quadkit-0.0.45 → quadkit-0.0.46}/tests/unit/test_events_security_exceptions.py +0 -0
- {quadkit-0.0.45 → quadkit-0.0.46}/tests/unit/test_execution_result.py +0 -0
- {quadkit-0.0.45 → quadkit-0.0.46}/tests/unit/test_hatch_build_targets.py +0 -0
- {quadkit-0.0.45 → quadkit-0.0.46}/tests/unit/test_health_probes.py +0 -0
- {quadkit-0.0.45 → quadkit-0.0.46}/tests/unit/test_hook_registry.py +0 -0
- {quadkit-0.0.45 → quadkit-0.0.46}/tests/unit/test_hook_registry_edge_cases.py +0 -0
- {quadkit-0.0.45 → quadkit-0.0.46}/tests/unit/test_hook_registry_introspection.py +0 -0
- {quadkit-0.0.45 → quadkit-0.0.46}/tests/unit/test_hook_registry_scenarios.py +0 -0
- {quadkit-0.0.45 → quadkit-0.0.46}/tests/unit/test_identity_generators_and_ambient.py +0 -0
- {quadkit-0.0.45 → quadkit-0.0.46}/tests/unit/test_infra_exceptions.py +0 -0
- {quadkit-0.0.45 → quadkit-0.0.46}/tests/unit/test_input_sanitizers.py +0 -0
- {quadkit-0.0.45 → quadkit-0.0.46}/tests/unit/test_interceptors.py +0 -0
- {quadkit-0.0.45 → quadkit-0.0.46}/tests/unit/test_json_serialization_backend.py +0 -0
- {quadkit-0.0.45 → quadkit-0.0.46}/tests/unit/test_logging_apply_redaction.py +0 -0
- {quadkit-0.0.45 → quadkit-0.0.46}/tests/unit/test_logging_bridging.py +0 -0
- {quadkit-0.0.45 → quadkit-0.0.46}/tests/unit/test_logging_constants.py +0 -0
- {quadkit-0.0.45 → quadkit-0.0.46}/tests/unit/test_logging_debug.py +0 -0
- {quadkit-0.0.45 → quadkit-0.0.46}/tests/unit/test_logging_di_provider.py +0 -0
- {quadkit-0.0.45 → quadkit-0.0.46}/tests/unit/test_logging_factory.py +0 -0
- {quadkit-0.0.45 → quadkit-0.0.46}/tests/unit/test_logging_init.py +0 -0
- {quadkit-0.0.45 → quadkit-0.0.46}/tests/unit/test_logging_redaction.py +0 -0
- {quadkit-0.0.45 → quadkit-0.0.46}/tests/unit/test_logging_redaction_compound.py +0 -0
- {quadkit-0.0.45 → quadkit-0.0.46}/tests/unit/test_logging_types.py +0 -0
- {quadkit-0.0.45 → quadkit-0.0.46}/tests/unit/test_m13_m14_verification.py +0 -0
- {quadkit-0.0.45 → quadkit-0.0.46}/tests/unit/test_mapper.py +0 -0
- {quadkit-0.0.45 → quadkit-0.0.46}/tests/unit/test_mapper_enhanced.py +0 -0
- {quadkit-0.0.45 → quadkit-0.0.46}/tests/unit/test_mapping.py +0 -0
- {quadkit-0.0.45 → quadkit-0.0.46}/tests/unit/test_middleware_enhancements.py +0 -0
- {quadkit-0.0.45 → quadkit-0.0.46}/tests/unit/test_middleware_exceptions.py +0 -0
- {quadkit-0.0.45 → quadkit-0.0.46}/tests/unit/test_middleware_new.py +0 -0
- {quadkit-0.0.45 → quadkit-0.0.46}/tests/unit/test_module_decorator.py +0 -0
- {quadkit-0.0.45 → quadkit-0.0.46}/tests/unit/test_module_scan_and_provide.py +0 -0
- {quadkit-0.0.45 → quadkit-0.0.46}/tests/unit/test_module_system.py +0 -0
- {quadkit-0.0.45 → quadkit-0.0.46}/tests/unit/test_no_db_imports.py +0 -0
- {quadkit-0.0.45 → quadkit-0.0.46}/tests/unit/test_observability.py +0 -0
- {quadkit-0.0.45 → quadkit-0.0.46}/tests/unit/test_orchestrator_parallel.py +0 -0
- {quadkit-0.0.45 → quadkit-0.0.46}/tests/unit/test_p2_scope_log_level.py +0 -0
- {quadkit-0.0.45 → quadkit-0.0.46}/tests/unit/test_primitives_context.py +0 -0
- {quadkit-0.0.45 → quadkit-0.0.46}/tests/unit/test_primitives_data.py +0 -0
- {quadkit-0.0.45 → quadkit-0.0.46}/tests/unit/test_primitives_registry.py +0 -0
- {quadkit-0.0.45 → quadkit-0.0.46}/tests/unit/test_provider_boot_enhanced.py +0 -0
- {quadkit-0.0.45 → quadkit-0.0.46}/tests/unit/test_provider_decorator.py +0 -0
- {quadkit-0.0.45 → quadkit-0.0.46}/tests/unit/test_quadkit_constants.py +0 -0
- {quadkit-0.0.45 → quadkit-0.0.46}/tests/unit/test_quadkit_exceptions.py +0 -0
- {quadkit-0.0.45 → quadkit-0.0.46}/tests/unit/test_repr_helpers.py +0 -0
- {quadkit-0.0.45 → quadkit-0.0.46}/tests/unit/test_resilience_exceptions.py +0 -0
- {quadkit-0.0.45 → quadkit-0.0.46}/tests/unit/test_result_combinators.py +0 -0
- {quadkit-0.0.45 → quadkit-0.0.46}/tests/unit/test_result_core.py +0 -0
- {quadkit-0.0.45 → quadkit-0.0.46}/tests/unit/test_result_pipeline.py +0 -0
- {quadkit-0.0.45 → quadkit-0.0.46}/tests/unit/test_result_pipeline_and_utils.py +0 -0
- {quadkit-0.0.45 → quadkit-0.0.46}/tests/unit/test_result_types_new.py +0 -0
- {quadkit-0.0.45 → quadkit-0.0.46}/tests/unit/test_result_utils.py +0 -0
- {quadkit-0.0.45 → quadkit-0.0.46}/tests/unit/test_round22_hardening.py +0 -0
- {quadkit-0.0.45 → quadkit-0.0.46}/tests/unit/test_round41_hardening.py +0 -0
- {quadkit-0.0.45 → quadkit-0.0.46}/tests/unit/test_saga_primitives.py +0 -0
- {quadkit-0.0.45 → quadkit-0.0.46}/tests/unit/test_sampling_and_config.py +0 -0
- {quadkit-0.0.45 → quadkit-0.0.46}/tests/unit/test_secret_stores_and_rotation.py +0 -0
- {quadkit-0.0.45 → quadkit-0.0.46}/tests/unit/test_serialization_constants.py +0 -0
- {quadkit-0.0.45 → quadkit-0.0.46}/tests/unit/test_serialization_exceptions.py +0 -0
- {quadkit-0.0.45 → quadkit-0.0.46}/tests/unit/test_service_descriptor.py +0 -0
- {quadkit-0.0.45 → quadkit-0.0.46}/tests/unit/test_structured_logging.py +0 -0
- {quadkit-0.0.45 → quadkit-0.0.46}/tests/unit/test_time_ops.py +0 -0
- {quadkit-0.0.45 → quadkit-0.0.46}/tests/unit/test_types.py +0 -0
- {quadkit-0.0.45 → quadkit-0.0.46}/tests/unit/test_validation_coercion.py +0 -0
- {quadkit-0.0.45 → quadkit-0.0.46}/tests/unit/test_validation_exceptions.py +0 -0
- {quadkit-0.0.45 → quadkit-0.0.46}/tests/unit/test_validation_rules.py +0 -0
- {quadkit-0.0.45 → quadkit-0.0.46}/tests/unit/test_validation_validator_engine.py +0 -0
- {quadkit-0.0.45 → quadkit-0.0.46}/tests/unit/validation/__init__.py +0 -0
- {quadkit-0.0.45 → quadkit-0.0.46}/tests/unit/validation/conftest.py +0 -0
- {quadkit-0.0.45 → quadkit-0.0.46}/tests/unit/validation/test_async_validator.py +0 -0
- {quadkit-0.0.45 → quadkit-0.0.46}/tests/unit/validation/test_coercion.py +0 -0
- {quadkit-0.0.45 → quadkit-0.0.46}/tests/unit/validation/test_helpers.py +0 -0
- {quadkit-0.0.45 → quadkit-0.0.46}/tests/unit/validation/test_validation.py +0 -0
- {quadkit-0.0.45 → quadkit-0.0.46}/tests/unit/validation/test_validation_constants.py +0 -0
- {quadkit-0.0.45 → quadkit-0.0.46}/tests/unit/validation/test_validation_constants_new.py +0 -0
- {quadkit-0.0.45 → quadkit-0.0.46}/tests/unit/validation/test_validation_fields.py +0 -0
- {quadkit-0.0.45 → quadkit-0.0.46}/tests/unit/validation/test_validation_fields_extended.py +0 -0
- {quadkit-0.0.45 → quadkit-0.0.46}/tests/unit/validation/test_validation_init.py +0 -0
- {quadkit-0.0.45 → quadkit-0.0.46}/tests/unit/validation/test_validation_introspection.py +0 -0
- {quadkit-0.0.45 → quadkit-0.0.46}/tests/unit/validation/test_validation_module.py +0 -0
- {quadkit-0.0.45 → quadkit-0.0.46}/tests/unit/validation/test_validation_types.py +0 -0
- {quadkit-0.0.45 → quadkit-0.0.46}/tests/unit/validation/test_validator.py +0 -0
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
Metadata-Version: 2.5
|
|
2
2
|
Name: quadkit
|
|
3
|
-
Version: 0.0.
|
|
3
|
+
Version: 0.0.46
|
|
4
4
|
Summary: Async-first DI/IoC framework for Python — core package
|
|
5
|
-
Project-URL: Homepage, https://
|
|
5
|
+
Project-URL: Homepage, https://oridecon.dev
|
|
6
6
|
Project-URL: Repository, https://github.com/dbtinoy-/quadkit
|
|
7
|
-
Project-URL: Documentation, https://
|
|
7
|
+
Project-URL: Documentation, https://oridecon.dev/quadkit/
|
|
8
8
|
Project-URL: Issues, https://github.com/dbtinoy-/quadkit/issues
|
|
9
9
|
Project-URL: Changelog, https://github.com/dbtinoy-/quadkit/blob/main/CHANGELOG.md
|
|
10
|
-
Author-email: Quadkit Framework Team <
|
|
11
|
-
Maintainer-email: Quadkit Framework Team <
|
|
10
|
+
Author-email: Quadkit Framework Team <hello@oridecon.dev>
|
|
11
|
+
Maintainer-email: Quadkit Framework Team <hello@oridecon.dev>
|
|
12
12
|
License: Apache-2.0
|
|
13
13
|
License-File: LICENSE
|
|
14
14
|
License-File: NOTICE
|
|
@@ -140,7 +140,7 @@ asyncio.run(main())
|
|
|
140
140
|
```
|
|
141
141
|
|
|
142
142
|
For the web quickstart (a real endpoint in minutes), see
|
|
143
|
-
[the docs](https://
|
|
143
|
+
[the docs](https://oridecon.dev/quadkit/getting-started/first-app/).
|
|
144
144
|
|
|
145
145
|
## Expected failures are values
|
|
146
146
|
|
|
@@ -172,7 +172,7 @@ result = (
|
|
|
172
172
|
|
|
173
173
|
In controllers, returning an `Err` renders as an RFC 7807 problem
|
|
174
174
|
response automatically — see the
|
|
175
|
-
[error-handling guide](https://
|
|
175
|
+
[error-handling guide](https://oridecon.dev/quadkit/fundamentals/result-pattern/).
|
|
176
176
|
|
|
177
177
|
## Optional extras
|
|
178
178
|
|
|
@@ -203,11 +203,11 @@ Providers can also define an async `boot()` (acquire resources) and
|
|
|
203
203
|
`shutdown()` (release them, in reverse registration order) — the
|
|
204
204
|
container drives the whole lifecycle.
|
|
205
205
|
|
|
206
|
-
Concepts: [contracts](https://
|
|
207
|
-
[dependency injection](https://
|
|
208
|
-
[modules](https://
|
|
209
|
-
[lifecycle](https://
|
|
210
|
-
[async model](https://
|
|
206
|
+
Concepts: [contracts](https://oridecon.dev/quadkit/fundamentals/container-protocols/) ·
|
|
207
|
+
[dependency injection](https://oridecon.dev/quadkit/fundamentals/dependency-injection/) ·
|
|
208
|
+
[modules](https://oridecon.dev/quadkit/fundamentals/modules/) ·
|
|
209
|
+
[lifecycle](https://oridecon.dev/quadkit/fundamentals/application-lifecycle/) ·
|
|
210
|
+
[async model](https://oridecon.dev/quadkit/fundamentals/architecture/).
|
|
211
211
|
|
|
212
212
|
## Configuration
|
|
213
213
|
|
|
@@ -223,7 +223,7 @@ QK_PROFILE=production # select a profile block
|
|
|
223
223
|
```
|
|
224
224
|
|
|
225
225
|
See
|
|
226
|
-
[configuration](https://
|
|
226
|
+
[configuration](https://oridecon.dev/quadkit/getting-started/configuration/).
|
|
227
227
|
|
|
228
228
|
## Error handling
|
|
229
229
|
|
|
@@ -231,36 +231,36 @@ See
|
|
|
231
231
|
`quadkit-contracts` exception hierarchy (`QuadkitError → DomainError →
|
|
232
232
|
NotFoundError`, `ValidationError`, `ConflictError`, ...) for everything
|
|
233
233
|
else. The web layer renders both as problem responses — see
|
|
234
|
-
[error handling](https://
|
|
234
|
+
[error handling](https://oridecon.dev/quadkit/fundamentals/result-pattern/).
|
|
235
235
|
|
|
236
236
|
## Testing
|
|
237
237
|
|
|
238
238
|
Pair with `quadkit-testing`: `AppTestBed.from_factory(create_app)` boots
|
|
239
239
|
your application in-process (with `overrides={Contract: fake}` for test
|
|
240
240
|
doubles), no server required. See
|
|
241
|
-
[testing](https://
|
|
241
|
+
[testing](https://oridecon.dev/quadkit/guides/testing/).
|
|
242
242
|
|
|
243
243
|
## Security
|
|
244
244
|
|
|
245
245
|
Never put secrets in `application.yaml` — pass them through `QK_*`
|
|
246
246
|
environment variables or a secret store. Unexpected exceptions never
|
|
247
247
|
leak internals to clients. See
|
|
248
|
-
[secure configuration](https://
|
|
248
|
+
[secure configuration](https://oridecon.dev/quadkit/getting-started/configuration/) and
|
|
249
249
|
report vulnerabilities privately per
|
|
250
250
|
[SECURITY.md](https://github.com/dbtinoy-/quadkit/blob/main/SECURITY.md).
|
|
251
251
|
|
|
252
252
|
## Stability
|
|
253
253
|
|
|
254
|
-
Version `0.0.
|
|
255
|
-
other
|
|
254
|
+
Version `0.0.46` in the `0.x` series, released in lockstep with the
|
|
255
|
+
other twelve distributions; APIs may change between minor versions until
|
|
256
256
|
1.0 — pin an exact version
|
|
257
|
-
(`quadkit==0.0.
|
|
258
|
-
[stability and compatibility](https://
|
|
257
|
+
(`quadkit==0.0.46`) or a tight range (`>=0.0.46,<0.1.0`). Full policy:
|
|
258
|
+
[stability and compatibility](https://oridecon.dev/quadkit/ecosystem/compatibility/).
|
|
259
259
|
|
|
260
260
|
## Links
|
|
261
261
|
|
|
262
|
-
- **Documentation** — <https://
|
|
263
|
-
- **Getting started** — <https://
|
|
262
|
+
- **Documentation** — <https://oridecon.dev/quadkit/>
|
|
263
|
+
- **Getting started** — <https://oridecon.dev/quadkit/getting-started/installation/>
|
|
264
264
|
- **Changelog** — <https://github.com/dbtinoy-/quadkit/blob/main/CHANGELOG.md>
|
|
265
265
|
- **Issues** — <https://github.com/dbtinoy-/quadkit/issues>
|
|
266
266
|
- **Security** — report privately per [SECURITY.md](https://github.com/dbtinoy-/quadkit/blob/main/SECURITY.md)
|
|
@@ -88,7 +88,7 @@ asyncio.run(main())
|
|
|
88
88
|
```
|
|
89
89
|
|
|
90
90
|
For the web quickstart (a real endpoint in minutes), see
|
|
91
|
-
[the docs](https://
|
|
91
|
+
[the docs](https://oridecon.dev/quadkit/getting-started/first-app/).
|
|
92
92
|
|
|
93
93
|
## Expected failures are values
|
|
94
94
|
|
|
@@ -120,7 +120,7 @@ result = (
|
|
|
120
120
|
|
|
121
121
|
In controllers, returning an `Err` renders as an RFC 7807 problem
|
|
122
122
|
response automatically — see the
|
|
123
|
-
[error-handling guide](https://
|
|
123
|
+
[error-handling guide](https://oridecon.dev/quadkit/fundamentals/result-pattern/).
|
|
124
124
|
|
|
125
125
|
## Optional extras
|
|
126
126
|
|
|
@@ -151,11 +151,11 @@ Providers can also define an async `boot()` (acquire resources) and
|
|
|
151
151
|
`shutdown()` (release them, in reverse registration order) — the
|
|
152
152
|
container drives the whole lifecycle.
|
|
153
153
|
|
|
154
|
-
Concepts: [contracts](https://
|
|
155
|
-
[dependency injection](https://
|
|
156
|
-
[modules](https://
|
|
157
|
-
[lifecycle](https://
|
|
158
|
-
[async model](https://
|
|
154
|
+
Concepts: [contracts](https://oridecon.dev/quadkit/fundamentals/container-protocols/) ·
|
|
155
|
+
[dependency injection](https://oridecon.dev/quadkit/fundamentals/dependency-injection/) ·
|
|
156
|
+
[modules](https://oridecon.dev/quadkit/fundamentals/modules/) ·
|
|
157
|
+
[lifecycle](https://oridecon.dev/quadkit/fundamentals/application-lifecycle/) ·
|
|
158
|
+
[async model](https://oridecon.dev/quadkit/fundamentals/architecture/).
|
|
159
159
|
|
|
160
160
|
## Configuration
|
|
161
161
|
|
|
@@ -171,7 +171,7 @@ QK_PROFILE=production # select a profile block
|
|
|
171
171
|
```
|
|
172
172
|
|
|
173
173
|
See
|
|
174
|
-
[configuration](https://
|
|
174
|
+
[configuration](https://oridecon.dev/quadkit/getting-started/configuration/).
|
|
175
175
|
|
|
176
176
|
## Error handling
|
|
177
177
|
|
|
@@ -179,36 +179,36 @@ See
|
|
|
179
179
|
`quadkit-contracts` exception hierarchy (`QuadkitError → DomainError →
|
|
180
180
|
NotFoundError`, `ValidationError`, `ConflictError`, ...) for everything
|
|
181
181
|
else. The web layer renders both as problem responses — see
|
|
182
|
-
[error handling](https://
|
|
182
|
+
[error handling](https://oridecon.dev/quadkit/fundamentals/result-pattern/).
|
|
183
183
|
|
|
184
184
|
## Testing
|
|
185
185
|
|
|
186
186
|
Pair with `quadkit-testing`: `AppTestBed.from_factory(create_app)` boots
|
|
187
187
|
your application in-process (with `overrides={Contract: fake}` for test
|
|
188
188
|
doubles), no server required. See
|
|
189
|
-
[testing](https://
|
|
189
|
+
[testing](https://oridecon.dev/quadkit/guides/testing/).
|
|
190
190
|
|
|
191
191
|
## Security
|
|
192
192
|
|
|
193
193
|
Never put secrets in `application.yaml` — pass them through `QK_*`
|
|
194
194
|
environment variables or a secret store. Unexpected exceptions never
|
|
195
195
|
leak internals to clients. See
|
|
196
|
-
[secure configuration](https://
|
|
196
|
+
[secure configuration](https://oridecon.dev/quadkit/getting-started/configuration/) and
|
|
197
197
|
report vulnerabilities privately per
|
|
198
198
|
[SECURITY.md](https://github.com/dbtinoy-/quadkit/blob/main/SECURITY.md).
|
|
199
199
|
|
|
200
200
|
## Stability
|
|
201
201
|
|
|
202
|
-
Version `0.0.
|
|
203
|
-
other
|
|
202
|
+
Version `0.0.46` in the `0.x` series, released in lockstep with the
|
|
203
|
+
other twelve distributions; APIs may change between minor versions until
|
|
204
204
|
1.0 — pin an exact version
|
|
205
|
-
(`quadkit==0.0.
|
|
206
|
-
[stability and compatibility](https://
|
|
205
|
+
(`quadkit==0.0.46`) or a tight range (`>=0.0.46,<0.1.0`). Full policy:
|
|
206
|
+
[stability and compatibility](https://oridecon.dev/quadkit/ecosystem/compatibility/).
|
|
207
207
|
|
|
208
208
|
## Links
|
|
209
209
|
|
|
210
|
-
- **Documentation** — <https://
|
|
211
|
-
- **Getting started** — <https://
|
|
210
|
+
- **Documentation** — <https://oridecon.dev/quadkit/>
|
|
211
|
+
- **Getting started** — <https://oridecon.dev/quadkit/getting-started/installation/>
|
|
212
212
|
- **Changelog** — <https://github.com/dbtinoy-/quadkit/blob/main/CHANGELOG.md>
|
|
213
213
|
- **Issues** — <https://github.com/dbtinoy-/quadkit/issues>
|
|
214
214
|
- **Security** — report privately per [SECURITY.md](https://github.com/dbtinoy-/quadkit/blob/main/SECURITY.md)
|
|
@@ -29,7 +29,7 @@ build-backend = "hatchling.build"
|
|
|
29
29
|
|
|
30
30
|
[project]
|
|
31
31
|
name = "quadkit"
|
|
32
|
-
version = "0.0.
|
|
32
|
+
version = "0.0.46"
|
|
33
33
|
description = "Async-first DI/IoC framework for Python — core package"
|
|
34
34
|
readme = "README.md"
|
|
35
35
|
requires-python = ">=3.11"
|
|
@@ -55,10 +55,10 @@ classifiers = [
|
|
|
55
55
|
"Typing :: Typed",
|
|
56
56
|
]
|
|
57
57
|
authors = [
|
|
58
|
-
{ name = "Quadkit Framework Team", email = "
|
|
58
|
+
{ name = "Quadkit Framework Team", email = "hello@oridecon.dev" },
|
|
59
59
|
]
|
|
60
60
|
maintainers = [
|
|
61
|
-
{ name = "Quadkit Framework Team", email = "
|
|
61
|
+
{ name = "Quadkit Framework Team", email = "hello@oridecon.dev" },
|
|
62
62
|
]
|
|
63
63
|
|
|
64
64
|
# =============================================================================
|
|
@@ -138,9 +138,9 @@ web = [
|
|
|
138
138
|
# =============================================================================
|
|
139
139
|
|
|
140
140
|
[project.urls]
|
|
141
|
-
Homepage = "https://
|
|
141
|
+
Homepage = "https://oridecon.dev"
|
|
142
142
|
Repository = "https://github.com/dbtinoy-/quadkit"
|
|
143
|
-
Documentation = "https://
|
|
143
|
+
Documentation = "https://oridecon.dev/quadkit/"
|
|
144
144
|
Issues = "https://github.com/dbtinoy-/quadkit/issues"
|
|
145
145
|
Changelog = "https://github.com/dbtinoy-/quadkit/blob/main/CHANGELOG.md"
|
|
146
146
|
|
|
@@ -95,7 +95,7 @@ class CollectPhase:
|
|
|
95
95
|
raise ModuleError(
|
|
96
96
|
f"'{cls.__name__}' is not decorated with @module.\n"
|
|
97
97
|
f"\n"
|
|
98
|
-
f"Reference: {DOCS_BASE_URL}/modules
|
|
98
|
+
f"Reference: {DOCS_BASE_URL}/fundamentals/modules/",
|
|
99
99
|
hint=(
|
|
100
100
|
f"Add @module() to {cls.__name__}, or import "
|
|
101
101
|
f"{cls.__name__}.configure() instead."
|
|
@@ -47,7 +47,7 @@ def format_cycle_error(cycle: list[str]) -> str:
|
|
|
47
47
|
f" 1. Extract shared types into a separate module\n"
|
|
48
48
|
f" 2. Remove the circular import from one side\n"
|
|
49
49
|
f"\n"
|
|
50
|
-
f"Reference: {DOCS_BASE_URL}/modules
|
|
50
|
+
f"Reference: {DOCS_BASE_URL}/fundamentals/modules/"
|
|
51
51
|
)
|
|
52
52
|
|
|
53
53
|
|
|
@@ -88,7 +88,7 @@ def format_missing_import_error(
|
|
|
88
88
|
f" 1. Add {missing_name} to your create_app() via app.add_module()\n"
|
|
89
89
|
f" 2. Or remove {missing_name} from {module_name}.imports\n"
|
|
90
90
|
f"\n"
|
|
91
|
-
f"Reference: {DOCS_BASE_URL}/modules
|
|
91
|
+
f"Reference: {DOCS_BASE_URL}/fundamentals/modules/"
|
|
92
92
|
)
|
|
93
93
|
|
|
94
94
|
|
|
@@ -192,7 +192,7 @@ def format_visibility_error(
|
|
|
192
192
|
f" 2. Make the exporting module global with @module(is_global=True)\n"
|
|
193
193
|
f" 3. Depend on a service that is already exported\n"
|
|
194
194
|
f"\n"
|
|
195
|
-
f" Reference: {DOCS_BASE_URL}/modules
|
|
195
|
+
f" Reference: {DOCS_BASE_URL}/fundamentals/modules/"
|
|
196
196
|
)
|
|
197
197
|
|
|
198
198
|
|
|
@@ -232,7 +232,7 @@ def format_duplicate_module_error(
|
|
|
232
232
|
f" 1. Remove one of the add_module() calls\n"
|
|
233
233
|
f" 2. Or merge the configurations into a single configure() call\n"
|
|
234
234
|
f"\n"
|
|
235
|
-
f"Reference: {DOCS_BASE_URL}/modules
|
|
235
|
+
f"Reference: {DOCS_BASE_URL}/fundamentals/modules/"
|
|
236
236
|
)
|
|
237
237
|
|
|
238
238
|
|
|
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
|
|
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
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|