dataops-testgen 5.32.2__tar.gz → 5.33.2__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.
- dataops-testgen-5.33.2/PKG-INFO +169 -0
- dataops-testgen-5.33.2/README.md +76 -0
- dataops-testgen-5.33.2/dataops_testgen.egg-info/PKG-INFO +169 -0
- {dataops-testgen-5.32.2 → dataops-testgen-5.33.2}/dataops_testgen.egg-info/SOURCES.txt +2 -0
- {dataops-testgen-5.32.2 → dataops-testgen-5.33.2}/pyproject.toml +1 -1
- {dataops-testgen-5.32.2 → dataops-testgen-5.33.2}/testgen/__main__.py +109 -16
- {dataops-testgen-5.32.2 → dataops-testgen-5.33.2}/testgen/commands/run_launch_db_config.py +5 -4
- {dataops-testgen-5.32.2 → dataops-testgen-5.33.2}/testgen/commands/run_quick_start.py +5 -4
- {dataops-testgen-5.32.2 → dataops-testgen-5.33.2}/testgen/common/database/flavor/flavor_service.py +9 -2
- dataops-testgen-5.33.2/testgen/common/enums.py +29 -0
- dataops-testgen-5.33.2/testgen/common/models/hygiene_issue.py +462 -0
- {dataops-testgen-5.32.2 → dataops-testgen-5.33.2}/testgen/common/models/profiling_run.py +17 -0
- {dataops-testgen-5.32.2 → dataops-testgen-5.33.2}/testgen/common/standalone_postgres.py +7 -0
- {dataops-testgen-5.32.2 → dataops-testgen-5.33.2}/testgen/mcp/prompts/workflows.py +34 -0
- {dataops-testgen-5.32.2 → dataops-testgen-5.33.2}/testgen/mcp/server.py +23 -2
- {dataops-testgen-5.32.2 → dataops-testgen-5.33.2}/testgen/mcp/tools/common.py +93 -0
- dataops-testgen-5.33.2/testgen/mcp/tools/hygiene_issues.py +420 -0
- {dataops-testgen-5.32.2 → dataops-testgen-5.33.2}/testgen/mcp/tools/reference.py +49 -6
- {dataops-testgen-5.32.2 → dataops-testgen-5.33.2}/testgen/mcp/tools/test_definitions.py +13 -12
- {dataops-testgen-5.32.2 → dataops-testgen-5.33.2}/testgen/scheduler/cli_scheduler.py +4 -0
- {dataops-testgen-5.32.2 → dataops-testgen-5.33.2}/testgen/settings.py +9 -10
- {dataops-testgen-5.32.2 → dataops-testgen-5.33.2}/testgen/template/dbsetup_test_types/test_types_Freshness_Trend.yaml +5 -5
- {dataops-testgen-5.32.2 → dataops-testgen-5.33.2}/testgen/ui/components/frontend/js/pages/connections.js +23 -3
- {dataops-testgen-5.32.2 → dataops-testgen-5.33.2}/testgen/ui/static/js/components/table.js +5 -0
- dataops-testgen-5.32.2/PKG-INFO +0 -356
- dataops-testgen-5.32.2/README.md +0 -263
- dataops-testgen-5.32.2/dataops_testgen.egg-info/PKG-INFO +0 -356
- dataops-testgen-5.32.2/testgen/common/models/hygiene_issue.py +0 -178
- {dataops-testgen-5.32.2 → dataops-testgen-5.33.2}/LICENSE +0 -0
- {dataops-testgen-5.32.2 → dataops-testgen-5.33.2}/NOTICE +0 -0
- {dataops-testgen-5.32.2 → dataops-testgen-5.33.2}/dataops_testgen.egg-info/dependency_links.txt +0 -0
- {dataops-testgen-5.32.2 → dataops-testgen-5.33.2}/dataops_testgen.egg-info/entry_points.txt +0 -0
- {dataops-testgen-5.32.2 → dataops-testgen-5.33.2}/dataops_testgen.egg-info/requires.txt +0 -0
- {dataops-testgen-5.32.2 → dataops-testgen-5.33.2}/dataops_testgen.egg-info/top_level.txt +0 -0
- {dataops-testgen-5.32.2 → dataops-testgen-5.33.2}/setup.cfg +0 -0
- {dataops-testgen-5.32.2 → dataops-testgen-5.33.2}/setup.py +0 -0
- {dataops-testgen-5.32.2 → dataops-testgen-5.33.2}/testgen/__init__.py +0 -0
- {dataops-testgen-5.32.2 → dataops-testgen-5.33.2}/testgen/api/__init__.py +0 -0
- {dataops-testgen-5.32.2 → dataops-testgen-5.33.2}/testgen/api/app.py +0 -0
- {dataops-testgen-5.32.2 → dataops-testgen-5.33.2}/testgen/api/deps.py +0 -0
- {dataops-testgen-5.32.2 → dataops-testgen-5.33.2}/testgen/api/jobs.py +0 -0
- {dataops-testgen-5.32.2 → dataops-testgen-5.33.2}/testgen/api/oauth/__init__.py +0 -0
- {dataops-testgen-5.32.2 → dataops-testgen-5.33.2}/testgen/api/oauth/login.py +0 -0
- {dataops-testgen-5.32.2 → dataops-testgen-5.33.2}/testgen/api/oauth/metadata.py +0 -0
- {dataops-testgen-5.32.2 → dataops-testgen-5.33.2}/testgen/api/oauth/models.py +0 -0
- {dataops-testgen-5.32.2 → dataops-testgen-5.33.2}/testgen/api/oauth/routes.py +0 -0
- {dataops-testgen-5.32.2 → dataops-testgen-5.33.2}/testgen/api/oauth/server.py +0 -0
- {dataops-testgen-5.32.2 → dataops-testgen-5.33.2}/testgen/api/runs.py +0 -0
- {dataops-testgen-5.32.2 → dataops-testgen-5.33.2}/testgen/api/schemas.py +0 -0
- {dataops-testgen-5.32.2 → dataops-testgen-5.33.2}/testgen/api/test_definition_service.py +0 -0
- {dataops-testgen-5.32.2 → dataops-testgen-5.33.2}/testgen/api/test_definitions.py +0 -0
- {dataops-testgen-5.32.2 → dataops-testgen-5.33.2}/testgen/commands/__init__.py +0 -0
- {dataops-testgen-5.32.2 → dataops-testgen-5.33.2}/testgen/commands/exec_job.py +0 -0
- {dataops-testgen-5.32.2 → dataops-testgen-5.33.2}/testgen/commands/job_registry.py +0 -0
- {dataops-testgen-5.32.2 → dataops-testgen-5.33.2}/testgen/commands/job_runner.py +0 -0
- {dataops-testgen-5.32.2 → dataops-testgen-5.33.2}/testgen/commands/queries/__init__.py +0 -0
- {dataops-testgen-5.32.2 → dataops-testgen-5.33.2}/testgen/commands/queries/contingency_query.py +0 -0
- {dataops-testgen-5.32.2 → dataops-testgen-5.33.2}/testgen/commands/queries/execute_tests_query.py +0 -0
- {dataops-testgen-5.32.2 → dataops-testgen-5.33.2}/testgen/commands/queries/profiling_query.py +0 -0
- {dataops-testgen-5.32.2 → dataops-testgen-5.33.2}/testgen/commands/queries/refresh_data_chars_query.py +0 -0
- {dataops-testgen-5.32.2 → dataops-testgen-5.33.2}/testgen/commands/queries/rollup_scores_query.py +0 -0
- {dataops-testgen-5.32.2 → dataops-testgen-5.33.2}/testgen/commands/run_get_entities.py +0 -0
- {dataops-testgen-5.32.2 → dataops-testgen-5.33.2}/testgen/commands/run_observability_exporter.py +0 -0
- {dataops-testgen-5.32.2 → dataops-testgen-5.33.2}/testgen/commands/run_pairwise_contingency_check.py +0 -0
- {dataops-testgen-5.32.2 → dataops-testgen-5.33.2}/testgen/commands/run_profiling.py +0 -0
- {dataops-testgen-5.32.2 → dataops-testgen-5.33.2}/testgen/commands/run_recalculate_project_scores.py +0 -0
- {dataops-testgen-5.32.2 → dataops-testgen-5.33.2}/testgen/commands/run_refresh_data_chars.py +0 -0
- {dataops-testgen-5.32.2 → dataops-testgen-5.33.2}/testgen/commands/run_refresh_score_cards_results.py +0 -0
- {dataops-testgen-5.32.2 → dataops-testgen-5.33.2}/testgen/commands/run_rollup_scores.py +0 -0
- {dataops-testgen-5.32.2 → dataops-testgen-5.33.2}/testgen/commands/run_score_update.py +0 -0
- {dataops-testgen-5.32.2 → dataops-testgen-5.33.2}/testgen/commands/run_test_execution.py +0 -0
- {dataops-testgen-5.32.2 → dataops-testgen-5.33.2}/testgen/commands/run_test_metadata_exporter.py +0 -0
- {dataops-testgen-5.32.2 → dataops-testgen-5.33.2}/testgen/commands/run_test_validation.py +0 -0
- {dataops-testgen-5.32.2 → dataops-testgen-5.33.2}/testgen/commands/run_upgrade_db_config.py +0 -0
- {dataops-testgen-5.32.2 → dataops-testgen-5.33.2}/testgen/commands/test_generation.py +0 -0
- {dataops-testgen-5.32.2 → dataops-testgen-5.33.2}/testgen/commands/test_thresholds_prediction.py +0 -0
- {dataops-testgen-5.32.2 → dataops-testgen-5.33.2}/testgen/common/__init__.py +0 -0
- {dataops-testgen-5.32.2 → dataops-testgen-5.33.2}/testgen/common/auth.py +0 -0
- {dataops-testgen-5.32.2 → dataops-testgen-5.33.2}/testgen/common/clean_sql.py +0 -0
- {dataops-testgen-5.32.2 → dataops-testgen-5.33.2}/testgen/common/credentials.py +0 -0
- {dataops-testgen-5.32.2 → dataops-testgen-5.33.2}/testgen/common/database/__init__.py +0 -0
- {dataops-testgen-5.32.2 → dataops-testgen-5.33.2}/testgen/common/database/database_service.py +0 -0
- {dataops-testgen-5.32.2 → dataops-testgen-5.33.2}/testgen/common/database/flavor/__init__.py +0 -0
- {dataops-testgen-5.32.2 → dataops-testgen-5.33.2}/testgen/common/database/flavor/bigquery_flavor_service.py +0 -0
- {dataops-testgen-5.32.2 → dataops-testgen-5.33.2}/testgen/common/database/flavor/databricks_flavor_service.py +0 -0
- {dataops-testgen-5.32.2 → dataops-testgen-5.33.2}/testgen/common/database/flavor/mssql_flavor_service.py +0 -0
- {dataops-testgen-5.32.2 → dataops-testgen-5.33.2}/testgen/common/database/flavor/oracle_flavor_service.py +0 -0
- {dataops-testgen-5.32.2 → dataops-testgen-5.33.2}/testgen/common/database/flavor/postgresql_flavor_service.py +0 -0
- {dataops-testgen-5.32.2 → dataops-testgen-5.33.2}/testgen/common/database/flavor/redshift_flavor_service.py +0 -0
- {dataops-testgen-5.32.2 → dataops-testgen-5.33.2}/testgen/common/database/flavor/redshift_spectrum_flavor_service.py +0 -0
- {dataops-testgen-5.32.2 → dataops-testgen-5.33.2}/testgen/common/database/flavor/sap_hana_flavor_service.py +0 -0
- {dataops-testgen-5.32.2 → dataops-testgen-5.33.2}/testgen/common/database/flavor/snowflake_flavor_service.py +0 -0
- {dataops-testgen-5.32.2 → dataops-testgen-5.33.2}/testgen/common/database/flavor/trino_flavor_service.py +0 -0
- {dataops-testgen-5.32.2 → dataops-testgen-5.33.2}/testgen/common/date_service.py +0 -0
- {dataops-testgen-5.32.2 → dataops-testgen-5.33.2}/testgen/common/display_service.py +0 -0
- {dataops-testgen-5.32.2 → dataops-testgen-5.33.2}/testgen/common/docker_service.py +0 -0
- {dataops-testgen-5.32.2 → dataops-testgen-5.33.2}/testgen/common/encrypt.py +0 -0
- {dataops-testgen-5.32.2 → dataops-testgen-5.33.2}/testgen/common/freshness_service.py +0 -0
- {dataops-testgen-5.32.2 → dataops-testgen-5.33.2}/testgen/common/job_context.py +0 -0
- {dataops-testgen-5.32.2 → dataops-testgen-5.33.2}/testgen/common/logs.py +0 -0
- {dataops-testgen-5.32.2 → dataops-testgen-5.33.2}/testgen/common/mixpanel_service.py +0 -0
- {dataops-testgen-5.32.2 → dataops-testgen-5.33.2}/testgen/common/models/__init__.py +0 -0
- {dataops-testgen-5.32.2 → dataops-testgen-5.33.2}/testgen/common/models/connection.py +0 -0
- {dataops-testgen-5.32.2 → dataops-testgen-5.33.2}/testgen/common/models/custom_types.py +0 -0
- {dataops-testgen-5.32.2 → dataops-testgen-5.33.2}/testgen/common/models/data_column.py +0 -0
- {dataops-testgen-5.32.2 → dataops-testgen-5.33.2}/testgen/common/models/data_table.py +0 -0
- {dataops-testgen-5.32.2 → dataops-testgen-5.33.2}/testgen/common/models/entity.py +0 -0
- {dataops-testgen-5.32.2 → dataops-testgen-5.33.2}/testgen/common/models/job_execution.py +0 -0
- {dataops-testgen-5.32.2 → dataops-testgen-5.33.2}/testgen/common/models/notification_settings.py +0 -0
- {dataops-testgen-5.32.2 → dataops-testgen-5.33.2}/testgen/common/models/profile_result.py +0 -0
- {dataops-testgen-5.32.2 → dataops-testgen-5.33.2}/testgen/common/models/project.py +0 -0
- {dataops-testgen-5.32.2 → dataops-testgen-5.33.2}/testgen/common/models/project_membership.py +0 -0
- {dataops-testgen-5.32.2 → dataops-testgen-5.33.2}/testgen/common/models/scheduler.py +0 -0
- {dataops-testgen-5.32.2 → dataops-testgen-5.33.2}/testgen/common/models/scores.py +0 -0
- {dataops-testgen-5.32.2 → dataops-testgen-5.33.2}/testgen/common/models/settings.py +0 -0
- {dataops-testgen-5.32.2 → dataops-testgen-5.33.2}/testgen/common/models/table_group.py +0 -0
- {dataops-testgen-5.32.2 → dataops-testgen-5.33.2}/testgen/common/models/test_definition.py +0 -0
- {dataops-testgen-5.32.2 → dataops-testgen-5.33.2}/testgen/common/models/test_result.py +0 -0
- {dataops-testgen-5.32.2 → dataops-testgen-5.33.2}/testgen/common/models/test_run.py +0 -0
- {dataops-testgen-5.32.2 → dataops-testgen-5.33.2}/testgen/common/models/test_suite.py +0 -0
- {dataops-testgen-5.32.2 → dataops-testgen-5.33.2}/testgen/common/models/user.py +0 -0
- {dataops-testgen-5.32.2 → dataops-testgen-5.33.2}/testgen/common/notifications/__init__.py +0 -0
- {dataops-testgen-5.32.2 → dataops-testgen-5.33.2}/testgen/common/notifications/base.py +0 -0
- {dataops-testgen-5.32.2 → dataops-testgen-5.33.2}/testgen/common/notifications/monitor_run.py +0 -0
- {dataops-testgen-5.32.2 → dataops-testgen-5.33.2}/testgen/common/notifications/notifications.py +0 -0
- {dataops-testgen-5.32.2 → dataops-testgen-5.33.2}/testgen/common/notifications/profiling_run.py +0 -0
- {dataops-testgen-5.32.2 → dataops-testgen-5.33.2}/testgen/common/notifications/score_drop.py +0 -0
- {dataops-testgen-5.32.2 → dataops-testgen-5.33.2}/testgen/common/notifications/test_run.py +0 -0
- {dataops-testgen-5.32.2 → dataops-testgen-5.33.2}/testgen/common/pii_masking.py +0 -0
- {dataops-testgen-5.32.2 → dataops-testgen-5.33.2}/testgen/common/read_file.py +0 -0
- {dataops-testgen-5.32.2 → dataops-testgen-5.33.2}/testgen/common/read_yaml_metadata_records.py +0 -0
- {dataops-testgen-5.32.2 → dataops-testgen-5.33.2}/testgen/common/source_data_service.py +0 -0
- {dataops-testgen-5.32.2 → dataops-testgen-5.33.2}/testgen/common/time_series_service.py +0 -0
- {dataops-testgen-5.32.2 → dataops-testgen-5.33.2}/testgen/common/version_service.py +0 -0
- {dataops-testgen-5.32.2 → dataops-testgen-5.33.2}/testgen/mcp/__init__.py +0 -0
- {dataops-testgen-5.32.2 → dataops-testgen-5.33.2}/testgen/mcp/auth.py +0 -0
- {dataops-testgen-5.32.2 → dataops-testgen-5.33.2}/testgen/mcp/exceptions.py +0 -0
- {dataops-testgen-5.32.2 → dataops-testgen-5.33.2}/testgen/mcp/permissions.py +0 -0
- {dataops-testgen-5.32.2 → dataops-testgen-5.33.2}/testgen/mcp/prompts/__init__.py +0 -0
- {dataops-testgen-5.32.2 → dataops-testgen-5.33.2}/testgen/mcp/services/__init__.py +0 -0
- {dataops-testgen-5.32.2 → dataops-testgen-5.33.2}/testgen/mcp/services/inventory_service.py +0 -0
- {dataops-testgen-5.32.2 → dataops-testgen-5.33.2}/testgen/mcp/tools/__init__.py +0 -0
- {dataops-testgen-5.32.2 → dataops-testgen-5.33.2}/testgen/mcp/tools/discovery.py +0 -0
- {dataops-testgen-5.32.2 → dataops-testgen-5.33.2}/testgen/mcp/tools/execution.py +0 -0
- {dataops-testgen-5.32.2 → dataops-testgen-5.33.2}/testgen/mcp/tools/markdown.py +0 -0
- {dataops-testgen-5.32.2 → dataops-testgen-5.33.2}/testgen/mcp/tools/profiling.py +0 -0
- {dataops-testgen-5.32.2 → dataops-testgen-5.33.2}/testgen/mcp/tools/source_data.py +0 -0
- {dataops-testgen-5.32.2 → dataops-testgen-5.33.2}/testgen/mcp/tools/test_results.py +0 -0
- {dataops-testgen-5.32.2 → dataops-testgen-5.33.2}/testgen/mcp/tools/test_runs.py +0 -0
- {dataops-testgen-5.32.2 → dataops-testgen-5.33.2}/testgen/scheduler/__init__.py +0 -0
- {dataops-testgen-5.32.2 → dataops-testgen-5.33.2}/testgen/scheduler/base.py +0 -0
- {dataops-testgen-5.32.2 → dataops-testgen-5.33.2}/testgen/server/__init__.py +0 -0
- {dataops-testgen-5.32.2 → dataops-testgen-5.33.2}/testgen/template/contingency/contingency_columns.sql +0 -0
- {dataops-testgen-5.32.2 → dataops-testgen-5.33.2}/testgen/template/contingency/contingency_counts.sql +0 -0
- {dataops-testgen-5.32.2 → dataops-testgen-5.33.2}/testgen/template/data_chars/data_chars_staging_delete.sql +0 -0
- {dataops-testgen-5.32.2 → dataops-testgen-5.33.2}/testgen/template/data_chars/data_chars_update.sql +0 -0
- {dataops-testgen-5.32.2 → dataops-testgen-5.33.2}/testgen/template/dbsetup/010_create_base_schema.sql +0 -0
- {dataops-testgen-5.32.2 → dataops-testgen-5.33.2}/testgen/template/dbsetup/020_create_standard_functions_sprocs.sql +0 -0
- {dataops-testgen-5.32.2 → dataops-testgen-5.33.2}/testgen/template/dbsetup/030_initialize_new_schema_structure.sql +0 -0
- {dataops-testgen-5.32.2 → dataops-testgen-5.33.2}/testgen/template/dbsetup/040_populate_new_schema_project.sql +0 -0
- {dataops-testgen-5.32.2 → dataops-testgen-5.33.2}/testgen/template/dbsetup/050_populate_new_schema_metadata.sql +0 -0
- {dataops-testgen-5.32.2 → dataops-testgen-5.33.2}/testgen/template/dbsetup/055_recreate_metadata_constraints.sql +0 -0
- {dataops-testgen-5.32.2 → dataops-testgen-5.33.2}/testgen/template/dbsetup/060_create_standard_views.sql +0 -0
- {dataops-testgen-5.32.2 → dataops-testgen-5.33.2}/testgen/template/dbsetup/070_create_default_users.sql +0 -0
- {dataops-testgen-5.32.2 → dataops-testgen-5.33.2}/testgen/template/dbsetup/075_grant_role_rights.sql +0 -0
- {dataops-testgen-5.32.2 → dataops-testgen-5.33.2}/testgen/template/dbsetup/080_set_current_revision.sql +0 -0
- {dataops-testgen-5.32.2 → dataops-testgen-5.33.2}/testgen/template/dbsetup_anomaly_types/profile_anomaly_types_Boolean_Value_Mismatch.yaml +0 -0
- {dataops-testgen-5.32.2 → dataops-testgen-5.33.2}/testgen/template/dbsetup_anomaly_types/profile_anomaly_types_Char_Column_Date_Values.yaml +0 -0
- {dataops-testgen-5.32.2 → dataops-testgen-5.33.2}/testgen/template/dbsetup_anomaly_types/profile_anomaly_types_Char_Column_Number_Units.yaml +0 -0
- {dataops-testgen-5.32.2 → dataops-testgen-5.33.2}/testgen/template/dbsetup_anomaly_types/profile_anomaly_types_Char_Column_Number_Values.yaml +0 -0
- {dataops-testgen-5.32.2 → dataops-testgen-5.33.2}/testgen/template/dbsetup_anomaly_types/profile_anomaly_types_Column_Pattern_Mismatch.yaml +0 -0
- {dataops-testgen-5.32.2 → dataops-testgen-5.33.2}/testgen/template/dbsetup_anomaly_types/profile_anomaly_types_Delimited_Data_Embedded.yaml +0 -0
- {dataops-testgen-5.32.2 → dataops-testgen-5.33.2}/testgen/template/dbsetup_anomaly_types/profile_anomaly_types_Inconsistent_Casing.yaml +0 -0
- {dataops-testgen-5.32.2 → dataops-testgen-5.33.2}/testgen/template/dbsetup_anomaly_types/profile_anomaly_types_Invalid_Zip3_USA.yaml +0 -0
- {dataops-testgen-5.32.2 → dataops-testgen-5.33.2}/testgen/template/dbsetup_anomaly_types/profile_anomaly_types_Invalid_Zip_USA.yaml +0 -0
- {dataops-testgen-5.32.2 → dataops-testgen-5.33.2}/testgen/template/dbsetup_anomaly_types/profile_anomaly_types_Leading_Spaces.yaml +0 -0
- {dataops-testgen-5.32.2 → dataops-testgen-5.33.2}/testgen/template/dbsetup_anomaly_types/profile_anomaly_types_Multiple_Types_Major.yaml +0 -0
- {dataops-testgen-5.32.2 → dataops-testgen-5.33.2}/testgen/template/dbsetup_anomaly_types/profile_anomaly_types_Multiple_Types_Minor.yaml +0 -0
- {dataops-testgen-5.32.2 → dataops-testgen-5.33.2}/testgen/template/dbsetup_anomaly_types/profile_anomaly_types_No_Values.yaml +0 -0
- {dataops-testgen-5.32.2 → dataops-testgen-5.33.2}/testgen/template/dbsetup_anomaly_types/profile_anomaly_types_Non_Alpha_Name_Address.yaml +0 -0
- {dataops-testgen-5.32.2 → dataops-testgen-5.33.2}/testgen/template/dbsetup_anomaly_types/profile_anomaly_types_Non_Alpha_Prefixed_Name.yaml +0 -0
- {dataops-testgen-5.32.2 → dataops-testgen-5.33.2}/testgen/template/dbsetup_anomaly_types/profile_anomaly_types_Non_Printing_Chars.yaml +0 -0
- {dataops-testgen-5.32.2 → dataops-testgen-5.33.2}/testgen/template/dbsetup_anomaly_types/profile_anomaly_types_Non_Standard_Blanks.yaml +0 -0
- {dataops-testgen-5.32.2 → dataops-testgen-5.33.2}/testgen/template/dbsetup_anomaly_types/profile_anomaly_types_Potential_Duplicates.yaml +0 -0
- {dataops-testgen-5.32.2 → dataops-testgen-5.33.2}/testgen/template/dbsetup_anomaly_types/profile_anomaly_types_Potential_PII.yaml +0 -0
- {dataops-testgen-5.32.2 → dataops-testgen-5.33.2}/testgen/template/dbsetup_anomaly_types/profile_anomaly_types_Quoted_Values.yaml +0 -0
- {dataops-testgen-5.32.2 → dataops-testgen-5.33.2}/testgen/template/dbsetup_anomaly_types/profile_anomaly_types_Recency_One_Year.yaml +0 -0
- {dataops-testgen-5.32.2 → dataops-testgen-5.33.2}/testgen/template/dbsetup_anomaly_types/profile_anomaly_types_Recency_Six_Months.yaml +0 -0
- {dataops-testgen-5.32.2 → dataops-testgen-5.33.2}/testgen/template/dbsetup_anomaly_types/profile_anomaly_types_Small_Divergent_Value_Ct.yaml +0 -0
- {dataops-testgen-5.32.2 → dataops-testgen-5.33.2}/testgen/template/dbsetup_anomaly_types/profile_anomaly_types_Small_Missing_Value_Ct.yaml +0 -0
- {dataops-testgen-5.32.2 → dataops-testgen-5.33.2}/testgen/template/dbsetup_anomaly_types/profile_anomaly_types_Small_Numeric_Value_Ct.yaml +0 -0
- {dataops-testgen-5.32.2 → dataops-testgen-5.33.2}/testgen/template/dbsetup_anomaly_types/profile_anomaly_types_Standardized_Value_Matches.yaml +0 -0
- {dataops-testgen-5.32.2 → dataops-testgen-5.33.2}/testgen/template/dbsetup_anomaly_types/profile_anomaly_types_Suggested_Type.yaml +0 -0
- {dataops-testgen-5.32.2 → dataops-testgen-5.33.2}/testgen/template/dbsetup_anomaly_types/profile_anomaly_types_Table_Pattern_Mismatch.yaml +0 -0
- {dataops-testgen-5.32.2 → dataops-testgen-5.33.2}/testgen/template/dbsetup_anomaly_types/profile_anomaly_types_Unexpected_Emails.yaml +0 -0
- {dataops-testgen-5.32.2 → dataops-testgen-5.33.2}/testgen/template/dbsetup_anomaly_types/profile_anomaly_types_Unexpected_US_States.yaml +0 -0
- {dataops-testgen-5.32.2 → dataops-testgen-5.33.2}/testgen/template/dbsetup_anomaly_types/profile_anomaly_types_Unlikely_Date_Values.yaml +0 -0
- {dataops-testgen-5.32.2 → dataops-testgen-5.33.2}/testgen/template/dbsetup_anomaly_types/profile_anomaly_types_Variant_Coded_Values.yaml +0 -0
- {dataops-testgen-5.32.2 → dataops-testgen-5.33.2}/testgen/template/dbsetup_test_types/test_types_Aggregate_Balance.yaml +0 -0
- {dataops-testgen-5.32.2 → dataops-testgen-5.33.2}/testgen/template/dbsetup_test_types/test_types_Aggregate_Balance_Percent.yaml +0 -0
- {dataops-testgen-5.32.2 → dataops-testgen-5.33.2}/testgen/template/dbsetup_test_types/test_types_Aggregate_Balance_Range.yaml +0 -0
- {dataops-testgen-5.32.2 → dataops-testgen-5.33.2}/testgen/template/dbsetup_test_types/test_types_Aggregate_Minimum.yaml +0 -0
- {dataops-testgen-5.32.2 → dataops-testgen-5.33.2}/testgen/template/dbsetup_test_types/test_types_Alpha_Trunc.yaml +0 -0
- {dataops-testgen-5.32.2 → dataops-testgen-5.33.2}/testgen/template/dbsetup_test_types/test_types_Avg_Shift.yaml +0 -0
- {dataops-testgen-5.32.2 → dataops-testgen-5.33.2}/testgen/template/dbsetup_test_types/test_types_CUSTOM.yaml +0 -0
- {dataops-testgen-5.32.2 → dataops-testgen-5.33.2}/testgen/template/dbsetup_test_types/test_types_Combo_Match.yaml +0 -0
- {dataops-testgen-5.32.2 → dataops-testgen-5.33.2}/testgen/template/dbsetup_test_types/test_types_Condition_Flag.yaml +0 -0
- {dataops-testgen-5.32.2 → dataops-testgen-5.33.2}/testgen/template/dbsetup_test_types/test_types_Constant.yaml +0 -0
- {dataops-testgen-5.32.2 → dataops-testgen-5.33.2}/testgen/template/dbsetup_test_types/test_types_Daily_Record_Ct.yaml +0 -0
- {dataops-testgen-5.32.2 → dataops-testgen-5.33.2}/testgen/template/dbsetup_test_types/test_types_Dec_Trunc.yaml +0 -0
- {dataops-testgen-5.32.2 → dataops-testgen-5.33.2}/testgen/template/dbsetup_test_types/test_types_Distinct_Date_Ct.yaml +0 -0
- {dataops-testgen-5.32.2 → dataops-testgen-5.33.2}/testgen/template/dbsetup_test_types/test_types_Distinct_Value_Ct.yaml +0 -0
- {dataops-testgen-5.32.2 → dataops-testgen-5.33.2}/testgen/template/dbsetup_test_types/test_types_Distribution_Shift.yaml +0 -0
- {dataops-testgen-5.32.2 → dataops-testgen-5.33.2}/testgen/template/dbsetup_test_types/test_types_Dupe_Rows.yaml +0 -0
- {dataops-testgen-5.32.2 → dataops-testgen-5.33.2}/testgen/template/dbsetup_test_types/test_types_Email_Format.yaml +0 -0
- {dataops-testgen-5.32.2 → dataops-testgen-5.33.2}/testgen/template/dbsetup_test_types/test_types_Future_Date.yaml +0 -0
- {dataops-testgen-5.32.2 → dataops-testgen-5.33.2}/testgen/template/dbsetup_test_types/test_types_Future_Date_1Y.yaml +0 -0
- {dataops-testgen-5.32.2 → dataops-testgen-5.33.2}/testgen/template/dbsetup_test_types/test_types_Incr_Avg_Shift.yaml +0 -0
- {dataops-testgen-5.32.2 → dataops-testgen-5.33.2}/testgen/template/dbsetup_test_types/test_types_LOV_All.yaml +0 -0
- {dataops-testgen-5.32.2 → dataops-testgen-5.33.2}/testgen/template/dbsetup_test_types/test_types_LOV_Match.yaml +0 -0
- {dataops-testgen-5.32.2 → dataops-testgen-5.33.2}/testgen/template/dbsetup_test_types/test_types_Metric_Trend.yaml +0 -0
- {dataops-testgen-5.32.2 → dataops-testgen-5.33.2}/testgen/template/dbsetup_test_types/test_types_Min_Date.yaml +0 -0
- {dataops-testgen-5.32.2 → dataops-testgen-5.33.2}/testgen/template/dbsetup_test_types/test_types_Min_Val.yaml +0 -0
- {dataops-testgen-5.32.2 → dataops-testgen-5.33.2}/testgen/template/dbsetup_test_types/test_types_Missing_Pct.yaml +0 -0
- {dataops-testgen-5.32.2 → dataops-testgen-5.33.2}/testgen/template/dbsetup_test_types/test_types_Monthly_Rec_Ct.yaml +0 -0
- {dataops-testgen-5.32.2 → dataops-testgen-5.33.2}/testgen/template/dbsetup_test_types/test_types_Outlier_Pct_Above.yaml +0 -0
- {dataops-testgen-5.32.2 → dataops-testgen-5.33.2}/testgen/template/dbsetup_test_types/test_types_Outlier_Pct_Below.yaml +0 -0
- {dataops-testgen-5.32.2 → dataops-testgen-5.33.2}/testgen/template/dbsetup_test_types/test_types_Pattern_Match.yaml +0 -0
- {dataops-testgen-5.32.2 → dataops-testgen-5.33.2}/testgen/template/dbsetup_test_types/test_types_Recency.yaml +0 -0
- {dataops-testgen-5.32.2 → dataops-testgen-5.33.2}/testgen/template/dbsetup_test_types/test_types_Required.yaml +0 -0
- {dataops-testgen-5.32.2 → dataops-testgen-5.33.2}/testgen/template/dbsetup_test_types/test_types_Row_Ct.yaml +0 -0
- {dataops-testgen-5.32.2 → dataops-testgen-5.33.2}/testgen/template/dbsetup_test_types/test_types_Row_Ct_Pct.yaml +0 -0
- {dataops-testgen-5.32.2 → dataops-testgen-5.33.2}/testgen/template/dbsetup_test_types/test_types_Schema_Drift.yaml +0 -0
- {dataops-testgen-5.32.2 → dataops-testgen-5.33.2}/testgen/template/dbsetup_test_types/test_types_Street_Addr_Pattern.yaml +0 -0
- {dataops-testgen-5.32.2 → dataops-testgen-5.33.2}/testgen/template/dbsetup_test_types/test_types_Table_Freshness.yaml +0 -0
- {dataops-testgen-5.32.2 → dataops-testgen-5.33.2}/testgen/template/dbsetup_test_types/test_types_Timeframe_Combo_Gain.yaml +0 -0
- {dataops-testgen-5.32.2 → dataops-testgen-5.33.2}/testgen/template/dbsetup_test_types/test_types_Timeframe_Combo_Match.yaml +0 -0
- {dataops-testgen-5.32.2 → dataops-testgen-5.33.2}/testgen/template/dbsetup_test_types/test_types_US_State.yaml +0 -0
- {dataops-testgen-5.32.2 → dataops-testgen-5.33.2}/testgen/template/dbsetup_test_types/test_types_Unique.yaml +0 -0
- {dataops-testgen-5.32.2 → dataops-testgen-5.33.2}/testgen/template/dbsetup_test_types/test_types_Unique_Pct.yaml +0 -0
- {dataops-testgen-5.32.2 → dataops-testgen-5.33.2}/testgen/template/dbsetup_test_types/test_types_Valid_Characters.yaml +0 -0
- {dataops-testgen-5.32.2 → dataops-testgen-5.33.2}/testgen/template/dbsetup_test_types/test_types_Valid_Month.yaml +0 -0
- {dataops-testgen-5.32.2 → dataops-testgen-5.33.2}/testgen/template/dbsetup_test_types/test_types_Valid_US_Zip.yaml +0 -0
- {dataops-testgen-5.32.2 → dataops-testgen-5.33.2}/testgen/template/dbsetup_test_types/test_types_Valid_US_Zip3.yaml +0 -0
- {dataops-testgen-5.32.2 → dataops-testgen-5.33.2}/testgen/template/dbsetup_test_types/test_types_Variability_Decrease.yaml +0 -0
- {dataops-testgen-5.32.2 → dataops-testgen-5.33.2}/testgen/template/dbsetup_test_types/test_types_Variability_Increase.yaml +0 -0
- {dataops-testgen-5.32.2 → dataops-testgen-5.33.2}/testgen/template/dbsetup_test_types/test_types_Volume_Trend.yaml +0 -0
- {dataops-testgen-5.32.2 → dataops-testgen-5.33.2}/testgen/template/dbsetup_test_types/test_types_Weekly_Rec_Ct.yaml +0 -0
- {dataops-testgen-5.32.2 → dataops-testgen-5.33.2}/testgen/template/dbupgrade/0100_incremental_upgrade.sql +0 -0
- {dataops-testgen-5.32.2 → dataops-testgen-5.33.2}/testgen/template/dbupgrade/0101_incremental_upgrade.sql +0 -0
- {dataops-testgen-5.32.2 → dataops-testgen-5.33.2}/testgen/template/dbupgrade/0102_incremental_upgrade.sql +0 -0
- {dataops-testgen-5.32.2 → dataops-testgen-5.33.2}/testgen/template/dbupgrade/0103_incremental_upgrade.sql +0 -0
- {dataops-testgen-5.32.2 → dataops-testgen-5.33.2}/testgen/template/dbupgrade/0104_incremental_upgrade.sql +0 -0
- {dataops-testgen-5.32.2 → dataops-testgen-5.33.2}/testgen/template/dbupgrade/0105_incremental_upgrade.sql +0 -0
- {dataops-testgen-5.32.2 → dataops-testgen-5.33.2}/testgen/template/dbupgrade/0106_incremental_upgrade.sql +0 -0
- {dataops-testgen-5.32.2 → dataops-testgen-5.33.2}/testgen/template/dbupgrade/0107_incremental_upgrade.sql +0 -0
- {dataops-testgen-5.32.2 → dataops-testgen-5.33.2}/testgen/template/dbupgrade/0108_incremental_upgrade.sql +0 -0
- {dataops-testgen-5.32.2 → dataops-testgen-5.33.2}/testgen/template/dbupgrade/0109_incremental_upgrade.sql +0 -0
- {dataops-testgen-5.32.2 → dataops-testgen-5.33.2}/testgen/template/dbupgrade/0110_incremental_upgrade.sql +0 -0
- {dataops-testgen-5.32.2 → dataops-testgen-5.33.2}/testgen/template/dbupgrade/0111_incremental_upgrade.sql +0 -0
- {dataops-testgen-5.32.2 → dataops-testgen-5.33.2}/testgen/template/dbupgrade/0112_incremental_upgrade.sql +0 -0
- {dataops-testgen-5.32.2 → dataops-testgen-5.33.2}/testgen/template/dbupgrade/0113_incremental_upgrade.sql +0 -0
- {dataops-testgen-5.32.2 → dataops-testgen-5.33.2}/testgen/template/dbupgrade/0114_incremental_upgrade.sql +0 -0
- {dataops-testgen-5.32.2 → dataops-testgen-5.33.2}/testgen/template/dbupgrade/0115_incremental_upgrade.sql +0 -0
- {dataops-testgen-5.32.2 → dataops-testgen-5.33.2}/testgen/template/dbupgrade/0116_incremental_upgrade.sql +0 -0
- {dataops-testgen-5.32.2 → dataops-testgen-5.33.2}/testgen/template/dbupgrade/0117_incremental_upgrade.sql +0 -0
- {dataops-testgen-5.32.2 → dataops-testgen-5.33.2}/testgen/template/dbupgrade/0118_incremental_upgrade.sql +0 -0
- {dataops-testgen-5.32.2 → dataops-testgen-5.33.2}/testgen/template/dbupgrade/0119_incremental_upgrade.sql +0 -0
- {dataops-testgen-5.32.2 → dataops-testgen-5.33.2}/testgen/template/dbupgrade/0120_incremental_upgrade.sql +0 -0
- {dataops-testgen-5.32.2 → dataops-testgen-5.33.2}/testgen/template/dbupgrade/0121_incremental_upgrade.sql +0 -0
- {dataops-testgen-5.32.2 → dataops-testgen-5.33.2}/testgen/template/dbupgrade/0122_incremental_upgrade.sql +0 -0
- {dataops-testgen-5.32.2 → dataops-testgen-5.33.2}/testgen/template/dbupgrade/0123_incremental_upgrade.sql +0 -0
- {dataops-testgen-5.32.2 → dataops-testgen-5.33.2}/testgen/template/dbupgrade/0124_incremental_upgrade.sql +0 -0
- {dataops-testgen-5.32.2 → dataops-testgen-5.33.2}/testgen/template/dbupgrade/0125_incremental_upgrade.sql +0 -0
- {dataops-testgen-5.32.2 → dataops-testgen-5.33.2}/testgen/template/dbupgrade/0126_incremental_upgrade.sql +0 -0
- {dataops-testgen-5.32.2 → dataops-testgen-5.33.2}/testgen/template/dbupgrade/0127_incremental_upgrade.sql +0 -0
- {dataops-testgen-5.32.2 → dataops-testgen-5.33.2}/testgen/template/dbupgrade/0128_incremental_upgrade.sql +0 -0
- {dataops-testgen-5.32.2 → dataops-testgen-5.33.2}/testgen/template/dbupgrade/0129_incremental_upgrade.sql +0 -0
- {dataops-testgen-5.32.2 → dataops-testgen-5.33.2}/testgen/template/dbupgrade/0130_incremental_upgrade.sql +0 -0
- {dataops-testgen-5.32.2 → dataops-testgen-5.33.2}/testgen/template/dbupgrade/0131_incremental_upgrade.sql +0 -0
- {dataops-testgen-5.32.2 → dataops-testgen-5.33.2}/testgen/template/dbupgrade/0132_incremental_upgrade.sql +0 -0
- {dataops-testgen-5.32.2 → dataops-testgen-5.33.2}/testgen/template/dbupgrade/0133_incremental_upgrade.sql +0 -0
- {dataops-testgen-5.32.2 → dataops-testgen-5.33.2}/testgen/template/dbupgrade/0134_incremental_upgrade.sql +0 -0
- {dataops-testgen-5.32.2 → dataops-testgen-5.33.2}/testgen/template/dbupgrade/0135_incremental_upgrade.sql +0 -0
- {dataops-testgen-5.32.2 → dataops-testgen-5.33.2}/testgen/template/dbupgrade/0136_incremental_upgrade.sql +0 -0
- {dataops-testgen-5.32.2 → dataops-testgen-5.33.2}/testgen/template/dbupgrade/0137_incremental_upgrade.sql +0 -0
- {dataops-testgen-5.32.2 → dataops-testgen-5.33.2}/testgen/template/dbupgrade/0138_incremental_upgrade.sql +0 -0
- {dataops-testgen-5.32.2 → dataops-testgen-5.33.2}/testgen/template/dbupgrade/0139_incremental_upgrade.sql +0 -0
- {dataops-testgen-5.32.2 → dataops-testgen-5.33.2}/testgen/template/dbupgrade/0140_incremental_upgrade.sql +0 -0
- {dataops-testgen-5.32.2 → dataops-testgen-5.33.2}/testgen/template/dbupgrade/0141_incremental_upgrade.sql +0 -0
- {dataops-testgen-5.32.2 → dataops-testgen-5.33.2}/testgen/template/dbupgrade/0142_incremental_upgrade.sql +0 -0
- {dataops-testgen-5.32.2 → dataops-testgen-5.33.2}/testgen/template/dbupgrade/0143_incremental_upgrade.sql +0 -0
- {dataops-testgen-5.32.2 → dataops-testgen-5.33.2}/testgen/template/dbupgrade/0144_incremental_upgrade.sql +0 -0
- {dataops-testgen-5.32.2 → dataops-testgen-5.33.2}/testgen/template/dbupgrade/0145_incremental_upgrade.sql +0 -0
- {dataops-testgen-5.32.2 → dataops-testgen-5.33.2}/testgen/template/dbupgrade/0146_incremental_upgrade.sql +0 -0
- {dataops-testgen-5.32.2 → dataops-testgen-5.33.2}/testgen/template/dbupgrade/0147_incremental_upgrade.sql +0 -0
- {dataops-testgen-5.32.2 → dataops-testgen-5.33.2}/testgen/template/dbupgrade/0148_incremental_upgrade.sql +0 -0
- {dataops-testgen-5.32.2 → dataops-testgen-5.33.2}/testgen/template/dbupgrade/0149_incremental_upgrade.sql +0 -0
- {dataops-testgen-5.32.2 → dataops-testgen-5.33.2}/testgen/template/dbupgrade/0150_incremental_upgrade.sql +0 -0
- {dataops-testgen-5.32.2 → dataops-testgen-5.33.2}/testgen/template/dbupgrade/0151_incremental_upgrade.sql +0 -0
- {dataops-testgen-5.32.2 → dataops-testgen-5.33.2}/testgen/template/dbupgrade/0152_incremental_upgrade.sql +0 -0
- {dataops-testgen-5.32.2 → dataops-testgen-5.33.2}/testgen/template/dbupgrade/0153_incremental_upgrade.sql +0 -0
- {dataops-testgen-5.32.2 → dataops-testgen-5.33.2}/testgen/template/dbupgrade/0154_incremental_upgrade.sql +0 -0
- {dataops-testgen-5.32.2 → dataops-testgen-5.33.2}/testgen/template/dbupgrade/0155_incremental_upgrade.sql +0 -0
- {dataops-testgen-5.32.2 → dataops-testgen-5.33.2}/testgen/template/dbupgrade/0156_incremental_upgrade.sql +0 -0
- {dataops-testgen-5.32.2 → dataops-testgen-5.33.2}/testgen/template/dbupgrade/0157_incremental_upgrade.sql +0 -0
- {dataops-testgen-5.32.2 → dataops-testgen-5.33.2}/testgen/template/dbupgrade/0158_incremental_upgrade.sql +0 -0
- {dataops-testgen-5.32.2 → dataops-testgen-5.33.2}/testgen/template/dbupgrade/0159_incremental_upgrade.sql +0 -0
- {dataops-testgen-5.32.2 → dataops-testgen-5.33.2}/testgen/template/dbupgrade/0160_incremental_upgrade.sql +0 -0
- {dataops-testgen-5.32.2 → dataops-testgen-5.33.2}/testgen/template/dbupgrade/0161_incremental_upgrade.sql +0 -0
- {dataops-testgen-5.32.2 → dataops-testgen-5.33.2}/testgen/template/dbupgrade/0162_incremental_upgrade.sql +0 -0
- {dataops-testgen-5.32.2 → dataops-testgen-5.33.2}/testgen/template/dbupgrade/0163_incremental_upgrade.sql +0 -0
- {dataops-testgen-5.32.2 → dataops-testgen-5.33.2}/testgen/template/dbupgrade/0164_incremental_upgrade.sql +0 -0
- {dataops-testgen-5.32.2 → dataops-testgen-5.33.2}/testgen/template/dbupgrade/0165_incremental_upgrade.sql +0 -0
- {dataops-testgen-5.32.2 → dataops-testgen-5.33.2}/testgen/template/dbupgrade/0166_incremental_upgrade.sql +0 -0
- {dataops-testgen-5.32.2 → dataops-testgen-5.33.2}/testgen/template/dbupgrade/0167_incremental_upgrade.sql +0 -0
- {dataops-testgen-5.32.2 → dataops-testgen-5.33.2}/testgen/template/dbupgrade/0168_incremental_upgrade.sql +0 -0
- {dataops-testgen-5.32.2 → dataops-testgen-5.33.2}/testgen/template/dbupgrade/0169_incremental_upgrade.sql +0 -0
- {dataops-testgen-5.32.2 → dataops-testgen-5.33.2}/testgen/template/dbupgrade/0170_incremental_upgrade.sql +0 -0
- {dataops-testgen-5.32.2 → dataops-testgen-5.33.2}/testgen/template/dbupgrade/0171_incremental_upgrade.sql +0 -0
- {dataops-testgen-5.32.2 → dataops-testgen-5.33.2}/testgen/template/dbupgrade/0172_incremental_upgrade.sql +0 -0
- {dataops-testgen-5.32.2 → dataops-testgen-5.33.2}/testgen/template/dbupgrade/0173_incremental_upgrade.sql +0 -0
- {dataops-testgen-5.32.2 → dataops-testgen-5.33.2}/testgen/template/dbupgrade/0174_incremental_upgrade.sql +0 -0
- {dataops-testgen-5.32.2 → dataops-testgen-5.33.2}/testgen/template/dbupgrade/0175_incremental_upgrade.sql +0 -0
- {dataops-testgen-5.32.2 → dataops-testgen-5.33.2}/testgen/template/dbupgrade/0176_incremental_upgrade.sql +0 -0
- {dataops-testgen-5.32.2 → dataops-testgen-5.33.2}/testgen/template/dbupgrade/0177_incremental_upgrade.sql +0 -0
- {dataops-testgen-5.32.2 → dataops-testgen-5.33.2}/testgen/template/dbupgrade/0178_incremental_upgrade.sql +0 -0
- {dataops-testgen-5.32.2 → dataops-testgen-5.33.2}/testgen/template/dbupgrade/0179_incremental_upgrade.sql +0 -0
- {dataops-testgen-5.32.2 → dataops-testgen-5.33.2}/testgen/template/dbupgrade/0180_incremental_upgrade.sql +0 -0
- {dataops-testgen-5.32.2 → dataops-testgen-5.33.2}/testgen/template/dbupgrade/0181_incremental_upgrade.sql +0 -0
- {dataops-testgen-5.32.2 → dataops-testgen-5.33.2}/testgen/template/dbupgrade/0182_incremental_upgrade.sql +0 -0
- {dataops-testgen-5.32.2 → dataops-testgen-5.33.2}/testgen/template/dbupgrade/0183_incremental_upgrade.sql +0 -0
- {dataops-testgen-5.32.2 → dataops-testgen-5.33.2}/testgen/template/dbupgrade/0184_incremental_upgrade.sql +0 -0
- {dataops-testgen-5.32.2 → dataops-testgen-5.33.2}/testgen/template/dbupgrade/0185_incremental_upgrade.sql +0 -0
- {dataops-testgen-5.32.2 → dataops-testgen-5.33.2}/testgen/template/dbupgrade/0186_incremental_upgrade.sql +0 -0
- {dataops-testgen-5.32.2 → dataops-testgen-5.33.2}/testgen/template/dbupgrade/0187_incremental_upgrade.sql +0 -0
- {dataops-testgen-5.32.2 → dataops-testgen-5.33.2}/testgen/template/dbupgrade_helpers/get_tg_revision.sql +0 -0
- {dataops-testgen-5.32.2 → dataops-testgen-5.33.2}/testgen/template/execution/disable_invalid_test_definitions.sql +0 -0
- {dataops-testgen-5.32.2 → dataops-testgen-5.33.2}/testgen/template/execution/ex_get_tests_metadata.sql +0 -0
- {dataops-testgen-5.32.2 → dataops-testgen-5.33.2}/testgen/template/execution/get_active_test_definitions.sql +0 -0
- {dataops-testgen-5.32.2 → dataops-testgen-5.33.2}/testgen/template/execution/get_errored_autogen_monitors.sql +0 -0
- {dataops-testgen-5.32.2 → dataops-testgen-5.33.2}/testgen/template/execution/get_missing_freshness_monitors.sql +0 -0
- {dataops-testgen-5.32.2 → dataops-testgen-5.33.2}/testgen/template/execution/has_schema_changes.sql +0 -0
- {dataops-testgen-5.32.2 → dataops-testgen-5.33.2}/testgen/template/execution/update_history_calc_thresholds.sql +0 -0
- {dataops-testgen-5.32.2 → dataops-testgen-5.33.2}/testgen/template/execution/update_test_results.sql +0 -0
- {dataops-testgen-5.32.2 → dataops-testgen-5.33.2}/testgen/template/execution/update_test_run_stats.sql +0 -0
- {dataops-testgen-5.32.2 → dataops-testgen-5.33.2}/testgen/template/flavors/bigquery/data_chars/get_schema_ddf.sql +0 -0
- {dataops-testgen-5.32.2 → dataops-testgen-5.33.2}/testgen/template/flavors/bigquery/gen_query_tests/gen_Freshness_Trend.sql +0 -0
- {dataops-testgen-5.32.2 → dataops-testgen-5.33.2}/testgen/template/flavors/bigquery/gen_query_tests/gen_Table_Freshness.sql +0 -0
- {dataops-testgen-5.32.2 → dataops-testgen-5.33.2}/testgen/template/flavors/bigquery/profiling/project_profiling_query.sql +0 -0
- {dataops-testgen-5.32.2 → dataops-testgen-5.33.2}/testgen/template/flavors/bigquery/profiling/project_secondary_profiling_query.sql +0 -0
- {dataops-testgen-5.32.2 → dataops-testgen-5.33.2}/testgen/template/flavors/bigquery/profiling/templated_functions.yaml +0 -0
- {dataops-testgen-5.32.2 → dataops-testgen-5.33.2}/testgen/template/flavors/bigquery/validate_tests/get_target_identifiers.sql +0 -0
- {dataops-testgen-5.32.2 → dataops-testgen-5.33.2}/testgen/template/flavors/databricks/data_chars/get_schema_ddf.sql +0 -0
- {dataops-testgen-5.32.2 → dataops-testgen-5.33.2}/testgen/template/flavors/databricks/gen_query_tests/gen_Freshness_Trend.sql +0 -0
- {dataops-testgen-5.32.2 → dataops-testgen-5.33.2}/testgen/template/flavors/databricks/gen_query_tests/gen_Table_Freshness.sql +0 -0
- {dataops-testgen-5.32.2 → dataops-testgen-5.33.2}/testgen/template/flavors/databricks/profiling/project_profiling_query.sql +0 -0
- {dataops-testgen-5.32.2 → dataops-testgen-5.33.2}/testgen/template/flavors/databricks/profiling/project_secondary_profiling_query.sql +0 -0
- {dataops-testgen-5.32.2 → dataops-testgen-5.33.2}/testgen/template/flavors/databricks/profiling/templated_functions.yaml +0 -0
- {dataops-testgen-5.32.2 → dataops-testgen-5.33.2}/testgen/template/flavors/generic/validate_tests/get_target_identifiers.sql +0 -0
- {dataops-testgen-5.32.2 → dataops-testgen-5.33.2}/testgen/template/flavors/mssql/data_chars/get_schema_ddf.sql +0 -0
- {dataops-testgen-5.32.2 → dataops-testgen-5.33.2}/testgen/template/flavors/mssql/gen_query_tests/gen_Freshness_Trend.sql +0 -0
- {dataops-testgen-5.32.2 → dataops-testgen-5.33.2}/testgen/template/flavors/mssql/gen_query_tests/gen_Table_Freshness.sql +0 -0
- {dataops-testgen-5.32.2 → dataops-testgen-5.33.2}/testgen/template/flavors/mssql/profiling/project_profiling_query.sql +0 -0
- {dataops-testgen-5.32.2 → dataops-testgen-5.33.2}/testgen/template/flavors/mssql/profiling/project_secondary_profiling_query.sql +0 -0
- {dataops-testgen-5.32.2 → dataops-testgen-5.33.2}/testgen/template/flavors/mssql/profiling/templated_functions.yaml +0 -0
- {dataops-testgen-5.32.2 → dataops-testgen-5.33.2}/testgen/template/flavors/oracle/data_chars/get_schema_ddf.sql +0 -0
- {dataops-testgen-5.32.2 → dataops-testgen-5.33.2}/testgen/template/flavors/oracle/gen_query_tests/gen_Dupe_Rows.sql +0 -0
- {dataops-testgen-5.32.2 → dataops-testgen-5.33.2}/testgen/template/flavors/oracle/gen_query_tests/gen_Freshness_Trend.sql +0 -0
- {dataops-testgen-5.32.2 → dataops-testgen-5.33.2}/testgen/template/flavors/oracle/gen_query_tests/gen_Table_Freshness.sql +0 -0
- {dataops-testgen-5.32.2 → dataops-testgen-5.33.2}/testgen/template/flavors/oracle/profiling/project_profiling_query.sql +0 -0
- {dataops-testgen-5.32.2 → dataops-testgen-5.33.2}/testgen/template/flavors/oracle/profiling/project_secondary_profiling_query.sql +0 -0
- {dataops-testgen-5.32.2 → dataops-testgen-5.33.2}/testgen/template/flavors/oracle/profiling/templated_functions.yaml +0 -0
- {dataops-testgen-5.32.2 → dataops-testgen-5.33.2}/testgen/template/flavors/oracle/validate_tests/get_target_identifiers.sql +0 -0
- {dataops-testgen-5.32.2 → dataops-testgen-5.33.2}/testgen/template/flavors/postgresql/data_chars/get_schema_ddf.sql +0 -0
- {dataops-testgen-5.32.2 → dataops-testgen-5.33.2}/testgen/template/flavors/postgresql/profiling/project_profiling_query.sql +0 -0
- {dataops-testgen-5.32.2 → dataops-testgen-5.33.2}/testgen/template/flavors/postgresql/profiling/project_secondary_profiling_query.sql +0 -0
- {dataops-testgen-5.32.2 → dataops-testgen-5.33.2}/testgen/template/flavors/postgresql/profiling/templated_functions.yaml +0 -0
- {dataops-testgen-5.32.2 → dataops-testgen-5.33.2}/testgen/template/flavors/redshift/data_chars/get_schema_ddf.sql +0 -0
- {dataops-testgen-5.32.2 → dataops-testgen-5.33.2}/testgen/template/flavors/redshift/profiling/project_profiling_query.sql +0 -0
- {dataops-testgen-5.32.2 → dataops-testgen-5.33.2}/testgen/template/flavors/redshift/profiling/project_secondary_profiling_query.sql +0 -0
- {dataops-testgen-5.32.2 → dataops-testgen-5.33.2}/testgen/template/flavors/redshift/profiling/templated_functions.yaml +0 -0
- {dataops-testgen-5.32.2 → dataops-testgen-5.33.2}/testgen/template/flavors/redshift_spectrum/data_chars/get_schema_ddf.sql +0 -0
- {dataops-testgen-5.32.2 → dataops-testgen-5.33.2}/testgen/template/flavors/redshift_spectrum/profiling/project_profiling_query.sql +0 -0
- {dataops-testgen-5.32.2 → dataops-testgen-5.33.2}/testgen/template/flavors/redshift_spectrum/profiling/project_secondary_profiling_query.sql +0 -0
- {dataops-testgen-5.32.2 → dataops-testgen-5.33.2}/testgen/template/flavors/redshift_spectrum/profiling/templated_functions.yaml +0 -0
- {dataops-testgen-5.32.2 → dataops-testgen-5.33.2}/testgen/template/flavors/redshift_spectrum/validate_tests/get_target_identifiers.sql +0 -0
- {dataops-testgen-5.32.2 → dataops-testgen-5.33.2}/testgen/template/flavors/sap_hana/data_chars/get_schema_ddf.sql +0 -0
- {dataops-testgen-5.32.2 → dataops-testgen-5.33.2}/testgen/template/flavors/sap_hana/gen_query_tests/gen_Dupe_Rows.sql +0 -0
- {dataops-testgen-5.32.2 → dataops-testgen-5.33.2}/testgen/template/flavors/sap_hana/gen_query_tests/gen_Freshness_Trend.sql +0 -0
- {dataops-testgen-5.32.2 → dataops-testgen-5.33.2}/testgen/template/flavors/sap_hana/gen_query_tests/gen_Table_Freshness.sql +0 -0
- {dataops-testgen-5.32.2 → dataops-testgen-5.33.2}/testgen/template/flavors/sap_hana/profiling/project_profiling_query.sql +0 -0
- {dataops-testgen-5.32.2 → dataops-testgen-5.33.2}/testgen/template/flavors/sap_hana/profiling/project_secondary_profiling_query.sql +0 -0
- {dataops-testgen-5.32.2 → dataops-testgen-5.33.2}/testgen/template/flavors/sap_hana/profiling/templated_functions.yaml +0 -0
- {dataops-testgen-5.32.2 → dataops-testgen-5.33.2}/testgen/template/flavors/sap_hana/validate_tests/get_target_identifiers.sql +0 -0
- {dataops-testgen-5.32.2 → dataops-testgen-5.33.2}/testgen/template/flavors/snowflake/data_chars/get_schema_ddf.sql +0 -0
- {dataops-testgen-5.32.2 → dataops-testgen-5.33.2}/testgen/template/flavors/snowflake/profiling/project_profiling_query.sql +0 -0
- {dataops-testgen-5.32.2 → dataops-testgen-5.33.2}/testgen/template/flavors/snowflake/profiling/project_secondary_profiling_query.sql +0 -0
- {dataops-testgen-5.32.2 → dataops-testgen-5.33.2}/testgen/template/flavors/snowflake/profiling/templated_functions.yaml +0 -0
- {dataops-testgen-5.32.2 → dataops-testgen-5.33.2}/testgen/template/flavors/trino/profiling/project_profiling_query.yaml +0 -0
- {dataops-testgen-5.32.2 → dataops-testgen-5.33.2}/testgen/template/gen_funny_cat_tests/gen_Constant.sql +0 -0
- {dataops-testgen-5.32.2 → dataops-testgen-5.33.2}/testgen/template/gen_funny_cat_tests/gen_Distinct_Value_Ct.sql +0 -0
- {dataops-testgen-5.32.2 → dataops-testgen-5.33.2}/testgen/template/gen_query_tests/gen_Dupe_Rows.sql +0 -0
- {dataops-testgen-5.32.2 → dataops-testgen-5.33.2}/testgen/template/gen_query_tests/gen_Freshness_Trend.sql +0 -0
- {dataops-testgen-5.32.2 → dataops-testgen-5.33.2}/testgen/template/gen_query_tests/gen_Schema_Drift.sql +0 -0
- {dataops-testgen-5.32.2 → dataops-testgen-5.33.2}/testgen/template/gen_query_tests/gen_Table_Freshness.sql +0 -0
- {dataops-testgen-5.32.2 → dataops-testgen-5.33.2}/testgen/template/gen_query_tests/gen_Volume_Trend.sql +0 -0
- {dataops-testgen-5.32.2 → dataops-testgen-5.33.2}/testgen/template/generation/delete_stale_autogen_tests.sql +0 -0
- {dataops-testgen-5.32.2 → dataops-testgen-5.33.2}/testgen/template/generation/delete_stale_monitors.sql +0 -0
- {dataops-testgen-5.32.2 → dataops-testgen-5.33.2}/testgen/template/generation/gen_selection_tests.sql +0 -0
- {dataops-testgen-5.32.2 → dataops-testgen-5.33.2}/testgen/template/generation/get_test_types.sql +0 -0
- {dataops-testgen-5.32.2 → dataops-testgen-5.33.2}/testgen/template/get_entities/get_connections_list.sql +0 -0
- {dataops-testgen-5.32.2 → dataops-testgen-5.33.2}/testgen/template/get_entities/get_profile_info.sql +0 -0
- {dataops-testgen-5.32.2 → dataops-testgen-5.33.2}/testgen/template/get_entities/get_profile_list.sql +0 -0
- {dataops-testgen-5.32.2 → dataops-testgen-5.33.2}/testgen/template/get_entities/get_profile_screen.sql +0 -0
- {dataops-testgen-5.32.2 → dataops-testgen-5.33.2}/testgen/template/get_entities/get_project_list.sql +0 -0
- {dataops-testgen-5.32.2 → dataops-testgen-5.33.2}/testgen/template/get_entities/get_table_group_list.sql +0 -0
- {dataops-testgen-5.32.2 → dataops-testgen-5.33.2}/testgen/template/get_entities/get_test_generation_list.sql +0 -0
- {dataops-testgen-5.32.2 → dataops-testgen-5.33.2}/testgen/template/get_entities/get_test_info.sql +0 -0
- {dataops-testgen-5.32.2 → dataops-testgen-5.33.2}/testgen/template/get_entities/get_test_results_for_run_cli.sql +0 -0
- {dataops-testgen-5.32.2 → dataops-testgen-5.33.2}/testgen/template/get_entities/get_test_run_list.sql +0 -0
- {dataops-testgen-5.32.2 → dataops-testgen-5.33.2}/testgen/template/get_entities/get_test_suite.sql +0 -0
- {dataops-testgen-5.32.2 → dataops-testgen-5.33.2}/testgen/template/get_entities/get_test_suite_list.sql +0 -0
- {dataops-testgen-5.32.2 → dataops-testgen-5.33.2}/testgen/template/get_entities/list_test_types.sql +0 -0
- {dataops-testgen-5.32.2 → dataops-testgen-5.33.2}/testgen/template/observability/get_event_data.sql +0 -0
- {dataops-testgen-5.32.2 → dataops-testgen-5.33.2}/testgen/template/observability/get_test_results.sql +0 -0
- {dataops-testgen-5.32.2 → dataops-testgen-5.33.2}/testgen/template/observability/update_test_results_exported_to_observability.sql +0 -0
- {dataops-testgen-5.32.2 → dataops-testgen-5.33.2}/testgen/template/prediction/delete_staging_test_definitions.sql +0 -0
- {dataops-testgen-5.32.2 → dataops-testgen-5.33.2}/testgen/template/prediction/get_historical_test_results.sql +0 -0
- {dataops-testgen-5.32.2 → dataops-testgen-5.33.2}/testgen/template/prediction/update_predicted_test_thresholds.sql +0 -0
- {dataops-testgen-5.32.2 → dataops-testgen-5.33.2}/testgen/template/profiling/cde_flagger_query.sql +0 -0
- {dataops-testgen-5.32.2 → dataops-testgen-5.33.2}/testgen/template/profiling/datatype_suggestions.sql +0 -0
- {dataops-testgen-5.32.2 → dataops-testgen-5.33.2}/testgen/template/profiling/dq_score_weight_update.sql +0 -0
- {dataops-testgen-5.32.2 → dataops-testgen-5.33.2}/testgen/template/profiling/functional_datatype.sql +0 -0
- {dataops-testgen-5.32.2 → dataops-testgen-5.33.2}/testgen/template/profiling/functional_tabletype_stage.sql +0 -0
- {dataops-testgen-5.32.2 → dataops-testgen-5.33.2}/testgen/template/profiling/functional_tabletype_update.sql +0 -0
- {dataops-testgen-5.32.2 → dataops-testgen-5.33.2}/testgen/template/profiling/pii_flag.sql +0 -0
- {dataops-testgen-5.32.2 → dataops-testgen-5.33.2}/testgen/template/profiling/pii_flag_update.sql +0 -0
- {dataops-testgen-5.32.2 → dataops-testgen-5.33.2}/testgen/template/profiling/profile_anomalies_screen_column.sql +0 -0
- {dataops-testgen-5.32.2 → dataops-testgen-5.33.2}/testgen/template/profiling/profile_anomalies_screen_multi_column.sql +0 -0
- {dataops-testgen-5.32.2 → dataops-testgen-5.33.2}/testgen/template/profiling/profile_anomalies_screen_table.sql +0 -0
- {dataops-testgen-5.32.2 → dataops-testgen-5.33.2}/testgen/template/profiling/profile_anomalies_screen_table_dates.sql +0 -0
- {dataops-testgen-5.32.2 → dataops-testgen-5.33.2}/testgen/template/profiling/profile_anomalies_screen_variants.sql +0 -0
- {dataops-testgen-5.32.2 → dataops-testgen-5.33.2}/testgen/template/profiling/profile_anomaly_scoring.sql +0 -0
- {dataops-testgen-5.32.2 → dataops-testgen-5.33.2}/testgen/template/profiling/profile_anomaly_types_get.sql +0 -0
- {dataops-testgen-5.32.2 → dataops-testgen-5.33.2}/testgen/template/profiling/project_update_profile_results_to_estimates.sql +0 -0
- {dataops-testgen-5.32.2 → dataops-testgen-5.33.2}/testgen/template/profiling/refresh_anomalies.sql +0 -0
- {dataops-testgen-5.32.2 → dataops-testgen-5.33.2}/testgen/template/profiling/secondary_profiling_columns.sql +0 -0
- {dataops-testgen-5.32.2 → dataops-testgen-5.33.2}/testgen/template/profiling/secondary_profiling_delete.sql +0 -0
- {dataops-testgen-5.32.2 → dataops-testgen-5.33.2}/testgen/template/profiling/secondary_profiling_update.sql +0 -0
- {dataops-testgen-5.32.2 → dataops-testgen-5.33.2}/testgen/template/quick_start/add_cat_tests.sql +0 -0
- {dataops-testgen-5.32.2 → dataops-testgen-5.33.2}/testgen/template/quick_start/initial_data_seeding.sql +0 -0
- {dataops-testgen-5.32.2 → dataops-testgen-5.33.2}/testgen/template/quick_start/populate_target_data.sql +0 -0
- {dataops-testgen-5.32.2 → dataops-testgen-5.33.2}/testgen/template/quick_start/recreate_target_data_schema.sql +0 -0
- {dataops-testgen-5.32.2 → dataops-testgen-5.33.2}/testgen/template/quick_start/run_monitor_iteration.sql +0 -0
- {dataops-testgen-5.32.2 → dataops-testgen-5.33.2}/testgen/template/quick_start/update_cat_tests.sql +0 -0
- {dataops-testgen-5.32.2 → dataops-testgen-5.33.2}/testgen/template/quick_start/update_target_data.sql +0 -0
- {dataops-testgen-5.32.2 → dataops-testgen-5.33.2}/testgen/template/quick_start/update_target_data_iter0.sql +0 -0
- {dataops-testgen-5.32.2 → dataops-testgen-5.33.2}/testgen/template/quick_start/update_target_data_iter1.sql +0 -0
- {dataops-testgen-5.32.2 → dataops-testgen-5.33.2}/testgen/template/quick_start/update_target_data_iter2.sql +0 -0
- {dataops-testgen-5.32.2 → dataops-testgen-5.33.2}/testgen/template/quick_start/update_target_data_iter3.sql +0 -0
- {dataops-testgen-5.32.2 → dataops-testgen-5.33.2}/testgen/template/rollup_scores/calc_prevalence_test_results.sql +0 -0
- {dataops-testgen-5.32.2 → dataops-testgen-5.33.2}/testgen/template/rollup_scores/rollup_scores_profile_run.sql +0 -0
- {dataops-testgen-5.32.2 → dataops-testgen-5.33.2}/testgen/template/rollup_scores/rollup_scores_profile_table_group.sql +0 -0
- {dataops-testgen-5.32.2 → dataops-testgen-5.33.2}/testgen/template/rollup_scores/rollup_scores_test_run.sql +0 -0
- {dataops-testgen-5.32.2 → dataops-testgen-5.33.2}/testgen/template/rollup_scores/rollup_scores_test_table_group.sql +0 -0
- {dataops-testgen-5.32.2 → dataops-testgen-5.33.2}/testgen/template/score_cards/add_latest_runs.sql +0 -0
- {dataops-testgen-5.32.2 → dataops-testgen-5.33.2}/testgen/template/score_cards/get_category_scores_by_column.sql +0 -0
- {dataops-testgen-5.32.2 → dataops-testgen-5.33.2}/testgen/template/score_cards/get_category_scores_by_dimension.sql +0 -0
- {dataops-testgen-5.32.2 → dataops-testgen-5.33.2}/testgen/template/score_cards/get_category_scores_by_impact_dimension.sql +0 -0
- {dataops-testgen-5.32.2 → dataops-testgen-5.33.2}/testgen/template/score_cards/get_historical_overall_scores_by_column.sql +0 -0
- {dataops-testgen-5.32.2 → dataops-testgen-5.33.2}/testgen/template/score_cards/get_overall_scores_by_column.sql +0 -0
- {dataops-testgen-5.32.2 → dataops-testgen-5.33.2}/testgen/template/score_cards/get_score_card_breakdown_by_column.sql +0 -0
- {dataops-testgen-5.32.2 → dataops-testgen-5.33.2}/testgen/template/score_cards/get_score_card_breakdown_by_dimension.sql +0 -0
- {dataops-testgen-5.32.2 → dataops-testgen-5.33.2}/testgen/template/score_cards/get_score_card_breakdown_by_impact_dimension.sql +0 -0
- {dataops-testgen-5.32.2 → dataops-testgen-5.33.2}/testgen/template/score_cards/get_score_card_issues_by_column.sql +0 -0
- {dataops-testgen-5.32.2 → dataops-testgen-5.33.2}/testgen/template/score_cards/get_score_card_issues_by_dimension.sql +0 -0
- {dataops-testgen-5.32.2 → dataops-testgen-5.33.2}/testgen/template/score_cards/get_score_card_issues_by_impact_dimension.sql +0 -0
- {dataops-testgen-5.32.2 → dataops-testgen-5.33.2}/testgen/ui/__init__.py +0 -0
- {dataops-testgen-5.32.2 → dataops-testgen-5.33.2}/testgen/ui/app.py +0 -0
- {dataops-testgen-5.32.2 → dataops-testgen-5.33.2}/testgen/ui/assets/dk_icon.svg +0 -0
- {dataops-testgen-5.32.2 → dataops-testgen-5.33.2}/testgen/ui/assets/dk_logo.svg +0 -0
- {dataops-testgen-5.32.2 → dataops-testgen-5.33.2}/testgen/ui/assets/favicon.ico +0 -0
- {dataops-testgen-5.32.2 → dataops-testgen-5.33.2}/testgen/ui/assets/flavors/azure_sql.svg +0 -0
- {dataops-testgen-5.32.2 → dataops-testgen-5.33.2}/testgen/ui/assets/flavors/azure_synapse_table.svg +0 -0
- {dataops-testgen-5.32.2 → dataops-testgen-5.33.2}/testgen/ui/assets/flavors/bigquery.svg +0 -0
- {dataops-testgen-5.32.2 → dataops-testgen-5.33.2}/testgen/ui/assets/flavors/databricks.svg +0 -0
- {dataops-testgen-5.32.2 → dataops-testgen-5.33.2}/testgen/ui/assets/flavors/mssql.svg +0 -0
- {dataops-testgen-5.32.2 → dataops-testgen-5.33.2}/testgen/ui/assets/flavors/oracle.svg +0 -0
- {dataops-testgen-5.32.2 → dataops-testgen-5.33.2}/testgen/ui/assets/flavors/postgresql.svg +0 -0
- {dataops-testgen-5.32.2 → dataops-testgen-5.33.2}/testgen/ui/assets/flavors/redshift.svg +0 -0
- {dataops-testgen-5.32.2 → dataops-testgen-5.33.2}/testgen/ui/assets/flavors/sap_hana.svg +0 -0
- {dataops-testgen-5.32.2 → dataops-testgen-5.33.2}/testgen/ui/assets/flavors/snowflake.svg +0 -0
- {dataops-testgen-5.32.2 → dataops-testgen-5.33.2}/testgen/ui/assets/question_mark.png +0 -0
- {dataops-testgen-5.32.2 → dataops-testgen-5.33.2}/testgen/ui/assets.py +0 -0
- {dataops-testgen-5.32.2 → dataops-testgen-5.33.2}/testgen/ui/auth.py +0 -0
- {dataops-testgen-5.32.2 → dataops-testgen-5.33.2}/testgen/ui/bootstrap.py +0 -0
- {dataops-testgen-5.32.2 → dataops-testgen-5.33.2}/testgen/ui/components/__init__.py +0 -0
- {dataops-testgen-5.32.2 → dataops-testgen-5.33.2}/testgen/ui/components/frontend/js/data_profiling/column_distribution.js +0 -0
- {dataops-testgen-5.32.2 → dataops-testgen-5.33.2}/testgen/ui/components/frontend/js/data_profiling/column_profiling_history.js +0 -0
- {dataops-testgen-5.32.2 → dataops-testgen-5.33.2}/testgen/ui/components/frontend/js/data_profiling/column_profiling_results.js +0 -0
- {dataops-testgen-5.32.2 → dataops-testgen-5.33.2}/testgen/ui/components/frontend/js/data_profiling/data_characteristics.js +0 -0
- {dataops-testgen-5.32.2 → dataops-testgen-5.33.2}/testgen/ui/components/frontend/js/data_profiling/data_issues.js +0 -0
- {dataops-testgen-5.32.2 → dataops-testgen-5.33.2}/testgen/ui/components/frontend/js/data_profiling/data_profiling_utils.js +0 -0
- {dataops-testgen-5.32.2 → dataops-testgen-5.33.2}/testgen/ui/components/frontend/js/data_profiling/metadata_tags.js +0 -0
- {dataops-testgen-5.32.2 → dataops-testgen-5.33.2}/testgen/ui/components/frontend/js/data_profiling/table_create_script.js +0 -0
- {dataops-testgen-5.32.2 → dataops-testgen-5.33.2}/testgen/ui/components/frontend/js/data_profiling/table_size.js +0 -0
- {dataops-testgen-5.32.2 → dataops-testgen-5.33.2}/testgen/ui/components/frontend/js/pages/application_logs.js +0 -0
- {dataops-testgen-5.32.2 → dataops-testgen-5.33.2}/testgen/ui/components/frontend/js/pages/breadcrumbs.js +0 -0
- {dataops-testgen-5.32.2 → dataops-testgen-5.33.2}/testgen/ui/components/frontend/js/pages/column_selector_dialog.js +0 -0
- {dataops-testgen-5.32.2 → dataops-testgen-5.33.2}/testgen/ui/components/frontend/js/pages/confirmation_dialog.js +0 -0
- {dataops-testgen-5.32.2 → dataops-testgen-5.33.2}/testgen/ui/components/frontend/js/pages/data_catalog.js +0 -0
- {dataops-testgen-5.32.2 → dataops-testgen-5.33.2}/testgen/ui/components/frontend/js/pages/edit_monitor_settings.js +0 -0
- {dataops-testgen-5.32.2 → dataops-testgen-5.33.2}/testgen/ui/components/frontend/js/pages/edit_table_monitors.js +0 -0
- {dataops-testgen-5.32.2 → dataops-testgen-5.33.2}/testgen/ui/components/frontend/js/pages/help_menu.js +0 -0
- {dataops-testgen-5.32.2 → dataops-testgen-5.33.2}/testgen/ui/components/frontend/js/pages/hygiene_issues.js +0 -0
- {dataops-testgen-5.32.2 → dataops-testgen-5.33.2}/testgen/ui/components/frontend/js/pages/import_metadata_dialog.js +0 -0
- {dataops-testgen-5.32.2 → dataops-testgen-5.33.2}/testgen/ui/components/frontend/js/pages/monitors_dashboard.js +0 -0
- {dataops-testgen-5.32.2 → dataops-testgen-5.33.2}/testgen/ui/components/frontend/js/pages/notification_settings.js +0 -0
- {dataops-testgen-5.32.2 → dataops-testgen-5.33.2}/testgen/ui/components/frontend/js/pages/profiling_results.js +0 -0
- {dataops-testgen-5.32.2 → dataops-testgen-5.33.2}/testgen/ui/components/frontend/js/pages/profiling_runs.js +0 -0
- {dataops-testgen-5.32.2 → dataops-testgen-5.33.2}/testgen/ui/components/frontend/js/pages/project_dashboard.js +0 -0
- {dataops-testgen-5.32.2 → dataops-testgen-5.33.2}/testgen/ui/components/frontend/js/pages/quality_dashboard.js +0 -0
- {dataops-testgen-5.32.2 → dataops-testgen-5.33.2}/testgen/ui/components/frontend/js/pages/schedule_list.js +0 -0
- {dataops-testgen-5.32.2 → dataops-testgen-5.33.2}/testgen/ui/components/frontend/js/pages/schema_changes_dialog.js +0 -0
- {dataops-testgen-5.32.2 → dataops-testgen-5.33.2}/testgen/ui/components/frontend/js/pages/score_details.js +0 -0
- {dataops-testgen-5.32.2 → dataops-testgen-5.33.2}/testgen/ui/components/frontend/js/pages/score_explorer.js +0 -0
- {dataops-testgen-5.32.2 → dataops-testgen-5.33.2}/testgen/ui/components/frontend/js/pages/sidebar.js +0 -0
- {dataops-testgen-5.32.2 → dataops-testgen-5.33.2}/testgen/ui/components/frontend/js/pages/table_create_script_dialog.js +0 -0
- {dataops-testgen-5.32.2 → dataops-testgen-5.33.2}/testgen/ui/components/frontend/js/pages/table_group_delete_confirmation.js +0 -0
- {dataops-testgen-5.32.2 → dataops-testgen-5.33.2}/testgen/ui/components/frontend/js/pages/table_group_list.js +0 -0
- {dataops-testgen-5.32.2 → dataops-testgen-5.33.2}/testgen/ui/components/frontend/js/pages/table_group_wizard.js +0 -0
- {dataops-testgen-5.32.2 → dataops-testgen-5.33.2}/testgen/ui/components/frontend/js/pages/table_monitoring_trends.js +0 -0
- {dataops-testgen-5.32.2 → dataops-testgen-5.33.2}/testgen/ui/components/frontend/js/pages/test_definition_notes.js +0 -0
- {dataops-testgen-5.32.2 → dataops-testgen-5.33.2}/testgen/ui/components/frontend/js/pages/test_definition_summary.js +0 -0
- {dataops-testgen-5.32.2 → dataops-testgen-5.33.2}/testgen/ui/components/frontend/js/pages/test_definitions.js +0 -0
- {dataops-testgen-5.32.2 → dataops-testgen-5.33.2}/testgen/ui/components/frontend/js/pages/test_results.js +0 -0
- {dataops-testgen-5.32.2 → dataops-testgen-5.33.2}/testgen/ui/components/frontend/js/pages/test_results_chart.js +0 -0
- {dataops-testgen-5.32.2 → dataops-testgen-5.33.2}/testgen/ui/components/frontend/js/pages/test_runs.js +0 -0
- {dataops-testgen-5.32.2 → dataops-testgen-5.33.2}/testgen/ui/components/frontend/js/pages/test_suites.js +0 -0
- {dataops-testgen-5.32.2 → dataops-testgen-5.33.2}/testgen/ui/components/frontend/js/plugin_pages/connections/index.js +0 -0
- {dataops-testgen-5.32.2 → dataops-testgen-5.33.2}/testgen/ui/components/frontend/js/plugin_pages/connections/pages/connection_list.js +0 -0
- {dataops-testgen-5.32.2 → dataops-testgen-5.33.2}/testgen/ui/components/frontend/js/plugin_pages/connections/pages/connection_wizard.js +0 -0
- {dataops-testgen-5.32.2 → dataops-testgen-5.33.2}/testgen/ui/components/frontend/js/plugin_pages/connections/pages/delete_confirmation.js +0 -0
- {dataops-testgen-5.32.2 → dataops-testgen-5.33.2}/testgen/ui/components/frontend/js/plugin_pages/connections/pages/edit_connection.js +0 -0
- {dataops-testgen-5.32.2 → dataops-testgen-5.33.2}/testgen/ui/components/frontend/js/plugin_pages/connections/pages/flavor_selector.js +0 -0
- {dataops-testgen-5.32.2 → dataops-testgen-5.33.2}/testgen/ui/components/frontend/js/plugin_pages/login/index.js +0 -0
- {dataops-testgen-5.32.2 → dataops-testgen-5.33.2}/testgen/ui/components/frontend/js/plugin_pages/login/pages/sso_login.js +0 -0
- {dataops-testgen-5.32.2 → dataops-testgen-5.33.2}/testgen/ui/components/frontend/js/plugin_pages/users/index.js +0 -0
- {dataops-testgen-5.32.2 → dataops-testgen-5.33.2}/testgen/ui/components/frontend/js/plugin_pages/users/pages/delete_confirmation.js +0 -0
- {dataops-testgen-5.32.2 → dataops-testgen-5.33.2}/testgen/ui/components/frontend/js/plugin_pages/users/pages/user_form.js +0 -0
- {dataops-testgen-5.32.2 → dataops-testgen-5.33.2}/testgen/ui/components/frontend/js/plugin_pages/users/pages/user_list.js +0 -0
- {dataops-testgen-5.32.2 → dataops-testgen-5.33.2}/testgen/ui/components/frontend/js/plugin_pages/users/types.js +0 -0
- {dataops-testgen-5.32.2 → dataops-testgen-5.33.2}/testgen/ui/components/frontend/js/plugins.js +0 -0
- {dataops-testgen-5.32.2 → dataops-testgen-5.33.2}/testgen/ui/components/frontend/js/shared/application_logs_dialog.js +0 -0
- {dataops-testgen-5.32.2 → dataops-testgen-5.33.2}/testgen/ui/components/frontend/js/shared/column_history_dialog.js +0 -0
- {dataops-testgen-5.32.2 → dataops-testgen-5.33.2}/testgen/ui/components/frontend/js/shared/data_preview_dialog.js +0 -0
- {dataops-testgen-5.32.2 → dataops-testgen-5.33.2}/testgen/ui/components/frontend/js/shared/profiling_results_dialog.js +0 -0
- {dataops-testgen-5.32.2 → dataops-testgen-5.33.2}/testgen/ui/components/frontend/js/shared/source_data_dialog.js +0 -0
- {dataops-testgen-5.32.2 → dataops-testgen-5.33.2}/testgen/ui/components/frontend/js/types.js +0 -0
- {dataops-testgen-5.32.2 → dataops-testgen-5.33.2}/testgen/ui/components/frontend/standalone/project_settings/index.js +0 -0
- {dataops-testgen-5.32.2 → dataops-testgen-5.33.2}/testgen/ui/components/utils/__init__.py +0 -0
- {dataops-testgen-5.32.2 → dataops-testgen-5.33.2}/testgen/ui/components/utils/callbacks.py +0 -0
- {dataops-testgen-5.32.2 → dataops-testgen-5.33.2}/testgen/ui/components/utils/component.py +0 -0
- {dataops-testgen-5.32.2 → dataops-testgen-5.33.2}/testgen/ui/components/widgets/__init__.py +0 -0
- {dataops-testgen-5.32.2 → dataops-testgen-5.33.2}/testgen/ui/components/widgets/card.py +0 -0
- {dataops-testgen-5.32.2 → dataops-testgen-5.33.2}/testgen/ui/components/widgets/download_dialog.py +0 -0
- {dataops-testgen-5.32.2 → dataops-testgen-5.33.2}/testgen/ui/components/widgets/page.py +0 -0
- {dataops-testgen-5.32.2 → dataops-testgen-5.33.2}/testgen/ui/components/widgets/select.py +0 -0
- {dataops-testgen-5.32.2 → dataops-testgen-5.33.2}/testgen/ui/components/widgets/sidebar.py +0 -0
- {dataops-testgen-5.32.2 → dataops-testgen-5.33.2}/testgen/ui/components/widgets/summary.py +0 -0
- {dataops-testgen-5.32.2 → dataops-testgen-5.33.2}/testgen/ui/navigation/__init__.py +0 -0
- {dataops-testgen-5.32.2 → dataops-testgen-5.33.2}/testgen/ui/navigation/menu.py +0 -0
- {dataops-testgen-5.32.2 → dataops-testgen-5.33.2}/testgen/ui/navigation/page.py +0 -0
- {dataops-testgen-5.32.2 → dataops-testgen-5.33.2}/testgen/ui/navigation/router.py +0 -0
- {dataops-testgen-5.32.2 → dataops-testgen-5.33.2}/testgen/ui/pdf/__init__.py +0 -0
- {dataops-testgen-5.32.2 → dataops-testgen-5.33.2}/testgen/ui/pdf/dataframe_table.py +0 -0
- {dataops-testgen-5.32.2 → dataops-testgen-5.33.2}/testgen/ui/pdf/dk_logo.py +0 -0
- {dataops-testgen-5.32.2 → dataops-testgen-5.33.2}/testgen/ui/pdf/hygiene_issue_report.py +0 -0
- {dataops-testgen-5.32.2 → dataops-testgen-5.33.2}/testgen/ui/pdf/style.py +0 -0
- {dataops-testgen-5.32.2 → dataops-testgen-5.33.2}/testgen/ui/pdf/templates.py +0 -0
- {dataops-testgen-5.32.2 → dataops-testgen-5.33.2}/testgen/ui/pdf/test_result_report.py +0 -0
- {dataops-testgen-5.32.2 → dataops-testgen-5.33.2}/testgen/ui/queries/__init__.py +0 -0
- {dataops-testgen-5.32.2 → dataops-testgen-5.33.2}/testgen/ui/queries/profiling_queries.py +0 -0
- {dataops-testgen-5.32.2 → dataops-testgen-5.33.2}/testgen/ui/queries/scoring_queries.py +0 -0
- {dataops-testgen-5.32.2 → dataops-testgen-5.33.2}/testgen/ui/queries/source_data_queries.py +0 -0
- {dataops-testgen-5.32.2 → dataops-testgen-5.33.2}/testgen/ui/queries/table_group_queries.py +0 -0
- {dataops-testgen-5.32.2 → dataops-testgen-5.33.2}/testgen/ui/queries/test_result_queries.py +0 -0
- {dataops-testgen-5.32.2 → dataops-testgen-5.33.2}/testgen/ui/scripts/__init__.py +0 -0
- {dataops-testgen-5.32.2 → dataops-testgen-5.33.2}/testgen/ui/scripts/patch_streamlit.py +0 -0
- {dataops-testgen-5.32.2 → dataops-testgen-5.33.2}/testgen/ui/services/__init__.py +0 -0
- {dataops-testgen-5.32.2 → dataops-testgen-5.33.2}/testgen/ui/services/database_service.py +0 -0
- {dataops-testgen-5.32.2 → dataops-testgen-5.33.2}/testgen/ui/services/form_service.py +0 -0
- {dataops-testgen-5.32.2 → dataops-testgen-5.33.2}/testgen/ui/services/javascript_service.py +0 -0
- {dataops-testgen-5.32.2 → dataops-testgen-5.33.2}/testgen/ui/services/query_cache.py +0 -0
- {dataops-testgen-5.32.2 → dataops-testgen-5.33.2}/testgen/ui/services/rerun_service.py +0 -0
- {dataops-testgen-5.32.2 → dataops-testgen-5.33.2}/testgen/ui/services/string_service.py +0 -0
- {dataops-testgen-5.32.2 → dataops-testgen-5.33.2}/testgen/ui/session.py +0 -0
- {dataops-testgen-5.32.2 → dataops-testgen-5.33.2}/testgen/ui/static/css/highlight-default-theme.min.css +0 -0
- {dataops-testgen-5.32.2 → dataops-testgen-5.33.2}/testgen/ui/static/css/material-symbols-rounded.css +0 -0
- {dataops-testgen-5.32.2 → dataops-testgen-5.33.2}/testgen/ui/static/css/roboto-font-faces.css +0 -0
- {dataops-testgen-5.32.2 → dataops-testgen-5.33.2}/testgen/ui/static/css/shared.css +0 -0
- {dataops-testgen-5.32.2 → dataops-testgen-5.33.2}/testgen/ui/static/css/style.css +0 -0
- {dataops-testgen-5.32.2 → dataops-testgen-5.33.2}/testgen/ui/static/fonts/KFOlCnqEu92Fr1MmEU9fBBc4.woff2 +0 -0
- {dataops-testgen-5.32.2 → dataops-testgen-5.33.2}/testgen/ui/static/fonts/KFOlCnqEu92Fr1MmEU9fChc4EsA.woff2 +0 -0
- {dataops-testgen-5.32.2 → dataops-testgen-5.33.2}/testgen/ui/static/fonts/KFOmCnqEu92Fr1Mu4mxK.woff2 +0 -0
- {dataops-testgen-5.32.2 → dataops-testgen-5.33.2}/testgen/ui/static/fonts/KFOmCnqEu92Fr1Mu7GxKOzY.woff2 +0 -0
- {dataops-testgen-5.32.2 → dataops-testgen-5.33.2}/testgen/ui/static/fonts/material-symbols-rounded.woff2 +0 -0
- {dataops-testgen-5.32.2 → dataops-testgen-5.33.2}/testgen/ui/static/js/axis_utils.js +0 -0
- {dataops-testgen-5.32.2 → dataops-testgen-5.33.2}/testgen/ui/static/js/components/alert.js +0 -0
- {dataops-testgen-5.32.2 → dataops-testgen-5.33.2}/testgen/ui/static/js/components/attribute.js +0 -0
- {dataops-testgen-5.32.2 → dataops-testgen-5.33.2}/testgen/ui/static/js/components/box_plot.js +0 -0
- {dataops-testgen-5.32.2 → dataops-testgen-5.33.2}/testgen/ui/static/js/components/breadcrumbs.js +0 -0
- {dataops-testgen-5.32.2 → dataops-testgen-5.33.2}/testgen/ui/static/js/components/button.js +0 -0
- {dataops-testgen-5.32.2 → dataops-testgen-5.33.2}/testgen/ui/static/js/components/caption.js +0 -0
- {dataops-testgen-5.32.2 → dataops-testgen-5.33.2}/testgen/ui/static/js/components/card.js +0 -0
- {dataops-testgen-5.32.2 → dataops-testgen-5.33.2}/testgen/ui/static/js/components/chart_canvas.js +0 -0
- {dataops-testgen-5.32.2 → dataops-testgen-5.33.2}/testgen/ui/static/js/components/checkbox.js +0 -0
- {dataops-testgen-5.32.2 → dataops-testgen-5.33.2}/testgen/ui/static/js/components/code.js +0 -0
- {dataops-testgen-5.32.2 → dataops-testgen-5.33.2}/testgen/ui/static/js/components/column_selector_dialog.js +0 -0
- {dataops-testgen-5.32.2 → dataops-testgen-5.33.2}/testgen/ui/static/js/components/connection_form.js +0 -0
- {dataops-testgen-5.32.2 → dataops-testgen-5.33.2}/testgen/ui/static/js/components/crontab_input.js +0 -0
- {dataops-testgen-5.32.2 → dataops-testgen-5.33.2}/testgen/ui/static/js/components/dialog.js +0 -0
- {dataops-testgen-5.32.2 → dataops-testgen-5.33.2}/testgen/ui/static/js/components/dot.js +0 -0
- {dataops-testgen-5.32.2 → dataops-testgen-5.33.2}/testgen/ui/static/js/components/dropdown_button.js +0 -0
- {dataops-testgen-5.32.2 → dataops-testgen-5.33.2}/testgen/ui/static/js/components/dual_pane.js +0 -0
- {dataops-testgen-5.32.2 → dataops-testgen-5.33.2}/testgen/ui/static/js/components/editable_card.js +0 -0
- {dataops-testgen-5.32.2 → dataops-testgen-5.33.2}/testgen/ui/static/js/components/empty_state.js +0 -0
- {dataops-testgen-5.32.2 → dataops-testgen-5.33.2}/testgen/ui/static/js/components/expander_toggle.js +0 -0
- {dataops-testgen-5.32.2 → dataops-testgen-5.33.2}/testgen/ui/static/js/components/expansion_panel.js +0 -0
- {dataops-testgen-5.32.2 → dataops-testgen-5.33.2}/testgen/ui/static/js/components/explorer_column_selector.js +0 -0
- {dataops-testgen-5.32.2 → dataops-testgen-5.33.2}/testgen/ui/static/js/components/file_input.js +0 -0
- {dataops-testgen-5.32.2 → dataops-testgen-5.33.2}/testgen/ui/static/js/components/frequency_bars.js +0 -0
- {dataops-testgen-5.32.2 → dataops-testgen-5.33.2}/testgen/ui/static/js/components/freshness_chart.js +0 -0
- {dataops-testgen-5.32.2 → dataops-testgen-5.33.2}/testgen/ui/static/js/components/generate_tests_dialog.js +0 -0
- {dataops-testgen-5.32.2 → dataops-testgen-5.33.2}/testgen/ui/static/js/components/help_menu.js +0 -0
- {dataops-testgen-5.32.2 → dataops-testgen-5.33.2}/testgen/ui/static/js/components/icon.js +0 -0
- {dataops-testgen-5.32.2 → dataops-testgen-5.33.2}/testgen/ui/static/js/components/input.js +0 -0
- {dataops-testgen-5.32.2 → dataops-testgen-5.33.2}/testgen/ui/static/js/components/line_chart.js +0 -0
- {dataops-testgen-5.32.2 → dataops-testgen-5.33.2}/testgen/ui/static/js/components/link.js +0 -0
- {dataops-testgen-5.32.2 → dataops-testgen-5.33.2}/testgen/ui/static/js/components/monitor_anomalies_summary.js +0 -0
- {dataops-testgen-5.32.2 → dataops-testgen-5.33.2}/testgen/ui/static/js/components/monitor_settings_form.js +0 -0
- {dataops-testgen-5.32.2 → dataops-testgen-5.33.2}/testgen/ui/static/js/components/monitoring_sparkline.js +0 -0
- {dataops-testgen-5.32.2 → dataops-testgen-5.33.2}/testgen/ui/static/js/components/notification_settings.js +0 -0
- {dataops-testgen-5.32.2 → dataops-testgen-5.33.2}/testgen/ui/static/js/components/paginator.js +0 -0
- {dataops-testgen-5.32.2 → dataops-testgen-5.33.2}/testgen/ui/static/js/components/percent_bar.js +0 -0
- {dataops-testgen-5.32.2 → dataops-testgen-5.33.2}/testgen/ui/static/js/components/portal.js +0 -0
- {dataops-testgen-5.32.2 → dataops-testgen-5.33.2}/testgen/ui/static/js/components/radio_group.js +0 -0
- {dataops-testgen-5.32.2 → dataops-testgen-5.33.2}/testgen/ui/static/js/components/run_profiling_dialog.js +0 -0
- {dataops-testgen-5.32.2 → dataops-testgen-5.33.2}/testgen/ui/static/js/components/run_tests_dialog.js +0 -0
- {dataops-testgen-5.32.2 → dataops-testgen-5.33.2}/testgen/ui/static/js/components/schedule_list.js +0 -0
- {dataops-testgen-5.32.2 → dataops-testgen-5.33.2}/testgen/ui/static/js/components/schema_changes_chart.js +0 -0
- {dataops-testgen-5.32.2 → dataops-testgen-5.33.2}/testgen/ui/static/js/components/schema_changes_dialog.js +0 -0
- {dataops-testgen-5.32.2 → dataops-testgen-5.33.2}/testgen/ui/static/js/components/schema_changes_list.js +0 -0
- {dataops-testgen-5.32.2 → dataops-testgen-5.33.2}/testgen/ui/static/js/components/score_breakdown.js +0 -0
- {dataops-testgen-5.32.2 → dataops-testgen-5.33.2}/testgen/ui/static/js/components/score_card.js +0 -0
- {dataops-testgen-5.32.2 → dataops-testgen-5.33.2}/testgen/ui/static/js/components/score_history.js +0 -0
- {dataops-testgen-5.32.2 → dataops-testgen-5.33.2}/testgen/ui/static/js/components/score_issues.js +0 -0
- {dataops-testgen-5.32.2 → dataops-testgen-5.33.2}/testgen/ui/static/js/components/score_legend.js +0 -0
- {dataops-testgen-5.32.2 → dataops-testgen-5.33.2}/testgen/ui/static/js/components/score_metric.js +0 -0
- {dataops-testgen-5.32.2 → dataops-testgen-5.33.2}/testgen/ui/static/js/components/select.js +0 -0
- {dataops-testgen-5.32.2 → dataops-testgen-5.33.2}/testgen/ui/static/js/components/slider.js +0 -0
- {dataops-testgen-5.32.2 → dataops-testgen-5.33.2}/testgen/ui/static/js/components/spark_line.js +0 -0
- {dataops-testgen-5.32.2 → dataops-testgen-5.33.2}/testgen/ui/static/js/components/spinner.js +0 -0
- {dataops-testgen-5.32.2 → dataops-testgen-5.33.2}/testgen/ui/static/js/components/summary_bar.js +0 -0
- {dataops-testgen-5.32.2 → dataops-testgen-5.33.2}/testgen/ui/static/js/components/summary_counts.js +0 -0
- {dataops-testgen-5.32.2 → dataops-testgen-5.33.2}/testgen/ui/static/js/components/table_create_script_dialog.js +0 -0
- {dataops-testgen-5.32.2 → dataops-testgen-5.33.2}/testgen/ui/static/js/components/table_group_edit_dialog.js +0 -0
- {dataops-testgen-5.32.2 → dataops-testgen-5.33.2}/testgen/ui/static/js/components/table_group_form.js +0 -0
- {dataops-testgen-5.32.2 → dataops-testgen-5.33.2}/testgen/ui/static/js/components/table_group_stats.js +0 -0
- {dataops-testgen-5.32.2 → dataops-testgen-5.33.2}/testgen/ui/static/js/components/table_group_test.js +0 -0
- {dataops-testgen-5.32.2 → dataops-testgen-5.33.2}/testgen/ui/static/js/components/table_group_wizard.js +0 -0
- {dataops-testgen-5.32.2 → dataops-testgen-5.33.2}/testgen/ui/static/js/components/tabs.js +0 -0
- {dataops-testgen-5.32.2 → dataops-testgen-5.33.2}/testgen/ui/static/js/components/test_definition_form.js +0 -0
- {dataops-testgen-5.32.2 → dataops-testgen-5.33.2}/testgen/ui/static/js/components/textarea.js +0 -0
- {dataops-testgen-5.32.2 → dataops-testgen-5.33.2}/testgen/ui/static/js/components/threshold_chart.js +0 -0
- {dataops-testgen-5.32.2 → dataops-testgen-5.33.2}/testgen/ui/static/js/components/toggle.js +0 -0
- {dataops-testgen-5.32.2 → dataops-testgen-5.33.2}/testgen/ui/static/js/components/tooltip.js +0 -0
- {dataops-testgen-5.32.2 → dataops-testgen-5.33.2}/testgen/ui/static/js/components/tree.js +0 -0
- {dataops-testgen-5.32.2 → dataops-testgen-5.33.2}/testgen/ui/static/js/components/truncated_text.js +0 -0
- {dataops-testgen-5.32.2 → dataops-testgen-5.33.2}/testgen/ui/static/js/components/wizard_progress_indicator.js +0 -0
- {dataops-testgen-5.32.2 → dataops-testgen-5.33.2}/testgen/ui/static/js/display_utils.js +0 -0
- {dataops-testgen-5.32.2 → dataops-testgen-5.33.2}/testgen/ui/static/js/form_validators.js +0 -0
- {dataops-testgen-5.32.2 → dataops-testgen-5.33.2}/testgen/ui/static/js/highlight.min.js +0 -0
- {dataops-testgen-5.32.2 → dataops-testgen-5.33.2}/testgen/ui/static/js/page_lifecycle.js +0 -0
- {dataops-testgen-5.32.2 → dataops-testgen-5.33.2}/testgen/ui/static/js/score_utils.js +0 -0
- {dataops-testgen-5.32.2 → dataops-testgen-5.33.2}/testgen/ui/static/js/scripts.js +0 -0
- {dataops-testgen-5.32.2 → dataops-testgen-5.33.2}/testgen/ui/static/js/sidebar.js +0 -0
- {dataops-testgen-5.32.2 → dataops-testgen-5.33.2}/testgen/ui/static/js/timers.js +0 -0
- {dataops-testgen-5.32.2 → dataops-testgen-5.33.2}/testgen/ui/static/js/utils.js +0 -0
- {dataops-testgen-5.32.2 → dataops-testgen-5.33.2}/testgen/ui/static/js/values.js +0 -0
- {dataops-testgen-5.32.2 → dataops-testgen-5.33.2}/testgen/ui/static/js/van.min.js +0 -0
- {dataops-testgen-5.32.2 → dataops-testgen-5.33.2}/testgen/ui/utils.py +0 -0
- {dataops-testgen-5.32.2 → dataops-testgen-5.33.2}/testgen/ui/views/__init__.py +0 -0
- {dataops-testgen-5.32.2 → dataops-testgen-5.33.2}/testgen/ui/views/connections.py +0 -0
- {dataops-testgen-5.32.2 → dataops-testgen-5.33.2}/testgen/ui/views/data_catalog.py +0 -0
- {dataops-testgen-5.32.2 → dataops-testgen-5.33.2}/testgen/ui/views/dialogs/generate_tests_dialog.py +0 -0
- {dataops-testgen-5.32.2 → dataops-testgen-5.33.2}/testgen/ui/views/dialogs/import_metadata_dialog.py +0 -0
- {dataops-testgen-5.32.2 → dataops-testgen-5.33.2}/testgen/ui/views/dialogs/manage_notifications.py +0 -0
- {dataops-testgen-5.32.2 → dataops-testgen-5.33.2}/testgen/ui/views/dialogs/manage_schedules.py +0 -0
- {dataops-testgen-5.32.2 → dataops-testgen-5.33.2}/testgen/ui/views/dialogs/run_profiling_dialog.py +0 -0
- {dataops-testgen-5.32.2 → dataops-testgen-5.33.2}/testgen/ui/views/dialogs/run_tests_dialog.py +0 -0
- {dataops-testgen-5.32.2 → dataops-testgen-5.33.2}/testgen/ui/views/dialogs/table_create_script_dialog.py +0 -0
- {dataops-testgen-5.32.2 → dataops-testgen-5.33.2}/testgen/ui/views/hygiene_issues.py +0 -0
- {dataops-testgen-5.32.2 → dataops-testgen-5.33.2}/testgen/ui/views/login.py +0 -0
- {dataops-testgen-5.32.2 → dataops-testgen-5.33.2}/testgen/ui/views/monitors_dashboard.py +0 -0
- {dataops-testgen-5.32.2 → dataops-testgen-5.33.2}/testgen/ui/views/profiling_results.py +0 -0
- {dataops-testgen-5.32.2 → dataops-testgen-5.33.2}/testgen/ui/views/profiling_runs.py +0 -0
- {dataops-testgen-5.32.2 → dataops-testgen-5.33.2}/testgen/ui/views/project_dashboard.py +0 -0
- {dataops-testgen-5.32.2 → dataops-testgen-5.33.2}/testgen/ui/views/project_settings.py +0 -0
- {dataops-testgen-5.32.2 → dataops-testgen-5.33.2}/testgen/ui/views/quality_dashboard.py +0 -0
- {dataops-testgen-5.32.2 → dataops-testgen-5.33.2}/testgen/ui/views/score_details.py +0 -0
- {dataops-testgen-5.32.2 → dataops-testgen-5.33.2}/testgen/ui/views/score_explorer.py +0 -0
- {dataops-testgen-5.32.2 → dataops-testgen-5.33.2}/testgen/ui/views/table_groups.py +0 -0
- {dataops-testgen-5.32.2 → dataops-testgen-5.33.2}/testgen/ui/views/test_definitions.py +0 -0
- {dataops-testgen-5.32.2 → dataops-testgen-5.33.2}/testgen/ui/views/test_results.py +0 -0
- {dataops-testgen-5.32.2 → dataops-testgen-5.33.2}/testgen/ui/views/test_runs.py +0 -0
- {dataops-testgen-5.32.2 → dataops-testgen-5.33.2}/testgen/ui/views/test_suites.py +0 -0
- {dataops-testgen-5.32.2 → dataops-testgen-5.33.2}/testgen/utils/__init__.py +0 -0
- {dataops-testgen-5.32.2 → dataops-testgen-5.33.2}/testgen/utils/plugins.py +0 -0
- {dataops-testgen-5.32.2 → dataops-testgen-5.33.2}/testgen/utils/singleton.py +0 -0
|
@@ -0,0 +1,169 @@
|
|
|
1
|
+
Metadata-Version: 2.1
|
|
2
|
+
Name: dataops-testgen
|
|
3
|
+
Version: 5.33.2
|
|
4
|
+
Summary: DataKitchen's Data Quality DataOps TestGen
|
|
5
|
+
Author-email: "DataKitchen, Inc." <info@datakitchen.io>
|
|
6
|
+
Maintainer-email: "DataKitchen, Inc." <info@datakitchen.io>
|
|
7
|
+
Project-URL: Source Code, https://github.com/DataKitchen/dataops-testgen
|
|
8
|
+
Project-URL: Bug Tracker, https://github.com/DataKitchen/dataops-testgen/issues
|
|
9
|
+
Project-URL: Documentation, https://docs.datakitchen.io/testgen/what-is-testgen/
|
|
10
|
+
Project-URL: Release Notes, https://docs.datakitchen.io/testgen/release-notes/
|
|
11
|
+
Project-URL: Slack, https://data-observability-slack.datakitchen.io/join
|
|
12
|
+
Project-URL: Homepage, https://example.com
|
|
13
|
+
Keywords: dataops,data,quality,testing,database,profiling
|
|
14
|
+
Classifier: License :: OSI Approved :: Apache Software License
|
|
15
|
+
Classifier: Development Status :: 5 - Production/Stable
|
|
16
|
+
Classifier: Operating System :: OS Independent
|
|
17
|
+
Classifier: Programming Language :: Python :: 3.11
|
|
18
|
+
Classifier: Programming Language :: Python :: 3.12
|
|
19
|
+
Classifier: Programming Language :: Python :: 3.13
|
|
20
|
+
Classifier: Topic :: System :: Monitoring
|
|
21
|
+
Requires-Python: >=3.11
|
|
22
|
+
Description-Content-Type: text/markdown
|
|
23
|
+
License-File: LICENSE
|
|
24
|
+
License-File: NOTICE
|
|
25
|
+
Requires-Dist: PyYAML==6.0.3
|
|
26
|
+
Requires-Dist: click==8.3.1
|
|
27
|
+
Requires-Dist: sqlalchemy==2.0.48
|
|
28
|
+
Requires-Dist: databricks-sql-connector==4.2.5
|
|
29
|
+
Requires-Dist: databricks-sqlalchemy==2.0.9
|
|
30
|
+
Requires-Dist: databricks-sdk>=0.20.0
|
|
31
|
+
Requires-Dist: snowflake-sqlalchemy==1.9.0
|
|
32
|
+
Requires-Dist: sqlalchemy-bigquery==1.16.0
|
|
33
|
+
Requires-Dist: oracledb==3.4.0
|
|
34
|
+
Requires-Dist: hdbcli==2.25.31
|
|
35
|
+
Requires-Dist: sqlalchemy-hana==4.4.0
|
|
36
|
+
Requires-Dist: pyodbc==5.2.0
|
|
37
|
+
Requires-Dist: psycopg2-binary==2.9.11
|
|
38
|
+
Requires-Dist: pycryptodome==3.21
|
|
39
|
+
Requires-Dist: prettytable==3.7.0
|
|
40
|
+
Requires-Dist: requests_extensions==1.1.3
|
|
41
|
+
Requires-Dist: numpy==2.1.3
|
|
42
|
+
Requires-Dist: pandas==2.2.3
|
|
43
|
+
Requires-Dist: streamlit==1.55.0
|
|
44
|
+
Requires-Dist: streamlit-extras==0.3.0
|
|
45
|
+
Requires-Dist: streamlit-aggrid==0.3.4.post3
|
|
46
|
+
Requires-Dist: plotly_express==0.4.1
|
|
47
|
+
Requires-Dist: streamlit-authenticator==0.2.3
|
|
48
|
+
Requires-Dist: streamlit-javascript==0.1.5
|
|
49
|
+
Requires-Dist: progress==1.6
|
|
50
|
+
Requires-Dist: beautifulsoup4==4.12.3
|
|
51
|
+
Requires-Dist: trino==0.327.0
|
|
52
|
+
Requires-Dist: xlsxwriter==3.2.0
|
|
53
|
+
Requires-Dist: psutil==5.9.8
|
|
54
|
+
Requires-Dist: concurrent_log_handler==0.9.25
|
|
55
|
+
Requires-Dist: cryptography==46.0.6
|
|
56
|
+
Requires-Dist: validators==0.33.0
|
|
57
|
+
Requires-Dist: reportlab==4.2.2
|
|
58
|
+
Requires-Dist: cron-converter==1.2.1
|
|
59
|
+
Requires-Dist: cron-descriptor==2.0.5
|
|
60
|
+
Requires-Dist: pybars3==0.9.7
|
|
61
|
+
Requires-Dist: azure-identity==1.25.1
|
|
62
|
+
Requires-Dist: statsmodels==0.14.6
|
|
63
|
+
Requires-Dist: holidays~=0.89
|
|
64
|
+
Requires-Dist: pyarrow==21.0.0
|
|
65
|
+
Requires-Dist: matplotlib==3.9.2
|
|
66
|
+
Requires-Dist: scipy==1.14.1
|
|
67
|
+
Requires-Dist: jinja2==3.1.6
|
|
68
|
+
Requires-Dist: pillow==12.2.0
|
|
69
|
+
Requires-Dist: protobuf==6.33.5
|
|
70
|
+
Requires-Dist: mcp[cli]==1.26.0
|
|
71
|
+
Requires-Dist: uvicorn==0.41.0
|
|
72
|
+
Requires-Dist: PyJWT==2.12.0
|
|
73
|
+
Requires-Dist: bcrypt==5.0.0
|
|
74
|
+
Requires-Dist: authlib~=1.6.6
|
|
75
|
+
Requires-Dist: fastapi==0.135.1
|
|
76
|
+
Provides-Extra: standalone
|
|
77
|
+
Requires-Dist: pixeltable-pgserver>=0.5.1; extra == "standalone"
|
|
78
|
+
Provides-Extra: dev
|
|
79
|
+
Requires-Dist: invoke==2.2.0; extra == "dev"
|
|
80
|
+
Requires-Dist: ruff==0.4.1; extra == "dev"
|
|
81
|
+
Requires-Dist: mypy==1.9.0; extra == "dev"
|
|
82
|
+
Requires-Dist: pre-commit==3.6.2; extra == "dev"
|
|
83
|
+
Requires-Dist: types-PyYAML==6.0.12.20240311; extra == "dev"
|
|
84
|
+
Requires-Dist: types-setuptools==69.2.0.20240317; extra == "dev"
|
|
85
|
+
Requires-Dist: semver==3.0.2; extra == "dev"
|
|
86
|
+
Requires-Dist: pytest==8.1.1; extra == "dev"
|
|
87
|
+
Requires-Dist: pytest-cov==4.1.0; extra == "dev"
|
|
88
|
+
Requires-Dist: tomli==2.0.1; extra == "dev"
|
|
89
|
+
Provides-Extra: release
|
|
90
|
+
Requires-Dist: build==1.2.1; extra == "release"
|
|
91
|
+
Requires-Dist: bumpver==2023.1129; extra == "release"
|
|
92
|
+
Requires-Dist: twine==5.1.1; extra == "release"
|
|
93
|
+
|
|
94
|
+
# DataOps Data Quality TestGen
|
|
95
|
+
  [](https://hub.docker.com/r/datakitchen/dataops-testgen) [](https://hub.docker.com/r/datakitchen/dataops-testgen) [](https://docs.datakitchen.io/testgen/what-is-testgen/) [](https://data-observability-slack.datakitchen.io/join)
|
|
96
|
+
|
|
97
|
+
*<p style="text-align: center;">DataOps Data Quality TestGen, or "TestGen" for short, can help you find data issues so you can alert your users and notify your suppliers. It does this by delivering simple, fast data quality test generation and execution by data profiling, new dataset screening and hygiene review, algorithmic generation of data quality validation tests, ongoing production testing of new data refreshes, and continuous anomaly monitoring of datasets. TestGen is part of DataKitchen's Open Source Data Observability.</p>*
|
|
98
|
+
|
|
99
|
+
## Documentation
|
|
100
|
+
|
|
101
|
+
[DataOps TestGen Overview](https://datakitchen.io/dataops-testgen-product/)
|
|
102
|
+
|
|
103
|
+
[DataOps TestGen Documentation](https://docs.datakitchen.io/testgen/what-is-testgen/)
|
|
104
|
+
|
|
105
|
+
|
|
106
|
+
## Features
|
|
107
|
+
|
|
108
|
+
[Interactive Product Tour](https://datakitchen.storylane.io/share/byag8vimd5tn)
|
|
109
|
+
|
|
110
|
+
What does DataKitchen's DataOps Data Quality TestGen do? It helps you understand and <b>find data issues in new data</b>.
|
|
111
|
+
<p align="center">
|
|
112
|
+
<img alt="DatKitchen Open Source Data Quality TestGen Features - New Data" src="https://datakitchen.io/wp-content/uploads/2024/07/Screenshot-2024-07-23-at-2.22.57 PM.png" width="70%">
|
|
113
|
+
</p>
|
|
114
|
+
It constantly <b>watches your data for data quality anomalies</b> and lets you drill into problems.
|
|
115
|
+
<br></br>
|
|
116
|
+
<p align="center">
|
|
117
|
+
<img alt="DataKitchen Open Source Data Quality TestGen Features - Data Ingestion and Quality Testing" src="https://datakitchen.io/wp-content/uploads/2024/07/Screenshot-2024-07-23-at-2.23.07 PM.png" width="70%">
|
|
118
|
+
</p>
|
|
119
|
+
A <b>single place to manage Data Quality</b> across data sets, locations, and teams.
|
|
120
|
+
<br></br>
|
|
121
|
+
<p align="center">
|
|
122
|
+
<img alt="DataKitchen Open Source Data Quality TestGen Features - Single Place" src="https://datakitchen.io/wp-content/uploads/2024/07/Screenshot-dataops-testgen-centralize.png" width="70%">
|
|
123
|
+
</p>
|
|
124
|
+
|
|
125
|
+
## Installation
|
|
126
|
+
|
|
127
|
+
The [dk-installer](https://github.com/DataKitchen/data-observability-installer/?tab=readme-ov-file#install-the-testgen-application) program installs TestGen in either Docker or pip mode. For complete instructions, see the documentation:
|
|
128
|
+
|
|
129
|
+
* [Install on Mac/Linux](https://docs.datakitchen.io/testgen/get-started/install-on-mac-linux/)
|
|
130
|
+
* [Install on Windows](https://docs.datakitchen.io/testgen/get-started/install-on-windows/)
|
|
131
|
+
|
|
132
|
+
## What Next?
|
|
133
|
+
|
|
134
|
+
### Getting started guide
|
|
135
|
+
We recommend you start by going through the [Data Observability Overview Demo](https://docs.datakitchen.io/tutorials/quickstart-demo/).
|
|
136
|
+
|
|
137
|
+
### Support
|
|
138
|
+
For support requests, [join the Data Observability Slack](https://data-observability-slack.datakitchen.io/join) 👋 and post on the `#support` channel.
|
|
139
|
+
|
|
140
|
+
### Connect to your database
|
|
141
|
+
Follow [these instructions](https://docs.datakitchen.io/testgen/connect-your-database/) to improve the quality of data in your database.
|
|
142
|
+
|
|
143
|
+
### Community
|
|
144
|
+
Talk and learn with other data practitioners who are building with DataKitchen. Share knowledge, get help, and contribute to our open-source project.
|
|
145
|
+
|
|
146
|
+
Join our community here:
|
|
147
|
+
|
|
148
|
+
* 👋 [Join us on Slack](https://data-observability-slack.datakitchen.io/join), this is also how you get support (see above)
|
|
149
|
+
|
|
150
|
+
* 🌟 [Star us on GitHub](https://github.com/DataKitchen/data-observability-installer)
|
|
151
|
+
|
|
152
|
+
* 🐦 [Follow us on Twitter](https://twitter.com/i/flow/login?redirect_after_login=%2Fdatakitchen_io)
|
|
153
|
+
|
|
154
|
+
* 🕴️ [Follow us on LinkedIn](https://www.linkedin.com/company/datakitchen)
|
|
155
|
+
|
|
156
|
+
* 📺 [Get Free DataOps Fundamentals Certification](https://info.datakitchen.io/training-certification-dataops-fundamentals)
|
|
157
|
+
|
|
158
|
+
* 📚 [Read our blog posts](https://datakitchen.io/blog/)
|
|
159
|
+
|
|
160
|
+
* 🗃 [Sign The DataOps Manifesto](https://DataOpsManifesto.org)
|
|
161
|
+
|
|
162
|
+
* 🗃 [Sign The Data Journey Manifesto](https://DataJourneyManifesto.org)
|
|
163
|
+
|
|
164
|
+
|
|
165
|
+
### Contributing
|
|
166
|
+
For details on contributing or running the project for development, check out our [contributing guide](CONTRIBUTING.md).
|
|
167
|
+
|
|
168
|
+
### License
|
|
169
|
+
DataKitchen's DataOps Data Quality TestGen is Apache 2.0 licensed.
|
|
@@ -0,0 +1,76 @@
|
|
|
1
|
+
# DataOps Data Quality TestGen
|
|
2
|
+
  [](https://hub.docker.com/r/datakitchen/dataops-testgen) [](https://hub.docker.com/r/datakitchen/dataops-testgen) [](https://docs.datakitchen.io/testgen/what-is-testgen/) [](https://data-observability-slack.datakitchen.io/join)
|
|
3
|
+
|
|
4
|
+
*<p style="text-align: center;">DataOps Data Quality TestGen, or "TestGen" for short, can help you find data issues so you can alert your users and notify your suppliers. It does this by delivering simple, fast data quality test generation and execution by data profiling, new dataset screening and hygiene review, algorithmic generation of data quality validation tests, ongoing production testing of new data refreshes, and continuous anomaly monitoring of datasets. TestGen is part of DataKitchen's Open Source Data Observability.</p>*
|
|
5
|
+
|
|
6
|
+
## Documentation
|
|
7
|
+
|
|
8
|
+
[DataOps TestGen Overview](https://datakitchen.io/dataops-testgen-product/)
|
|
9
|
+
|
|
10
|
+
[DataOps TestGen Documentation](https://docs.datakitchen.io/testgen/what-is-testgen/)
|
|
11
|
+
|
|
12
|
+
|
|
13
|
+
## Features
|
|
14
|
+
|
|
15
|
+
[Interactive Product Tour](https://datakitchen.storylane.io/share/byag8vimd5tn)
|
|
16
|
+
|
|
17
|
+
What does DataKitchen's DataOps Data Quality TestGen do? It helps you understand and <b>find data issues in new data</b>.
|
|
18
|
+
<p align="center">
|
|
19
|
+
<img alt="DatKitchen Open Source Data Quality TestGen Features - New Data" src="https://datakitchen.io/wp-content/uploads/2024/07/Screenshot-2024-07-23-at-2.22.57 PM.png" width="70%">
|
|
20
|
+
</p>
|
|
21
|
+
It constantly <b>watches your data for data quality anomalies</b> and lets you drill into problems.
|
|
22
|
+
<br></br>
|
|
23
|
+
<p align="center">
|
|
24
|
+
<img alt="DataKitchen Open Source Data Quality TestGen Features - Data Ingestion and Quality Testing" src="https://datakitchen.io/wp-content/uploads/2024/07/Screenshot-2024-07-23-at-2.23.07 PM.png" width="70%">
|
|
25
|
+
</p>
|
|
26
|
+
A <b>single place to manage Data Quality</b> across data sets, locations, and teams.
|
|
27
|
+
<br></br>
|
|
28
|
+
<p align="center">
|
|
29
|
+
<img alt="DataKitchen Open Source Data Quality TestGen Features - Single Place" src="https://datakitchen.io/wp-content/uploads/2024/07/Screenshot-dataops-testgen-centralize.png" width="70%">
|
|
30
|
+
</p>
|
|
31
|
+
|
|
32
|
+
## Installation
|
|
33
|
+
|
|
34
|
+
The [dk-installer](https://github.com/DataKitchen/data-observability-installer/?tab=readme-ov-file#install-the-testgen-application) program installs TestGen in either Docker or pip mode. For complete instructions, see the documentation:
|
|
35
|
+
|
|
36
|
+
* [Install on Mac/Linux](https://docs.datakitchen.io/testgen/get-started/install-on-mac-linux/)
|
|
37
|
+
* [Install on Windows](https://docs.datakitchen.io/testgen/get-started/install-on-windows/)
|
|
38
|
+
|
|
39
|
+
## What Next?
|
|
40
|
+
|
|
41
|
+
### Getting started guide
|
|
42
|
+
We recommend you start by going through the [Data Observability Overview Demo](https://docs.datakitchen.io/tutorials/quickstart-demo/).
|
|
43
|
+
|
|
44
|
+
### Support
|
|
45
|
+
For support requests, [join the Data Observability Slack](https://data-observability-slack.datakitchen.io/join) 👋 and post on the `#support` channel.
|
|
46
|
+
|
|
47
|
+
### Connect to your database
|
|
48
|
+
Follow [these instructions](https://docs.datakitchen.io/testgen/connect-your-database/) to improve the quality of data in your database.
|
|
49
|
+
|
|
50
|
+
### Community
|
|
51
|
+
Talk and learn with other data practitioners who are building with DataKitchen. Share knowledge, get help, and contribute to our open-source project.
|
|
52
|
+
|
|
53
|
+
Join our community here:
|
|
54
|
+
|
|
55
|
+
* 👋 [Join us on Slack](https://data-observability-slack.datakitchen.io/join), this is also how you get support (see above)
|
|
56
|
+
|
|
57
|
+
* 🌟 [Star us on GitHub](https://github.com/DataKitchen/data-observability-installer)
|
|
58
|
+
|
|
59
|
+
* 🐦 [Follow us on Twitter](https://twitter.com/i/flow/login?redirect_after_login=%2Fdatakitchen_io)
|
|
60
|
+
|
|
61
|
+
* 🕴️ [Follow us on LinkedIn](https://www.linkedin.com/company/datakitchen)
|
|
62
|
+
|
|
63
|
+
* 📺 [Get Free DataOps Fundamentals Certification](https://info.datakitchen.io/training-certification-dataops-fundamentals)
|
|
64
|
+
|
|
65
|
+
* 📚 [Read our blog posts](https://datakitchen.io/blog/)
|
|
66
|
+
|
|
67
|
+
* 🗃 [Sign The DataOps Manifesto](https://DataOpsManifesto.org)
|
|
68
|
+
|
|
69
|
+
* 🗃 [Sign The Data Journey Manifesto](https://DataJourneyManifesto.org)
|
|
70
|
+
|
|
71
|
+
|
|
72
|
+
### Contributing
|
|
73
|
+
For details on contributing or running the project for development, check out our [contributing guide](CONTRIBUTING.md).
|
|
74
|
+
|
|
75
|
+
### License
|
|
76
|
+
DataKitchen's DataOps Data Quality TestGen is Apache 2.0 licensed.
|
|
@@ -0,0 +1,169 @@
|
|
|
1
|
+
Metadata-Version: 2.1
|
|
2
|
+
Name: dataops-testgen
|
|
3
|
+
Version: 5.33.2
|
|
4
|
+
Summary: DataKitchen's Data Quality DataOps TestGen
|
|
5
|
+
Author-email: "DataKitchen, Inc." <info@datakitchen.io>
|
|
6
|
+
Maintainer-email: "DataKitchen, Inc." <info@datakitchen.io>
|
|
7
|
+
Project-URL: Source Code, https://github.com/DataKitchen/dataops-testgen
|
|
8
|
+
Project-URL: Bug Tracker, https://github.com/DataKitchen/dataops-testgen/issues
|
|
9
|
+
Project-URL: Documentation, https://docs.datakitchen.io/testgen/what-is-testgen/
|
|
10
|
+
Project-URL: Release Notes, https://docs.datakitchen.io/testgen/release-notes/
|
|
11
|
+
Project-URL: Slack, https://data-observability-slack.datakitchen.io/join
|
|
12
|
+
Project-URL: Homepage, https://example.com
|
|
13
|
+
Keywords: dataops,data,quality,testing,database,profiling
|
|
14
|
+
Classifier: License :: OSI Approved :: Apache Software License
|
|
15
|
+
Classifier: Development Status :: 5 - Production/Stable
|
|
16
|
+
Classifier: Operating System :: OS Independent
|
|
17
|
+
Classifier: Programming Language :: Python :: 3.11
|
|
18
|
+
Classifier: Programming Language :: Python :: 3.12
|
|
19
|
+
Classifier: Programming Language :: Python :: 3.13
|
|
20
|
+
Classifier: Topic :: System :: Monitoring
|
|
21
|
+
Requires-Python: >=3.11
|
|
22
|
+
Description-Content-Type: text/markdown
|
|
23
|
+
License-File: LICENSE
|
|
24
|
+
License-File: NOTICE
|
|
25
|
+
Requires-Dist: PyYAML==6.0.3
|
|
26
|
+
Requires-Dist: click==8.3.1
|
|
27
|
+
Requires-Dist: sqlalchemy==2.0.48
|
|
28
|
+
Requires-Dist: databricks-sql-connector==4.2.5
|
|
29
|
+
Requires-Dist: databricks-sqlalchemy==2.0.9
|
|
30
|
+
Requires-Dist: databricks-sdk>=0.20.0
|
|
31
|
+
Requires-Dist: snowflake-sqlalchemy==1.9.0
|
|
32
|
+
Requires-Dist: sqlalchemy-bigquery==1.16.0
|
|
33
|
+
Requires-Dist: oracledb==3.4.0
|
|
34
|
+
Requires-Dist: hdbcli==2.25.31
|
|
35
|
+
Requires-Dist: sqlalchemy-hana==4.4.0
|
|
36
|
+
Requires-Dist: pyodbc==5.2.0
|
|
37
|
+
Requires-Dist: psycopg2-binary==2.9.11
|
|
38
|
+
Requires-Dist: pycryptodome==3.21
|
|
39
|
+
Requires-Dist: prettytable==3.7.0
|
|
40
|
+
Requires-Dist: requests_extensions==1.1.3
|
|
41
|
+
Requires-Dist: numpy==2.1.3
|
|
42
|
+
Requires-Dist: pandas==2.2.3
|
|
43
|
+
Requires-Dist: streamlit==1.55.0
|
|
44
|
+
Requires-Dist: streamlit-extras==0.3.0
|
|
45
|
+
Requires-Dist: streamlit-aggrid==0.3.4.post3
|
|
46
|
+
Requires-Dist: plotly_express==0.4.1
|
|
47
|
+
Requires-Dist: streamlit-authenticator==0.2.3
|
|
48
|
+
Requires-Dist: streamlit-javascript==0.1.5
|
|
49
|
+
Requires-Dist: progress==1.6
|
|
50
|
+
Requires-Dist: beautifulsoup4==4.12.3
|
|
51
|
+
Requires-Dist: trino==0.327.0
|
|
52
|
+
Requires-Dist: xlsxwriter==3.2.0
|
|
53
|
+
Requires-Dist: psutil==5.9.8
|
|
54
|
+
Requires-Dist: concurrent_log_handler==0.9.25
|
|
55
|
+
Requires-Dist: cryptography==46.0.6
|
|
56
|
+
Requires-Dist: validators==0.33.0
|
|
57
|
+
Requires-Dist: reportlab==4.2.2
|
|
58
|
+
Requires-Dist: cron-converter==1.2.1
|
|
59
|
+
Requires-Dist: cron-descriptor==2.0.5
|
|
60
|
+
Requires-Dist: pybars3==0.9.7
|
|
61
|
+
Requires-Dist: azure-identity==1.25.1
|
|
62
|
+
Requires-Dist: statsmodels==0.14.6
|
|
63
|
+
Requires-Dist: holidays~=0.89
|
|
64
|
+
Requires-Dist: pyarrow==21.0.0
|
|
65
|
+
Requires-Dist: matplotlib==3.9.2
|
|
66
|
+
Requires-Dist: scipy==1.14.1
|
|
67
|
+
Requires-Dist: jinja2==3.1.6
|
|
68
|
+
Requires-Dist: pillow==12.2.0
|
|
69
|
+
Requires-Dist: protobuf==6.33.5
|
|
70
|
+
Requires-Dist: mcp[cli]==1.26.0
|
|
71
|
+
Requires-Dist: uvicorn==0.41.0
|
|
72
|
+
Requires-Dist: PyJWT==2.12.0
|
|
73
|
+
Requires-Dist: bcrypt==5.0.0
|
|
74
|
+
Requires-Dist: authlib~=1.6.6
|
|
75
|
+
Requires-Dist: fastapi==0.135.1
|
|
76
|
+
Provides-Extra: standalone
|
|
77
|
+
Requires-Dist: pixeltable-pgserver>=0.5.1; extra == "standalone"
|
|
78
|
+
Provides-Extra: dev
|
|
79
|
+
Requires-Dist: invoke==2.2.0; extra == "dev"
|
|
80
|
+
Requires-Dist: ruff==0.4.1; extra == "dev"
|
|
81
|
+
Requires-Dist: mypy==1.9.0; extra == "dev"
|
|
82
|
+
Requires-Dist: pre-commit==3.6.2; extra == "dev"
|
|
83
|
+
Requires-Dist: types-PyYAML==6.0.12.20240311; extra == "dev"
|
|
84
|
+
Requires-Dist: types-setuptools==69.2.0.20240317; extra == "dev"
|
|
85
|
+
Requires-Dist: semver==3.0.2; extra == "dev"
|
|
86
|
+
Requires-Dist: pytest==8.1.1; extra == "dev"
|
|
87
|
+
Requires-Dist: pytest-cov==4.1.0; extra == "dev"
|
|
88
|
+
Requires-Dist: tomli==2.0.1; extra == "dev"
|
|
89
|
+
Provides-Extra: release
|
|
90
|
+
Requires-Dist: build==1.2.1; extra == "release"
|
|
91
|
+
Requires-Dist: bumpver==2023.1129; extra == "release"
|
|
92
|
+
Requires-Dist: twine==5.1.1; extra == "release"
|
|
93
|
+
|
|
94
|
+
# DataOps Data Quality TestGen
|
|
95
|
+
  [](https://hub.docker.com/r/datakitchen/dataops-testgen) [](https://hub.docker.com/r/datakitchen/dataops-testgen) [](https://docs.datakitchen.io/testgen/what-is-testgen/) [](https://data-observability-slack.datakitchen.io/join)
|
|
96
|
+
|
|
97
|
+
*<p style="text-align: center;">DataOps Data Quality TestGen, or "TestGen" for short, can help you find data issues so you can alert your users and notify your suppliers. It does this by delivering simple, fast data quality test generation and execution by data profiling, new dataset screening and hygiene review, algorithmic generation of data quality validation tests, ongoing production testing of new data refreshes, and continuous anomaly monitoring of datasets. TestGen is part of DataKitchen's Open Source Data Observability.</p>*
|
|
98
|
+
|
|
99
|
+
## Documentation
|
|
100
|
+
|
|
101
|
+
[DataOps TestGen Overview](https://datakitchen.io/dataops-testgen-product/)
|
|
102
|
+
|
|
103
|
+
[DataOps TestGen Documentation](https://docs.datakitchen.io/testgen/what-is-testgen/)
|
|
104
|
+
|
|
105
|
+
|
|
106
|
+
## Features
|
|
107
|
+
|
|
108
|
+
[Interactive Product Tour](https://datakitchen.storylane.io/share/byag8vimd5tn)
|
|
109
|
+
|
|
110
|
+
What does DataKitchen's DataOps Data Quality TestGen do? It helps you understand and <b>find data issues in new data</b>.
|
|
111
|
+
<p align="center">
|
|
112
|
+
<img alt="DatKitchen Open Source Data Quality TestGen Features - New Data" src="https://datakitchen.io/wp-content/uploads/2024/07/Screenshot-2024-07-23-at-2.22.57 PM.png" width="70%">
|
|
113
|
+
</p>
|
|
114
|
+
It constantly <b>watches your data for data quality anomalies</b> and lets you drill into problems.
|
|
115
|
+
<br></br>
|
|
116
|
+
<p align="center">
|
|
117
|
+
<img alt="DataKitchen Open Source Data Quality TestGen Features - Data Ingestion and Quality Testing" src="https://datakitchen.io/wp-content/uploads/2024/07/Screenshot-2024-07-23-at-2.23.07 PM.png" width="70%">
|
|
118
|
+
</p>
|
|
119
|
+
A <b>single place to manage Data Quality</b> across data sets, locations, and teams.
|
|
120
|
+
<br></br>
|
|
121
|
+
<p align="center">
|
|
122
|
+
<img alt="DataKitchen Open Source Data Quality TestGen Features - Single Place" src="https://datakitchen.io/wp-content/uploads/2024/07/Screenshot-dataops-testgen-centralize.png" width="70%">
|
|
123
|
+
</p>
|
|
124
|
+
|
|
125
|
+
## Installation
|
|
126
|
+
|
|
127
|
+
The [dk-installer](https://github.com/DataKitchen/data-observability-installer/?tab=readme-ov-file#install-the-testgen-application) program installs TestGen in either Docker or pip mode. For complete instructions, see the documentation:
|
|
128
|
+
|
|
129
|
+
* [Install on Mac/Linux](https://docs.datakitchen.io/testgen/get-started/install-on-mac-linux/)
|
|
130
|
+
* [Install on Windows](https://docs.datakitchen.io/testgen/get-started/install-on-windows/)
|
|
131
|
+
|
|
132
|
+
## What Next?
|
|
133
|
+
|
|
134
|
+
### Getting started guide
|
|
135
|
+
We recommend you start by going through the [Data Observability Overview Demo](https://docs.datakitchen.io/tutorials/quickstart-demo/).
|
|
136
|
+
|
|
137
|
+
### Support
|
|
138
|
+
For support requests, [join the Data Observability Slack](https://data-observability-slack.datakitchen.io/join) 👋 and post on the `#support` channel.
|
|
139
|
+
|
|
140
|
+
### Connect to your database
|
|
141
|
+
Follow [these instructions](https://docs.datakitchen.io/testgen/connect-your-database/) to improve the quality of data in your database.
|
|
142
|
+
|
|
143
|
+
### Community
|
|
144
|
+
Talk and learn with other data practitioners who are building with DataKitchen. Share knowledge, get help, and contribute to our open-source project.
|
|
145
|
+
|
|
146
|
+
Join our community here:
|
|
147
|
+
|
|
148
|
+
* 👋 [Join us on Slack](https://data-observability-slack.datakitchen.io/join), this is also how you get support (see above)
|
|
149
|
+
|
|
150
|
+
* 🌟 [Star us on GitHub](https://github.com/DataKitchen/data-observability-installer)
|
|
151
|
+
|
|
152
|
+
* 🐦 [Follow us on Twitter](https://twitter.com/i/flow/login?redirect_after_login=%2Fdatakitchen_io)
|
|
153
|
+
|
|
154
|
+
* 🕴️ [Follow us on LinkedIn](https://www.linkedin.com/company/datakitchen)
|
|
155
|
+
|
|
156
|
+
* 📺 [Get Free DataOps Fundamentals Certification](https://info.datakitchen.io/training-certification-dataops-fundamentals)
|
|
157
|
+
|
|
158
|
+
* 📚 [Read our blog posts](https://datakitchen.io/blog/)
|
|
159
|
+
|
|
160
|
+
* 🗃 [Sign The DataOps Manifesto](https://DataOpsManifesto.org)
|
|
161
|
+
|
|
162
|
+
* 🗃 [Sign The Data Journey Manifesto](https://DataJourneyManifesto.org)
|
|
163
|
+
|
|
164
|
+
|
|
165
|
+
### Contributing
|
|
166
|
+
For details on contributing or running the project for development, check out our [contributing guide](CONTRIBUTING.md).
|
|
167
|
+
|
|
168
|
+
### License
|
|
169
|
+
DataKitchen's DataOps Data Quality TestGen is Apache 2.0 licensed.
|
|
@@ -61,6 +61,7 @@ testgen/common/date_service.py
|
|
|
61
61
|
testgen/common/display_service.py
|
|
62
62
|
testgen/common/docker_service.py
|
|
63
63
|
testgen/common/encrypt.py
|
|
64
|
+
testgen/common/enums.py
|
|
64
65
|
testgen/common/freshness_service.py
|
|
65
66
|
testgen/common/job_context.py
|
|
66
67
|
testgen/common/logs.py
|
|
@@ -128,6 +129,7 @@ testgen/mcp/tools/__init__.py
|
|
|
128
129
|
testgen/mcp/tools/common.py
|
|
129
130
|
testgen/mcp/tools/discovery.py
|
|
130
131
|
testgen/mcp/tools/execution.py
|
|
132
|
+
testgen/mcp/tools/hygiene_issues.py
|
|
131
133
|
testgen/mcp/tools/markdown.py
|
|
132
134
|
testgen/mcp/tools/profiling.py
|
|
133
135
|
testgen/mcp/tools/reference.py
|
|
@@ -8,7 +8,7 @@ build-backend = "setuptools.build_meta"
|
|
|
8
8
|
|
|
9
9
|
[project]
|
|
10
10
|
name = "dataops-testgen"
|
|
11
|
-
version = "5.
|
|
11
|
+
version = "5.33.2"
|
|
12
12
|
description = "DataKitchen's Data Quality DataOps TestGen"
|
|
13
13
|
authors = [
|
|
14
14
|
{ "name" = "DataKitchen, Inc.", "email" = "info@datakitchen.io" },
|
|
@@ -1,3 +1,40 @@
|
|
|
1
|
+
# Silence streamlit's "missing ScriptRunContext" / "No runtime found" /
|
|
2
|
+
# "Session state does not function" warnings, which fire whenever streamlit-
|
|
3
|
+
# decorated code runs outside an active script run (our CLI, scheduler, server,
|
|
4
|
+
# and any import that touches @st.cache_data). Must run before the first
|
|
5
|
+
# streamlit-using import, so it sits at the top of the module.
|
|
6
|
+
#
|
|
7
|
+
# We replace ``set_log_level`` itself, after seeding it to "error". Streamlit's
|
|
8
|
+
# own ``_update_logger`` callback fires on config parse and would otherwise
|
|
9
|
+
# downgrade us back to "info"; the cap floors any later call at ERROR.
|
|
10
|
+
def _silence_streamlit_logs() -> None:
|
|
11
|
+
import logging as _logging
|
|
12
|
+
|
|
13
|
+
try:
|
|
14
|
+
from streamlit import logger as _st_logger
|
|
15
|
+
except ImportError:
|
|
16
|
+
return
|
|
17
|
+
|
|
18
|
+
_original = _st_logger.set_log_level
|
|
19
|
+
_original("error")
|
|
20
|
+
|
|
21
|
+
def _capped(level):
|
|
22
|
+
if isinstance(level, str):
|
|
23
|
+
try:
|
|
24
|
+
level_num = getattr(_logging, level.upper())
|
|
25
|
+
except AttributeError:
|
|
26
|
+
_original(level)
|
|
27
|
+
return
|
|
28
|
+
else:
|
|
29
|
+
level_num = level
|
|
30
|
+
_original(max(level_num, _logging.ERROR))
|
|
31
|
+
|
|
32
|
+
_st_logger.set_log_level = _capped
|
|
33
|
+
|
|
34
|
+
|
|
35
|
+
_silence_streamlit_logs()
|
|
36
|
+
|
|
37
|
+
|
|
1
38
|
import base64
|
|
2
39
|
import importlib
|
|
3
40
|
import logging
|
|
@@ -60,6 +97,7 @@ from testgen.common.models.test_suite import TestSuite
|
|
|
60
97
|
from testgen.common.notifications.base import smtp_configured
|
|
61
98
|
from testgen.common.standalone_postgres import (
|
|
62
99
|
STANDALONE_URI_ENV_VAR,
|
|
100
|
+
ensure_standalone_setup,
|
|
63
101
|
get_server_uri,
|
|
64
102
|
is_standalone_mode,
|
|
65
103
|
)
|
|
@@ -79,12 +117,41 @@ VERSION_DATA = version_service.get_version()
|
|
|
79
117
|
CHILDREN_POLL_INTERVAL = 10
|
|
80
118
|
|
|
81
119
|
|
|
120
|
+
def _subprocess_spawn_kwargs() -> dict:
|
|
121
|
+
"""Spawn flags that let the parent send a *catchable* shutdown signal to a child.
|
|
122
|
+
|
|
123
|
+
On POSIX, ``start_new_session`` puts the child in its own session so the
|
|
124
|
+
console SIGINT only hits the parent. On Windows, ``CREATE_NEW_PROCESS_GROUP``
|
|
125
|
+
is required so the parent can deliver ``CTRL_BREAK_EVENT`` to the child —
|
|
126
|
+
without it, the only options are ``terminate()`` (uncatchable) or relying on
|
|
127
|
+
the console-wide Ctrl+C broadcast (racy).
|
|
128
|
+
"""
|
|
129
|
+
if sys.platform == "win32":
|
|
130
|
+
return {"creationflags": subprocess.CREATE_NEW_PROCESS_GROUP}
|
|
131
|
+
return {"start_new_session": True}
|
|
132
|
+
|
|
133
|
+
|
|
134
|
+
def _install_shutdown_handler(handler) -> None:
|
|
135
|
+
"""Register *handler* for SIGINT, SIGTERM, and (on Windows) SIGBREAK.
|
|
136
|
+
|
|
137
|
+
Windows children spawned with ``CREATE_NEW_PROCESS_GROUP`` receive
|
|
138
|
+
``CTRL_BREAK_EVENT`` (delivered as SIGBREAK) instead of console Ctrl+C —
|
|
139
|
+
treat it the same as SIGTERM so atexit hooks run and pgserver's PID list
|
|
140
|
+
stays clean.
|
|
141
|
+
"""
|
|
142
|
+
signal.signal(signal.SIGINT, handler)
|
|
143
|
+
signal.signal(signal.SIGTERM, handler)
|
|
144
|
+
if sigbreak := getattr(signal, "SIGBREAK", None):
|
|
145
|
+
signal.signal(sigbreak, handler)
|
|
146
|
+
|
|
147
|
+
|
|
82
148
|
def _forward_signal_to_child(child: subprocess.Popen, signum: int) -> None:
|
|
83
|
-
#
|
|
84
|
-
#
|
|
85
|
-
#
|
|
149
|
+
# POSIX: forward the signal verbatim. Windows: send CTRL_BREAK_EVENT so the
|
|
150
|
+
# child's atexit hooks run (it deregisters from pgserver's PID list, lets
|
|
151
|
+
# streamlit/uvicorn shut down their event loops, etc.). The child must have
|
|
152
|
+
# been spawned with CREATE_NEW_PROCESS_GROUP — see _subprocess_spawn_kwargs.
|
|
86
153
|
if sys.platform == "win32":
|
|
87
|
-
child.
|
|
154
|
+
child.send_signal(signal.CTRL_BREAK_EVENT)
|
|
88
155
|
else:
|
|
89
156
|
child.send_signal(signum)
|
|
90
157
|
|
|
@@ -132,7 +199,14 @@ class CliGroup(click.Group):
|
|
|
132
199
|
@click.pass_context
|
|
133
200
|
def cli(ctx: Context, verbose: bool):
|
|
134
201
|
if is_standalone_mode():
|
|
135
|
-
|
|
202
|
+
# Children spawned by `run-app all` (and the Streamlit subprocess) inherit the
|
|
203
|
+
# parent's pgserver URI. They must NOT call get_server() themselves — each call
|
|
204
|
+
# registers the calling PID in pgserver's on-disk handle list, and any PID left
|
|
205
|
+
# over after a hard kill prevents the parent from actually stopping postgres.
|
|
206
|
+
if inherited_uri := os.environ.get(STANDALONE_URI_ENV_VAR):
|
|
207
|
+
ensure_standalone_setup(inherited_uri)
|
|
208
|
+
else:
|
|
209
|
+
start_standalone_postgres()
|
|
136
210
|
|
|
137
211
|
if verbose:
|
|
138
212
|
configure_logging(level=logging.DEBUG)
|
|
@@ -566,7 +640,7 @@ def setup_standalone(username: str, password: str):
|
|
|
566
640
|
|
|
567
641
|
# Persist caller-supplied runtime overrides (ports, TLS) so they apply to
|
|
568
642
|
# subsequent `testgen run-app` invocations.
|
|
569
|
-
persisted_env_vars = ("TG_UI_PORT", "TG_API_PORT", "SSL_CERT_FILE", "SSL_KEY_FILE")
|
|
643
|
+
persisted_env_vars = ("TG_UI_PORT", "TG_API_PORT", "TESTGEN_LOG_FILE_PATH", "SSL_CERT_FILE", "SSL_KEY_FILE")
|
|
570
644
|
persisted_lines = [f"{name}={os.environ[name]}" for name in persisted_env_vars if os.environ.get(name)]
|
|
571
645
|
if persisted_lines:
|
|
572
646
|
config_lines.extend(["", "# Runtime overrides from installer", *persisted_lines])
|
|
@@ -574,6 +648,13 @@ def setup_standalone(username: str, password: str):
|
|
|
574
648
|
config_path.write_text("\n".join(config_lines) + "\n")
|
|
575
649
|
click.echo(f"Config written to {config_path}")
|
|
576
650
|
|
|
651
|
+
# `getenv` resolves env vars before config.env, so a pre-existing
|
|
652
|
+
# TESTGEN_USERNAME / TESTGEN_PASSWORD in the shell would override the
|
|
653
|
+
# CLI-supplied values and get seeded into the DB. Force the CLI args
|
|
654
|
+
# to win for the rest of this process.
|
|
655
|
+
os.environ["TESTGEN_USERNAME"] = username
|
|
656
|
+
os.environ["TESTGEN_PASSWORD"] = password
|
|
657
|
+
|
|
577
658
|
# Reload settings — the module was already evaluated at import time
|
|
578
659
|
# before the config file existed. Reloading re-reads the new file
|
|
579
660
|
# and re-evaluates all module-level variables.
|
|
@@ -880,14 +961,16 @@ def run_ui():
|
|
|
880
961
|
app_file = os.path.join(os.path.dirname(os.path.abspath(__file__)), "ui/app.py")
|
|
881
962
|
|
|
882
963
|
# In standalone mode, pass the pgserver URI to the Streamlit subprocess
|
|
883
|
-
# so it can connect without acquiring the pgserver file lock.
|
|
964
|
+
# so it can connect without acquiring the pgserver file lock. When this
|
|
965
|
+
# process is itself a child of `run-app all`, the URI is already in the
|
|
966
|
+
# inherited environment — fall back to that so Streamlit still gets it.
|
|
884
967
|
child_env = {**os.environ, "TG_JOB_SOURCE": "UI"}
|
|
885
968
|
if is_standalone_mode():
|
|
886
|
-
server_uri = get_server_uri()
|
|
969
|
+
server_uri = get_server_uri() or os.environ.get(STANDALONE_URI_ENV_VAR)
|
|
887
970
|
if server_uri:
|
|
888
|
-
child_env =
|
|
971
|
+
child_env[STANDALONE_URI_ENV_VAR] = server_uri
|
|
889
972
|
|
|
890
|
-
process= subprocess.Popen(
|
|
973
|
+
process = subprocess.Popen(
|
|
891
974
|
[
|
|
892
975
|
sys.executable,
|
|
893
976
|
"-m",
|
|
@@ -895,6 +978,7 @@ def run_ui():
|
|
|
895
978
|
"run",
|
|
896
979
|
app_file,
|
|
897
980
|
"--browser.gatherUsageStats=false",
|
|
981
|
+
f"--logger.level={'debug' if settings.IS_DEBUG else 'error'}",
|
|
898
982
|
"--client.showErrorDetails=none",
|
|
899
983
|
"--client.toolbarMode=minimal",
|
|
900
984
|
"--server.enableStaticServing=true",
|
|
@@ -905,12 +989,12 @@ def run_ui():
|
|
|
905
989
|
f"{'--debug' if settings.IS_DEBUG else ''}",
|
|
906
990
|
],
|
|
907
991
|
env=child_env,
|
|
992
|
+
**_subprocess_spawn_kwargs(),
|
|
908
993
|
)
|
|
909
994
|
def term_ui(signum, _):
|
|
910
995
|
LOG.info(f"Sending termination signal {signum} to Testgen UI")
|
|
911
996
|
_forward_signal_to_child(process, signum)
|
|
912
|
-
|
|
913
|
-
signal.signal(signal.SIGTERM, term_ui)
|
|
997
|
+
_install_shutdown_handler(term_ui)
|
|
914
998
|
status_code = process.wait()
|
|
915
999
|
LOG.log(logging.ERROR if status_code != 0 else logging.INFO, f"Testgen UI exited with status code {status_code}")
|
|
916
1000
|
|
|
@@ -935,8 +1019,15 @@ def run_app(module):
|
|
|
935
1019
|
run_server()
|
|
936
1020
|
|
|
937
1021
|
case "all":
|
|
1022
|
+
child_env = os.environ.copy()
|
|
1023
|
+
if is_standalone_mode() and (server_uri := get_server_uri()):
|
|
1024
|
+
child_env[STANDALONE_URI_ENV_VAR] = server_uri
|
|
938
1025
|
children = [
|
|
939
|
-
subprocess.Popen(
|
|
1026
|
+
subprocess.Popen(
|
|
1027
|
+
[sys.executable, "-m", "testgen", "run-app", m],
|
|
1028
|
+
env=child_env,
|
|
1029
|
+
**_subprocess_spawn_kwargs(),
|
|
1030
|
+
)
|
|
940
1031
|
for m in APP_MODULES
|
|
941
1032
|
]
|
|
942
1033
|
|
|
@@ -944,8 +1035,7 @@ def run_app(module):
|
|
|
944
1035
|
for child in children:
|
|
945
1036
|
_forward_signal_to_child(child, signum)
|
|
946
1037
|
|
|
947
|
-
|
|
948
|
-
signal.signal(signal.SIGTERM, term_children)
|
|
1038
|
+
_install_shutdown_handler(term_children)
|
|
949
1039
|
|
|
950
1040
|
terminating = False
|
|
951
1041
|
while children:
|
|
@@ -954,7 +1044,10 @@ def run_app(module):
|
|
|
954
1044
|
except subprocess.TimeoutExpired:
|
|
955
1045
|
pass
|
|
956
1046
|
|
|
957
|
-
|
|
1047
|
+
# Iterate a snapshot — `children.remove(child)` inside a live iteration
|
|
1048
|
+
# would skip the next element and could leave a sibling un-reaped during
|
|
1049
|
+
# the simultaneous-exit case we're explicitly hardening for here.
|
|
1050
|
+
for child in list(children):
|
|
958
1051
|
if child.poll() is not None:
|
|
959
1052
|
children.remove(child)
|
|
960
1053
|
if not terminating:
|