duckguard 3.0.0__tar.gz → 3.1.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.
- {duckguard-3.0.0 → duckguard-3.1.0}/.gitignore +1 -0
- duckguard-3.1.0/PKG-INFO +1133 -0
- duckguard-3.1.0/README.md +1027 -0
- duckguard-3.1.0/examples/generate_notebook.py +1395 -0
- duckguard-3.1.0/examples/getting_started.ipynb +1860 -0
- duckguard-3.1.0/examples/profiler_example.py +94 -0
- duckguard-3.1.0/examples/sample_data/duckguard.yaml +22 -0
- duckguard-3.1.0/examples/sample_data/orders.csv +31 -0
- {duckguard-3.0.0 → duckguard-3.1.0}/pyproject.toml +1 -1
- {duckguard-3.0.0 → duckguard-3.1.0}/src/duckguard/__init__.py +1 -1
- {duckguard-3.0.0 → duckguard-3.1.0}/src/duckguard/anomaly/methods.py +47 -0
- {duckguard-3.0.0 → duckguard-3.1.0}/src/duckguard/anomaly/ml_methods.py +146 -21
- {duckguard-3.0.0 → duckguard-3.1.0}/src/duckguard/cli/main.py +324 -89
- {duckguard-3.0.0 → duckguard-3.1.0}/src/duckguard/core/result.py +40 -14
- {duckguard-3.0.0 → duckguard-3.1.0}/src/duckguard/notifications/email.py +9 -0
- {duckguard-3.0.0 → duckguard-3.1.0}/src/duckguard/notifications/notifiers.py +39 -1
- {duckguard-3.0.0 → duckguard-3.1.0}/src/duckguard/profiler/auto_profile.py +217 -64
- {duckguard-3.0.0 → duckguard-3.1.0}/tests/test_cli.py +24 -0
- {duckguard-3.0.0 → duckguard-3.1.0}/tests/test_connectors.py +2 -2
- {duckguard-3.0.0 → duckguard-3.1.0}/tests/test_dataset.py +16 -14
- {duckguard-3.0.0 → duckguard-3.1.0}/tests/test_engine.py +4 -4
- duckguard-3.1.0/tests/test_profiler.py +244 -0
- {duckguard-3.0.0 → duckguard-3.1.0}/tests/test_row_level_errors.py +1 -2
- duckguard-3.0.0/PKG-INFO +0 -1072
- duckguard-3.0.0/README.md +0 -966
- duckguard-3.0.0/examples/getting_started.ipynb +0 -3123
- duckguard-3.0.0/examples/profiler_example.py +0 -49
- duckguard-3.0.0/examples/sample_data/duckguard.yaml +0 -22
- duckguard-3.0.0/examples/sample_data/orders.csv +0 -26
- duckguard-3.0.0/tests/test_profiler.py +0 -88
- {duckguard-3.0.0 → duckguard-3.1.0}/LICENSE +0 -0
- {duckguard-3.0.0 → duckguard-3.1.0}/examples/basic_usage.py +0 -0
- {duckguard-3.0.0 → duckguard-3.1.0}/examples/colab_quickstart.ipynb +0 -0
- {duckguard-3.0.0 → duckguard-3.1.0}/examples/kaggle_notebook.ipynb +0 -0
- {duckguard-3.0.0 → duckguard-3.1.0}/examples/pytest_example.py +0 -0
- {duckguard-3.0.0 → duckguard-3.1.0}/src/duckguard/anomaly/__init__.py +0 -0
- {duckguard-3.0.0 → duckguard-3.1.0}/src/duckguard/anomaly/baselines.py +0 -0
- {duckguard-3.0.0 → duckguard-3.1.0}/src/duckguard/anomaly/detector.py +0 -0
- {duckguard-3.0.0 → duckguard-3.1.0}/src/duckguard/checks/__init__.py +0 -0
- {duckguard-3.0.0 → duckguard-3.1.0}/src/duckguard/checks/conditional.py +0 -0
- {duckguard-3.0.0 → duckguard-3.1.0}/src/duckguard/checks/distributional.py +0 -0
- {duckguard-3.0.0 → duckguard-3.1.0}/src/duckguard/checks/multicolumn.py +0 -0
- {duckguard-3.0.0 → duckguard-3.1.0}/src/duckguard/checks/query_based.py +0 -0
- {duckguard-3.0.0 → duckguard-3.1.0}/src/duckguard/cli/__init__.py +0 -0
- {duckguard-3.0.0 → duckguard-3.1.0}/src/duckguard/connectors/__init__.py +0 -0
- {duckguard-3.0.0 → duckguard-3.1.0}/src/duckguard/connectors/base.py +0 -0
- {duckguard-3.0.0 → duckguard-3.1.0}/src/duckguard/connectors/bigquery.py +0 -0
- {duckguard-3.0.0 → duckguard-3.1.0}/src/duckguard/connectors/databricks.py +0 -0
- {duckguard-3.0.0 → duckguard-3.1.0}/src/duckguard/connectors/factory.py +0 -0
- {duckguard-3.0.0 → duckguard-3.1.0}/src/duckguard/connectors/files.py +0 -0
- {duckguard-3.0.0 → duckguard-3.1.0}/src/duckguard/connectors/kafka.py +0 -0
- {duckguard-3.0.0 → duckguard-3.1.0}/src/duckguard/connectors/mongodb.py +0 -0
- {duckguard-3.0.0 → duckguard-3.1.0}/src/duckguard/connectors/mysql.py +0 -0
- {duckguard-3.0.0 → duckguard-3.1.0}/src/duckguard/connectors/oracle.py +0 -0
- {duckguard-3.0.0 → duckguard-3.1.0}/src/duckguard/connectors/postgres.py +0 -0
- {duckguard-3.0.0 → duckguard-3.1.0}/src/duckguard/connectors/redshift.py +0 -0
- {duckguard-3.0.0 → duckguard-3.1.0}/src/duckguard/connectors/snowflake.py +0 -0
- {duckguard-3.0.0 → duckguard-3.1.0}/src/duckguard/connectors/sqlite.py +0 -0
- {duckguard-3.0.0 → duckguard-3.1.0}/src/duckguard/connectors/sqlserver.py +0 -0
- {duckguard-3.0.0 → duckguard-3.1.0}/src/duckguard/contracts/__init__.py +0 -0
- {duckguard-3.0.0 → duckguard-3.1.0}/src/duckguard/contracts/diff.py +0 -0
- {duckguard-3.0.0 → duckguard-3.1.0}/src/duckguard/contracts/generator.py +0 -0
- {duckguard-3.0.0 → duckguard-3.1.0}/src/duckguard/contracts/loader.py +0 -0
- {duckguard-3.0.0 → duckguard-3.1.0}/src/duckguard/contracts/schema.py +0 -0
- {duckguard-3.0.0 → duckguard-3.1.0}/src/duckguard/contracts/validator.py +0 -0
- {duckguard-3.0.0 → duckguard-3.1.0}/src/duckguard/core/__init__.py +0 -0
- {duckguard-3.0.0 → duckguard-3.1.0}/src/duckguard/core/column.py +0 -0
- {duckguard-3.0.0 → duckguard-3.1.0}/src/duckguard/core/dataset.py +0 -0
- {duckguard-3.0.0 → duckguard-3.1.0}/src/duckguard/core/engine.py +0 -0
- {duckguard-3.0.0 → duckguard-3.1.0}/src/duckguard/core/scoring.py +0 -0
- {duckguard-3.0.0 → duckguard-3.1.0}/src/duckguard/errors.py +0 -0
- {duckguard-3.0.0 → duckguard-3.1.0}/src/duckguard/freshness/__init__.py +0 -0
- {duckguard-3.0.0 → duckguard-3.1.0}/src/duckguard/freshness/monitor.py +0 -0
- {duckguard-3.0.0 → duckguard-3.1.0}/src/duckguard/history/__init__.py +0 -0
- {duckguard-3.0.0 → duckguard-3.1.0}/src/duckguard/history/schema.py +0 -0
- {duckguard-3.0.0 → duckguard-3.1.0}/src/duckguard/history/storage.py +0 -0
- {duckguard-3.0.0 → duckguard-3.1.0}/src/duckguard/history/trends.py +0 -0
- {duckguard-3.0.0 → duckguard-3.1.0}/src/duckguard/integrations/__init__.py +0 -0
- {duckguard-3.0.0 → duckguard-3.1.0}/src/duckguard/integrations/airflow.py +0 -0
- {duckguard-3.0.0 → duckguard-3.1.0}/src/duckguard/integrations/dbt.py +0 -0
- {duckguard-3.0.0 → duckguard-3.1.0}/src/duckguard/notifications/__init__.py +0 -0
- {duckguard-3.0.0 → duckguard-3.1.0}/src/duckguard/notifications/formatter.py +0 -0
- {duckguard-3.0.0 → duckguard-3.1.0}/src/duckguard/profiler/__init__.py +0 -0
- {duckguard-3.0.0 → duckguard-3.1.0}/src/duckguard/profiler/distribution_analyzer.py +0 -0
- {duckguard-3.0.0 → duckguard-3.1.0}/src/duckguard/profiler/outlier_detector.py +0 -0
- {duckguard-3.0.0 → duckguard-3.1.0}/src/duckguard/profiler/pattern_matcher.py +0 -0
- {duckguard-3.0.0 → duckguard-3.1.0}/src/duckguard/profiler/quality_scorer.py +0 -0
- {duckguard-3.0.0 → duckguard-3.1.0}/src/duckguard/pytest_plugin/__init__.py +0 -0
- {duckguard-3.0.0 → duckguard-3.1.0}/src/duckguard/pytest_plugin/plugin.py +0 -0
- {duckguard-3.0.0 → duckguard-3.1.0}/src/duckguard/reporting/__init__.py +0 -0
- {duckguard-3.0.0 → duckguard-3.1.0}/src/duckguard/reporting/console.py +0 -0
- {duckguard-3.0.0 → duckguard-3.1.0}/src/duckguard/reporting/json_report.py +0 -0
- {duckguard-3.0.0 → duckguard-3.1.0}/src/duckguard/reports/__init__.py +0 -0
- {duckguard-3.0.0 → duckguard-3.1.0}/src/duckguard/reports/html_reporter.py +0 -0
- {duckguard-3.0.0 → duckguard-3.1.0}/src/duckguard/reports/pdf_reporter.py +0 -0
- {duckguard-3.0.0 → duckguard-3.1.0}/src/duckguard/rules/__init__.py +0 -0
- {duckguard-3.0.0 → duckguard-3.1.0}/src/duckguard/rules/executor.py +0 -0
- {duckguard-3.0.0 → duckguard-3.1.0}/src/duckguard/rules/generator.py +0 -0
- {duckguard-3.0.0 → duckguard-3.1.0}/src/duckguard/rules/loader.py +0 -0
- {duckguard-3.0.0 → duckguard-3.1.0}/src/duckguard/rules/schema.py +0 -0
- {duckguard-3.0.0 → duckguard-3.1.0}/src/duckguard/schema_history/__init__.py +0 -0
- {duckguard-3.0.0 → duckguard-3.1.0}/src/duckguard/schema_history/analyzer.py +0 -0
- {duckguard-3.0.0 → duckguard-3.1.0}/src/duckguard/schema_history/tracker.py +0 -0
- {duckguard-3.0.0 → duckguard-3.1.0}/src/duckguard/semantic/__init__.py +0 -0
- {duckguard-3.0.0 → duckguard-3.1.0}/src/duckguard/semantic/analyzer.py +0 -0
- {duckguard-3.0.0 → duckguard-3.1.0}/src/duckguard/semantic/detector.py +0 -0
- {duckguard-3.0.0 → duckguard-3.1.0}/src/duckguard/semantic/validators.py +0 -0
- {duckguard-3.0.0 → duckguard-3.1.0}/src/duckguard/validators/__init__.py +0 -0
- {duckguard-3.0.0 → duckguard-3.1.0}/tests/conftest.py +0 -0
- {duckguard-3.0.0 → duckguard-3.1.0}/tests/test_airflow_integration.py +0 -0
- {duckguard-3.0.0 → duckguard-3.1.0}/tests/test_conditional_checks.py +0 -0
- {duckguard-3.0.0 → duckguard-3.1.0}/tests/test_crossref.py +0 -0
- {duckguard-3.0.0 → duckguard-3.1.0}/tests/test_dbt_integration.py +0 -0
- {duckguard-3.0.0 → duckguard-3.1.0}/tests/test_distribution_drift.py +0 -0
- {duckguard-3.0.0 → duckguard-3.1.0}/tests/test_distributional_checks.py +0 -0
- {duckguard-3.0.0 → duckguard-3.1.0}/tests/test_email_notifications.py +0 -0
- {duckguard-3.0.0 → duckguard-3.1.0}/tests/test_errors.py +0 -0
- {duckguard-3.0.0 → duckguard-3.1.0}/tests/test_freshness.py +0 -0
- {duckguard-3.0.0 → duckguard-3.1.0}/tests/test_group_by.py +0 -0
- {duckguard-3.0.0 → duckguard-3.1.0}/tests/test_history.py +0 -0
- {duckguard-3.0.0 → duckguard-3.1.0}/tests/test_integration_duckguard_3_0.py +0 -0
- {duckguard-3.0.0 → duckguard-3.1.0}/tests/test_ml_anomaly.py +0 -0
- {duckguard-3.0.0 → duckguard-3.1.0}/tests/test_multicolumn_checks.py +0 -0
- {duckguard-3.0.0 → duckguard-3.1.0}/tests/test_notifications.py +0 -0
- {duckguard-3.0.0 → duckguard-3.1.0}/tests/test_performance_benchmarks.py +0 -0
- {duckguard-3.0.0 → duckguard-3.1.0}/tests/test_query_checks.py +0 -0
- {duckguard-3.0.0 → duckguard-3.1.0}/tests/test_reconciliation.py +0 -0
- {duckguard-3.0.0 → duckguard-3.1.0}/tests/test_reports.py +0 -0
- {duckguard-3.0.0 → duckguard-3.1.0}/tests/test_schema_history.py +0 -0
- {duckguard-3.0.0 → duckguard-3.1.0}/tests/test_validators.py +0 -0