LICENSE
README.md
pyproject.toml
src/kontra/__init__.py
src/kontra/errors.py
src/kontra/logging.py
src/kontra/version.py
src/kontra.egg-info/PKG-INFO
src/kontra.egg-info/SOURCES.txt
src/kontra.egg-info/dependency_links.txt
src/kontra.egg-info/entry_points.txt
src/kontra.egg-info/requires.txt
src/kontra.egg-info/top_level.txt
src/kontra/api/__init__.py
src/kontra/api/compare.py
src/kontra/api/decorators.py
src/kontra/api/results.py
src/kontra/api/rules.py
src/kontra/cli/__init__.py
src/kontra/cli/constants.py
src/kontra/cli/main.py
src/kontra/cli/renderers.py
src/kontra/cli/utils.py
src/kontra/cli/commands/__init__.py
src/kontra/cli/commands/config.py
src/kontra/cli/commands/diff.py
src/kontra/cli/commands/history.py
src/kontra/cli/commands/profile.py
src/kontra/cli/commands/validate.py
src/kontra/config/__init__.py
src/kontra/config/loader.py
src/kontra/config/models.py
src/kontra/config/settings.py
src/kontra/connectors/__init__.py
src/kontra/connectors/db_utils.py
src/kontra/connectors/detection.py
src/kontra/connectors/handle.py
src/kontra/connectors/postgres.py
src/kontra/connectors/sqlserver.py
src/kontra/engine/__init__.py
src/kontra/engine/engine.py
src/kontra/engine/paths.py
src/kontra/engine/result.py
src/kontra/engine/sql_utils.py
src/kontra/engine/sql_validator.py
src/kontra/engine/stats.py
src/kontra/engine/types.py
src/kontra/engine/backends/duckdb_session.py
src/kontra/engine/backends/duckdb_utils.py
src/kontra/engine/backends/polars_backend.py
src/kontra/engine/executors/__init__.py
src/kontra/engine/executors/base.py
src/kontra/engine/executors/database_base.py
src/kontra/engine/executors/duckdb_sql.py
src/kontra/engine/executors/postgres_sql.py
src/kontra/engine/executors/registry.py
src/kontra/engine/executors/sqlserver_sql.py
src/kontra/engine/materializers/__init__.py
src/kontra/engine/materializers/base.py
src/kontra/engine/materializers/duckdb.py
src/kontra/engine/materializers/factory.py
src/kontra/engine/materializers/polars_connector.py
src/kontra/engine/materializers/postgres.py
src/kontra/engine/materializers/registry.py
src/kontra/engine/materializers/sqlserver.py
src/kontra/preplan/__init__.py
src/kontra/preplan/planner.py
src/kontra/preplan/postgres.py
src/kontra/preplan/sqlserver.py
src/kontra/preplan/types.py
src/kontra/probes/__init__.py
src/kontra/probes/compare.py
src/kontra/probes/relationship.py
src/kontra/probes/utils.py
src/kontra/reporters/__init__.py
src/kontra/reporters/json_reporter.py
src/kontra/reporters/rich_reporter.py
src/kontra/rule_defs/__init__.py
src/kontra/rule_defs/base.py
src/kontra/rule_defs/condition_parser.py
src/kontra/rule_defs/execution_plan.py
src/kontra/rule_defs/factory.py
src/kontra/rule_defs/predicates.py
src/kontra/rule_defs/registry.py
src/kontra/rule_defs/static_predicates.py
src/kontra/rule_defs/builtin/__init__.py
src/kontra/rule_defs/builtin/allowed_values.py
src/kontra/rule_defs/builtin/compare.py
src/kontra/rule_defs/builtin/conditional_not_null.py
src/kontra/rule_defs/builtin/conditional_range.py
src/kontra/rule_defs/builtin/contains.py
src/kontra/rule_defs/builtin/custom_sql_check.py
src/kontra/rule_defs/builtin/disallowed_values.py
src/kontra/rule_defs/builtin/dtype.py
src/kontra/rule_defs/builtin/ends_with.py
src/kontra/rule_defs/builtin/freshness.py
src/kontra/rule_defs/builtin/length.py
src/kontra/rule_defs/builtin/max_rows.py
src/kontra/rule_defs/builtin/min_rows.py
src/kontra/rule_defs/builtin/not_null.py
src/kontra/rule_defs/builtin/range.py
src/kontra/rule_defs/builtin/regex.py
src/kontra/rule_defs/builtin/starts_with.py
src/kontra/rule_defs/builtin/unique.py
src/kontra/scout/__init__.py
src/kontra/scout/dtype_mapping.py
src/kontra/scout/patterns.py
src/kontra/scout/profiler.py
src/kontra/scout/store.py
src/kontra/scout/suggest.py
src/kontra/scout/types.py
src/kontra/scout/backends/__init__.py
src/kontra/scout/backends/base.py
src/kontra/scout/backends/duckdb_backend.py
src/kontra/scout/backends/postgres_backend.py
src/kontra/scout/backends/sqlserver_backend.py
src/kontra/scout/reporters/__init__.py
src/kontra/scout/reporters/json_reporter.py
src/kontra/scout/reporters/markdown_reporter.py
src/kontra/scout/reporters/rich_reporter.py
src/kontra/state/__init__.py
src/kontra/state/fingerprint.py
src/kontra/state/types.py
src/kontra/state/backends/__init__.py
src/kontra/state/backends/base.py
src/kontra/state/backends/local.py
src/kontra/state/backends/postgres.py
src/kontra/state/backends/s3.py
src/kontra/state/backends/sqlserver.py
tests/test_allowed_values_pushdown.py
tests/test_azure_support.py
tests/test_cli.py
tests/test_cloud_backends.py
tests/test_compare.py
tests/test_config_loader.py
tests/test_config_settings.py
tests/test_csv_push_down_and_projection.py
tests/test_custom_sql_pushdown.py
tests/test_decorators.py
tests/test_determinism.py
tests/test_dtype_and_rule_ids.py
tests/test_executor_failure_fallback.py
tests/test_failure_modes.py
tests/test_history.py
tests/test_integration.py
tests/test_json_schema_and_parity.py
tests/test_lazy_loading.py
tests/test_merge_and_messages.py
tests/test_paths.py
tests/test_projection_and_pushdown.py
tests/test_python_api.py
tests/test_relationship.py
tests/test_reporters.py
tests/test_rules_compare.py
tests/test_rules_conditional_not_null.py
tests/test_rules_conditional_range.py
tests/test_sample_failures.py
tests/test_scout_backends.py
tests/test_scout_diff.py
tests/test_scout_reporters.py
tests/test_severity.py
tests/test_severity_weights.py
tests/test_sql_security.py
tests/test_state.py
tests/test_static_predicates.py
tests/test_storage_options.py
tests/test_string_rules.py
tests/test_tally_mode.py
tests/test_tier_equivalence.py
tests/test_v5_feedback_fixes.py