snowflake-data-validation 1.3.2__tar.gz → 1.3.40__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.
Files changed (324) hide show
  1. {snowflake_data_validation-1.3.2 → snowflake_data_validation-1.3.40}/.gitignore +1 -1
  2. {snowflake_data_validation-1.3.2 → snowflake_data_validation-1.3.40}/PKG-INFO +6 -4
  3. {snowflake_data_validation-1.3.2 → snowflake_data_validation-1.3.40}/README.md +1 -1
  4. {snowflake_data_validation-1.3.2 → snowflake_data_validation-1.3.40}/pyproject.toml +4 -2
  5. {snowflake_data_validation-1.3.2 → snowflake_data_validation-1.3.40}/src/snowflake/snowflake_data_validation/__init__.py +14 -1
  6. {snowflake_data_validation-1.3.2 → snowflake_data_validation-1.3.40}/src/snowflake/snowflake_data_validation/__version__.py +1 -1
  7. {snowflake_data_validation-1.3.2 → snowflake_data_validation-1.3.40}/src/snowflake/snowflake_data_validation/configuration/model/validation_configuration.py +10 -5
  8. snowflake_data_validation-1.3.40/src/snowflake/snowflake_data_validation/executer/async_generation_executor.py +255 -0
  9. {snowflake_data_validation-1.3.2 → snowflake_data_validation-1.3.40}/src/snowflake/snowflake_data_validation/executer/async_validation_executor.py +84 -137
  10. {snowflake_data_validation-1.3.2 → snowflake_data_validation-1.3.40}/src/snowflake/snowflake_data_validation/executer/base_validation_executor.py +12 -6
  11. {snowflake_data_validation-1.3.2 → snowflake_data_validation-1.3.40}/src/snowflake/snowflake_data_validation/executer/executor_factory.py +0 -1
  12. {snowflake_data_validation-1.3.2 → snowflake_data_validation-1.3.40}/src/snowflake/snowflake_data_validation/executer/source_validation_executor.py +23 -11
  13. {snowflake_data_validation-1.3.2 → snowflake_data_validation-1.3.40}/src/snowflake/snowflake_data_validation/executer/sync_validation_executor.py +327 -180
  14. {snowflake_data_validation-1.3.2 → snowflake_data_validation-1.3.40}/src/snowflake/snowflake_data_validation/extractor/metadata_extractor_base.py +0 -98
  15. {snowflake_data_validation-1.3.2 → snowflake_data_validation-1.3.40}/src/snowflake/snowflake_data_validation/orchestration/parallel_execution_engine.py +7 -0
  16. snowflake_data_validation-1.3.40/src/snowflake/snowflake_data_validation/orchestration/table_metadata_processor.py +326 -0
  17. snowflake_data_validation-1.3.40/src/snowflake/snowflake_data_validation/orchestration/view_preprocessor.py +137 -0
  18. snowflake_data_validation-1.3.40/src/snowflake/snowflake_data_validation/public/DATA_VALIDATION_API_OVERVIEW.md +162 -0
  19. snowflake_data_validation-1.3.40/src/snowflake/snowflake_data_validation/public/__init__.py +218 -0
  20. snowflake_data_validation-1.3.40/src/snowflake/snowflake_data_validation/public/_internal.py +228 -0
  21. snowflake_data_validation-1.3.40/src/snowflake/snowflake_data_validation/public/configuration/__init__.py +32 -0
  22. snowflake_data_validation-1.3.40/src/snowflake/snowflake_data_validation/public/connectors/__init__.py +105 -0
  23. snowflake_data_validation-1.3.40/src/snowflake/snowflake_data_validation/public/context/__init__.py +28 -0
  24. snowflake_data_validation-1.3.40/src/snowflake/snowflake_data_validation/public/data_validation_api.py +1468 -0
  25. snowflake_data_validation-1.3.40/src/snowflake/snowflake_data_validation/public/enums/__init__.py +34 -0
  26. snowflake_data_validation-1.3.40/src/snowflake/snowflake_data_validation/public/generators/__init__.py +28 -0
  27. snowflake_data_validation-1.3.40/src/snowflake/snowflake_data_validation/public/metadata/__init__.py +32 -0
  28. snowflake_data_validation-1.3.40/src/snowflake/snowflake_data_validation/public/model/__init__.py +40 -0
  29. snowflake_data_validation-1.3.40/src/snowflake/snowflake_data_validation/public/model/data_validation_exception.py +60 -0
  30. snowflake_data_validation-1.3.40/src/snowflake/snowflake_data_validation/public/model/generated_query.py +32 -0
  31. snowflake_data_validation-1.3.40/src/snowflake/snowflake_data_validation/public/model/query_execution_result.py +39 -0
  32. snowflake_data_validation-1.3.40/src/snowflake/snowflake_data_validation/public/model/query_generator_factory.py +47 -0
  33. snowflake_data_validation-1.3.40/src/snowflake/snowflake_data_validation/public/model/validation_result.py +37 -0
  34. {snowflake_data_validation-1.3.2 → snowflake_data_validation-1.3.40}/src/snowflake/snowflake_data_validation/query/query_generator_base.py +15 -18
  35. {snowflake_data_validation-1.3.2 → snowflake_data_validation-1.3.40}/src/snowflake/snowflake_data_validation/redshift/extractor/metadata_extractor_redshift.py +1 -19
  36. {snowflake_data_validation-1.3.2 → snowflake_data_validation-1.3.40}/src/snowflake/snowflake_data_validation/redshift/extractor/redshift_cte_generator.py +3 -1
  37. {snowflake_data_validation-1.3.2 → snowflake_data_validation-1.3.40}/src/snowflake/snowflake_data_validation/redshift/redshift_cli.py +1 -1
  38. {snowflake_data_validation-1.3.2 → snowflake_data_validation-1.3.40}/src/snowflake/snowflake_data_validation/script_writer/script_writer_base.py +2 -2
  39. {snowflake_data_validation-1.3.2 → snowflake_data_validation-1.3.40}/src/snowflake/snowflake_data_validation/snowflake/extractor/metadata_extractor_snowflake.py +1 -20
  40. {snowflake_data_validation-1.3.2 → snowflake_data_validation-1.3.40}/src/snowflake/snowflake_data_validation/snowflake/extractor/snowflake_cte_generator.py +1 -1
  41. {snowflake_data_validation-1.3.2 → snowflake_data_validation-1.3.40}/src/snowflake/snowflake_data_validation/snowflake/script_writer/script_writer_snowflake.py +1 -1
  42. {snowflake_data_validation-1.3.2 → snowflake_data_validation-1.3.40}/src/snowflake/snowflake_data_validation/sqlserver/connector/connector_factory_sql_server.py +11 -3
  43. {snowflake_data_validation-1.3.2 → snowflake_data_validation-1.3.40}/src/snowflake/snowflake_data_validation/sqlserver/connector/connector_sql_server.py +163 -56
  44. {snowflake_data_validation-1.3.2 → snowflake_data_validation-1.3.40}/src/snowflake/snowflake_data_validation/sqlserver/extractor/metadata_extractor_sqlserver.py +1 -19
  45. {snowflake_data_validation-1.3.2 → snowflake_data_validation-1.3.40}/src/snowflake/snowflake_data_validation/sqlserver/extractor/sqlserver_cte_generator.py +3 -1
  46. {snowflake_data_validation-1.3.2 → snowflake_data_validation-1.3.40}/src/snowflake/snowflake_data_validation/sqlserver/extractor/templates/sqlserver_column_metrics_templates.yaml +10 -10
  47. {snowflake_data_validation-1.3.2 → snowflake_data_validation-1.3.40}/src/snowflake/snowflake_data_validation/sqlserver/model/sqlserver_credentials_connection.py +34 -17
  48. {snowflake_data_validation-1.3.2 → snowflake_data_validation-1.3.40}/src/snowflake/snowflake_data_validation/sqlserver/script_writer/script_writer_sqlserver.py +1 -1
  49. {snowflake_data_validation-1.3.2 → snowflake_data_validation-1.3.40}/src/snowflake/snowflake_data_validation/sqlserver/sqlserver_cli.py +1 -1
  50. {snowflake_data_validation-1.3.2 → snowflake_data_validation-1.3.40}/src/snowflake/snowflake_data_validation/teradata/extractor/metadata_extractor_teradata.py +1 -19
  51. {snowflake_data_validation-1.3.2 → snowflake_data_validation-1.3.40}/src/snowflake/snowflake_data_validation/teradata/extractor/teradata_cte_generator.py +3 -1
  52. {snowflake_data_validation-1.3.2 → snowflake_data_validation-1.3.40}/src/snowflake/snowflake_data_validation/teradata/teradata_cli.py +1 -1
  53. {snowflake_data_validation-1.3.2 → snowflake_data_validation-1.3.40}/src/snowflake/snowflake_data_validation/utils/constants.py +21 -0
  54. snowflake_data_validation-1.3.40/src/snowflake/snowflake_data_validation/validation/cell_data_validator.py +93 -0
  55. {snowflake_data_validation-1.3.2 → snowflake_data_validation-1.3.40}/src/snowflake/snowflake_data_validation/validation/data_validator_base.py +51 -99
  56. {snowflake_data_validation-1.3.2 → snowflake_data_validation-1.3.40}/src/snowflake/snowflake_data_validation/validation/metrics_data_validator.py +3 -14
  57. {snowflake_data_validation-1.3.2 → snowflake_data_validation-1.3.40}/src/snowflake/snowflake_data_validation/validation/schema_data_validator.py +6 -15
  58. {snowflake_data_validation-1.3.2 → snowflake_data_validation-1.3.40}/src/snowflake/snowflake_data_validation/validation/validation_report_buffer.py +2 -0
  59. {snowflake_data_validation-1.3.2 → snowflake_data_validation-1.3.40}/tests/integration/test_async_generation_integration.py +1 -1
  60. {snowflake_data_validation-1.3.2 → snowflake_data_validation-1.3.40}/tests/unit/Teradata/test_metadata_extractor_teradata.py +0 -1
  61. {snowflake_data_validation-1.3.2 → snowflake_data_validation-1.3.40}/tests/unit/Teradata/test_query_generator_teradata.py +1 -4
  62. snowflake_data_validation-1.3.40/tests/unit/test_cell_data_validator.py +121 -0
  63. {snowflake_data_validation-1.3.2 → snowflake_data_validation-1.3.40}/tests/unit/test_configuration_loader.py +4 -0
  64. {snowflake_data_validation-1.3.2 → snowflake_data_validation-1.3.40}/tests/unit/test_configuration_model.py +6 -0
  65. {snowflake_data_validation-1.3.2 → snowflake_data_validation-1.3.40}/tests/unit/test_data_validator.py +30 -54
  66. snowflake_data_validation-1.3.40/tests/unit/test_escape_odbc_value.py +94 -0
  67. {snowflake_data_validation-1.3.2 → snowflake_data_validation-1.3.40}/tests/unit/test_source_validation_executor.py +41 -36
  68. {snowflake_data_validation-1.3.2 → snowflake_data_validation-1.3.40}/tests/unit/test_sqlserver_multi_version_support.py +335 -40
  69. {snowflake_data_validation-1.3.2 → snowflake_data_validation-1.3.40}/tests/unit/test_table_configuration.py +3 -0
  70. snowflake_data_validation-1.3.40/tests/unit/test_table_metadata_processor.py +722 -0
  71. {snowflake_data_validation-1.3.2 → snowflake_data_validation-1.3.40}/tests/unit/test_validation_configuration.py +5 -0
  72. {snowflake_data_validation-1.3.2 → snowflake_data_validation-1.3.40}/tests/unit/test_view_configuration.py +3 -0
  73. snowflake_data_validation-1.3.2/src/snowflake/snowflake_data_validation/executer/async_generation_executor.py +0 -166
  74. snowflake_data_validation-1.3.2/src/snowflake/snowflake_data_validation/orchestration/table_metadata_processor.py +0 -514
  75. snowflake_data_validation-1.3.2/src/snowflake/snowflake_data_validation/orchestration/view_preprocessor.py +0 -59
  76. snowflake_data_validation-1.3.2/tests/unit/test_table_metadata_processor.py +0 -506
  77. {snowflake_data_validation-1.3.2 → snowflake_data_validation-1.3.40}/LICENSE +0 -0
  78. {snowflake_data_validation-1.3.2 → snowflake_data_validation-1.3.40}/src/snowflake/snowflake_data_validation/__main__.py +0 -0
  79. {snowflake_data_validation-1.3.2 → snowflake_data_validation-1.3.40}/src/snowflake/snowflake_data_validation/common_cli/cli_partitioning.py +0 -0
  80. {snowflake_data_validation-1.3.2 → snowflake_data_validation-1.3.40}/src/snowflake/snowflake_data_validation/common_cli/cli_sync_validation.py +0 -0
  81. {snowflake_data_validation-1.3.2 → snowflake_data_validation-1.3.40}/src/snowflake/snowflake_data_validation/comparison_orchestrator.py +0 -0
  82. {snowflake_data_validation-1.3.2 → snowflake_data_validation-1.3.40}/src/snowflake/snowflake_data_validation/configuration/__init__.py +0 -0
  83. {snowflake_data_validation-1.3.2 → snowflake_data_validation-1.3.40}/src/snowflake/snowflake_data_validation/configuration/configuration_loader.py +0 -0
  84. {snowflake_data_validation-1.3.2 → snowflake_data_validation-1.3.40}/src/snowflake/snowflake_data_validation/configuration/model/configuration_model.py +0 -0
  85. {snowflake_data_validation-1.3.2 → snowflake_data_validation-1.3.40}/src/snowflake/snowflake_data_validation/configuration/model/connection_types.py +0 -0
  86. {snowflake_data_validation-1.3.2 → snowflake_data_validation-1.3.40}/src/snowflake/snowflake_data_validation/configuration/model/connections/__init__.py +0 -0
  87. {snowflake_data_validation-1.3.2 → snowflake_data_validation-1.3.40}/src/snowflake/snowflake_data_validation/configuration/model/logging_configuration.py +0 -0
  88. {snowflake_data_validation-1.3.2 → snowflake_data_validation-1.3.40}/src/snowflake/snowflake_data_validation/configuration/model/table_configuration.py +0 -0
  89. {snowflake_data_validation-1.3.2 → snowflake_data_validation-1.3.40}/src/snowflake/snowflake_data_validation/configuration/model/view_configuration.py +0 -0
  90. {snowflake_data_validation-1.3.2 → snowflake_data_validation-1.3.40}/src/snowflake/snowflake_data_validation/configuration/singleton.py +0 -0
  91. {snowflake_data_validation-1.3.2 → snowflake_data_validation-1.3.40}/src/snowflake/snowflake_data_validation/connector/__init__.py +0 -0
  92. {snowflake_data_validation-1.3.2 → snowflake_data_validation-1.3.40}/src/snowflake/snowflake_data_validation/connector/connector_base.py +0 -0
  93. {snowflake_data_validation-1.3.2 → snowflake_data_validation-1.3.40}/src/snowflake/snowflake_data_validation/connector/connector_factory_base.py +0 -0
  94. {snowflake_data_validation-1.3.2 → snowflake_data_validation-1.3.40}/src/snowflake/snowflake_data_validation/connector/connector_failure_tracker.py +0 -0
  95. {snowflake_data_validation-1.3.2 → snowflake_data_validation-1.3.40}/src/snowflake/snowflake_data_validation/executer/__init__.py +0 -0
  96. {snowflake_data_validation-1.3.2 → snowflake_data_validation-1.3.40}/src/snowflake/snowflake_data_validation/executer/extractor_types.py +0 -0
  97. {snowflake_data_validation-1.3.2 → snowflake_data_validation-1.3.40}/src/snowflake/snowflake_data_validation/extractor/__init__.py +0 -0
  98. {snowflake_data_validation-1.3.2 → snowflake_data_validation-1.3.40}/src/snowflake/snowflake_data_validation/extractor/sql_queries_template_generator.py +0 -0
  99. {snowflake_data_validation-1.3.2 → snowflake_data_validation-1.3.40}/src/snowflake/snowflake_data_validation/main_cli.py +0 -0
  100. {snowflake_data_validation-1.3.2 → snowflake_data_validation-1.3.40}/src/snowflake/snowflake_data_validation/orchestration/console_progress_reporter.py +0 -0
  101. {snowflake_data_validation-1.3.2 → snowflake_data_validation-1.3.40}/src/snowflake/snowflake_data_validation/orchestration/html_report/__init__.py +0 -0
  102. {snowflake_data_validation-1.3.2 → snowflake_data_validation-1.3.40}/src/snowflake/snowflake_data_validation/orchestration/html_report/html_report_builder.py +0 -0
  103. {snowflake_data_validation-1.3.2 → snowflake_data_validation-1.3.40}/src/snowflake/snowflake_data_validation/orchestration/html_report/report_metadata.py +0 -0
  104. {snowflake_data_validation-1.3.2 → snowflake_data_validation-1.3.40}/src/snowflake/snowflake_data_validation/orchestration/validation_progress_reporter.py +0 -0
  105. {snowflake_data_validation-1.3.2 → snowflake_data_validation-1.3.40}/src/snowflake/snowflake_data_validation/query/__init__.py +0 -0
  106. {snowflake_data_validation-1.3.2 → snowflake_data_validation-1.3.40}/src/snowflake/snowflake_data_validation/redshift/__init__.py +0 -0
  107. {snowflake_data_validation-1.3.2 → snowflake_data_validation-1.3.40}/src/snowflake/snowflake_data_validation/redshift/connector/__init__.py +0 -0
  108. {snowflake_data_validation-1.3.2 → snowflake_data_validation-1.3.40}/src/snowflake/snowflake_data_validation/redshift/connector/connector_factory_redshift.py +0 -0
  109. {snowflake_data_validation-1.3.2 → snowflake_data_validation-1.3.40}/src/snowflake/snowflake_data_validation/redshift/connector/connector_redshift.py +0 -0
  110. {snowflake_data_validation-1.3.2 → snowflake_data_validation-1.3.40}/src/snowflake/snowflake_data_validation/redshift/extractor/templates/redshift_chunk_row_concatenated_insert_template.sql.j2 +0 -0
  111. {snowflake_data_validation-1.3.2 → snowflake_data_validation-1.3.40}/src/snowflake/snowflake_data_validation/redshift/extractor/templates/redshift_chunk_row_concatenated_table_template.sql.j2 +0 -0
  112. {snowflake_data_validation-1.3.2 → snowflake_data_validation-1.3.40}/src/snowflake/snowflake_data_validation/redshift/extractor/templates/redshift_chunk_row_md5_insert_template.sql.j2 +0 -0
  113. {snowflake_data_validation-1.3.2 → snowflake_data_validation-1.3.40}/src/snowflake/snowflake_data_validation/redshift/extractor/templates/redshift_chunk_row_md5_table_template.sql.j2 +0 -0
  114. {snowflake_data_validation-1.3.2 → snowflake_data_validation-1.3.40}/src/snowflake/snowflake_data_validation/redshift/extractor/templates/redshift_chunks_md5_table_template.sql.j2 +0 -0
  115. {snowflake_data_validation-1.3.2 → snowflake_data_validation-1.3.40}/src/snowflake/snowflake_data_validation/redshift/extractor/templates/redshift_column_metrics_templates.yaml +0 -0
  116. {snowflake_data_validation-1.3.2 → snowflake_data_validation-1.3.40}/src/snowflake/snowflake_data_validation/redshift/extractor/templates/redshift_columns_cte_template.sql.j2 +0 -0
  117. {snowflake_data_validation-1.3.2 → snowflake_data_validation-1.3.40}/src/snowflake/snowflake_data_validation/redshift/extractor/templates/redshift_datatypes_normalization_templates.yaml +0 -0
  118. {snowflake_data_validation-1.3.2 → snowflake_data_validation-1.3.40}/src/snowflake/snowflake_data_validation/redshift/extractor/templates/redshift_extract_chunks_md5_table_template.sql.j2 +0 -0
  119. {snowflake_data_validation-1.3.2 → snowflake_data_validation-1.3.40}/src/snowflake/snowflake_data_validation/redshift/extractor/templates/redshift_extract_md5_rows_chunk.sql.j2 +0 -0
  120. {snowflake_data_validation-1.3.2 → snowflake_data_validation-1.3.40}/src/snowflake/snowflake_data_validation/redshift/extractor/templates/redshift_get_columns_metadata.sql.j2 +0 -0
  121. {snowflake_data_validation-1.3.2 → snowflake_data_validation-1.3.40}/src/snowflake/snowflake_data_validation/redshift/extractor/templates/redshift_insert_chunk_row_md5_template.sql.j2 +0 -0
  122. {snowflake_data_validation-1.3.2 → snowflake_data_validation-1.3.40}/src/snowflake/snowflake_data_validation/redshift/extractor/templates/redshift_row_count_query.sql.j2 +0 -0
  123. {snowflake_data_validation-1.3.2 → snowflake_data_validation-1.3.40}/src/snowflake/snowflake_data_validation/redshift/extractor/templates/redshift_table_metadata_query.sql.j2 +0 -0
  124. {snowflake_data_validation-1.3.2 → snowflake_data_validation-1.3.40}/src/snowflake/snowflake_data_validation/redshift/extractor/templates/redshift_to_snowflake_datatypes_mapping_template.yaml +0 -0
  125. {snowflake_data_validation-1.3.2 → snowflake_data_validation-1.3.40}/src/snowflake/snowflake_data_validation/redshift/model/__init__.py +0 -0
  126. {snowflake_data_validation-1.3.2 → snowflake_data_validation-1.3.40}/src/snowflake/snowflake_data_validation/redshift/model/redshift_credentials_connection.py +0 -0
  127. {snowflake_data_validation-1.3.2 → snowflake_data_validation-1.3.40}/src/snowflake/snowflake_data_validation/redshift/query/__init__.py +0 -0
  128. {snowflake_data_validation-1.3.2 → snowflake_data_validation-1.3.40}/src/snowflake/snowflake_data_validation/redshift/query/query_generator_redshift.py +0 -0
  129. {snowflake_data_validation-1.3.2 → snowflake_data_validation-1.3.40}/src/snowflake/snowflake_data_validation/redshift/redshift_arguments_manager.py +0 -0
  130. {snowflake_data_validation-1.3.2 → snowflake_data_validation-1.3.40}/src/snowflake/snowflake_data_validation/redshift/script_writer/__init__.py +0 -0
  131. {snowflake_data_validation-1.3.2 → snowflake_data_validation-1.3.40}/src/snowflake/snowflake_data_validation/redshift/script_writer/script_writer_redshift.py +0 -0
  132. {snowflake_data_validation-1.3.2 → snowflake_data_validation-1.3.40}/src/snowflake/snowflake_data_validation/script_writer/__init__.py +0 -0
  133. {snowflake_data_validation-1.3.2 → snowflake_data_validation-1.3.40}/src/snowflake/snowflake_data_validation/snowflake/__init__.py +0 -0
  134. {snowflake_data_validation-1.3.2 → snowflake_data_validation-1.3.40}/src/snowflake/snowflake_data_validation/snowflake/connector/connector_factory_snowflake.py +0 -0
  135. {snowflake_data_validation-1.3.2 → snowflake_data_validation-1.3.40}/src/snowflake/snowflake_data_validation/snowflake/connector/connector_snowflake.py +0 -0
  136. {snowflake_data_validation-1.3.2 → snowflake_data_validation-1.3.40}/src/snowflake/snowflake_data_validation/snowflake/extractor/templates/snowflake_chunk_row_concatenated_template.sql.j2 +0 -0
  137. {snowflake_data_validation-1.3.2 → snowflake_data_validation-1.3.40}/src/snowflake/snowflake_data_validation/snowflake/extractor/templates/snowflake_chunk_row_md5_template.sql.j2 +0 -0
  138. {snowflake_data_validation-1.3.2 → snowflake_data_validation-1.3.40}/src/snowflake/snowflake_data_validation/snowflake/extractor/templates/snowflake_chunks_md5_table_template.sql.j2 +0 -0
  139. {snowflake_data_validation-1.3.2 → snowflake_data_validation-1.3.40}/src/snowflake/snowflake_data_validation/snowflake/extractor/templates/snowflake_column_metrics_templates.yaml +0 -0
  140. {snowflake_data_validation-1.3.2 → snowflake_data_validation-1.3.40}/src/snowflake/snowflake_data_validation/snowflake/extractor/templates/snowflake_columns_cte_template.sql.j2 +0 -0
  141. {snowflake_data_validation-1.3.2 → snowflake_data_validation-1.3.40}/src/snowflake/snowflake_data_validation/snowflake/extractor/templates/snowflake_datatypes_normalization_templates.yaml +0 -0
  142. {snowflake_data_validation-1.3.2 → snowflake_data_validation-1.3.40}/src/snowflake/snowflake_data_validation/snowflake/extractor/templates/snowflake_extract_chunks_md5_table_template.sql.j2 +0 -0
  143. {snowflake_data_validation-1.3.2 → snowflake_data_validation-1.3.40}/src/snowflake/snowflake_data_validation/snowflake/extractor/templates/snowflake_extract_md5_rows_chunk.sql.j2 +0 -0
  144. {snowflake_data_validation-1.3.2 → snowflake_data_validation-1.3.40}/src/snowflake/snowflake_data_validation/snowflake/extractor/templates/snowflake_get_case_sensitive_columns.sql.j2 +0 -0
  145. {snowflake_data_validation-1.3.2 → snowflake_data_validation-1.3.40}/src/snowflake/snowflake_data_validation/snowflake/extractor/templates/snowflake_get_columns_metadata.sql.j2 +0 -0
  146. {snowflake_data_validation-1.3.2 → snowflake_data_validation-1.3.40}/src/snowflake/snowflake_data_validation/snowflake/extractor/templates/snowflake_insert_chunk_row_md5_template.sql.j2 +0 -0
  147. {snowflake_data_validation-1.3.2 → snowflake_data_validation-1.3.40}/src/snowflake/snowflake_data_validation/snowflake/extractor/templates/snowflake_row_count_query.sql.j2 +0 -0
  148. {snowflake_data_validation-1.3.2 → snowflake_data_validation-1.3.40}/src/snowflake/snowflake_data_validation/snowflake/extractor/templates/snowflake_table_metadata_query.sql.j2 +0 -0
  149. {snowflake_data_validation-1.3.2 → snowflake_data_validation-1.3.40}/src/snowflake/snowflake_data_validation/snowflake/extractor/templates/snowflake_temporary_table_from_view_template.sql.j2 +0 -0
  150. {snowflake_data_validation-1.3.2 → snowflake_data_validation-1.3.40}/src/snowflake/snowflake_data_validation/snowflake/extractor/templates/snowflake_to_snowflake_datatypes_mapping_template.yaml +0 -0
  151. {snowflake_data_validation-1.3.2 → snowflake_data_validation-1.3.40}/src/snowflake/snowflake_data_validation/snowflake/model/__init__.py +0 -0
  152. {snowflake_data_validation-1.3.2 → snowflake_data_validation-1.3.40}/src/snowflake/snowflake_data_validation/snowflake/model/snowflake_credentials_connection.py +0 -0
  153. {snowflake_data_validation-1.3.2 → snowflake_data_validation-1.3.40}/src/snowflake/snowflake_data_validation/snowflake/model/snowflake_default_connection.py +0 -0
  154. {snowflake_data_validation-1.3.2 → snowflake_data_validation-1.3.40}/src/snowflake/snowflake_data_validation/snowflake/model/snowflake_named_connection.py +0 -0
  155. {snowflake_data_validation-1.3.2 → snowflake_data_validation-1.3.40}/src/snowflake/snowflake_data_validation/snowflake/query/__init__.py +0 -0
  156. {snowflake_data_validation-1.3.2 → snowflake_data_validation-1.3.40}/src/snowflake/snowflake_data_validation/snowflake/query/query_generator_snowflake.py +0 -0
  157. {snowflake_data_validation-1.3.2 → snowflake_data_validation-1.3.40}/src/snowflake/snowflake_data_validation/snowflake/script_writer/__init__.py +0 -0
  158. {snowflake_data_validation-1.3.2 → snowflake_data_validation-1.3.40}/src/snowflake/snowflake_data_validation/snowflake/snowflake_arguments_manager.py +0 -0
  159. {snowflake_data_validation-1.3.2 → snowflake_data_validation-1.3.40}/src/snowflake/snowflake_data_validation/snowflake/snowflake_cli.py +0 -0
  160. {snowflake_data_validation-1.3.2 → snowflake_data_validation-1.3.40}/src/snowflake/snowflake_data_validation/sqlserver/__init__.py +0 -0
  161. {snowflake_data_validation-1.3.2 → snowflake_data_validation-1.3.40}/src/snowflake/snowflake_data_validation/sqlserver/connector/__init__.py +0 -0
  162. {snowflake_data_validation-1.3.2 → snowflake_data_validation-1.3.40}/src/snowflake/snowflake_data_validation/sqlserver/extractor/__init__.py +0 -0
  163. {snowflake_data_validation-1.3.2 → snowflake_data_validation-1.3.40}/src/snowflake/snowflake_data_validation/sqlserver/extractor/templates/sqlserver_chunks_md5_table_template.sql.j2 +0 -0
  164. {snowflake_data_validation-1.3.2 → snowflake_data_validation-1.3.40}/src/snowflake/snowflake_data_validation/sqlserver/extractor/templates/sqlserver_columns_cte_template.sql.j2 +0 -0
  165. {snowflake_data_validation-1.3.2 → snowflake_data_validation-1.3.40}/src/snowflake/snowflake_data_validation/sqlserver/extractor/templates/sqlserver_compute_md5_sql.j2 +0 -0
  166. {snowflake_data_validation-1.3.2 → snowflake_data_validation-1.3.40}/src/snowflake/snowflake_data_validation/sqlserver/extractor/templates/sqlserver_datatypes_normalization_templates.yaml +0 -0
  167. {snowflake_data_validation-1.3.2 → snowflake_data_validation-1.3.40}/src/snowflake/snowflake_data_validation/sqlserver/extractor/templates/sqlserver_extract_chunks_md5_table_template.sql.j2 +0 -0
  168. {snowflake_data_validation-1.3.2 → snowflake_data_validation-1.3.40}/src/snowflake/snowflake_data_validation/sqlserver/extractor/templates/sqlserver_extract_md5_rows_chunk.sql.j2 +0 -0
  169. {snowflake_data_validation-1.3.2 → snowflake_data_validation-1.3.40}/src/snowflake/snowflake_data_validation/sqlserver/extractor/templates/sqlserver_get_columns_metadata.sql.j2 +0 -0
  170. {snowflake_data_validation-1.3.2 → snowflake_data_validation-1.3.40}/src/snowflake/snowflake_data_validation/sqlserver/extractor/templates/sqlserver_get_temporary_table_internal_identifier_template.sql.j2 +0 -0
  171. {snowflake_data_validation-1.3.2 → snowflake_data_validation-1.3.40}/src/snowflake/snowflake_data_validation/sqlserver/extractor/templates/sqlserver_row_count_query.sql.j2 +0 -0
  172. {snowflake_data_validation-1.3.2 → snowflake_data_validation-1.3.40}/src/snowflake/snowflake_data_validation/sqlserver/extractor/templates/sqlserver_table_metadata_query.sql.j2 +0 -0
  173. {snowflake_data_validation-1.3.2 → snowflake_data_validation-1.3.40}/src/snowflake/snowflake_data_validation/sqlserver/extractor/templates/sqlserver_temporary_table_from_view_template.sql.j2 +0 -0
  174. {snowflake_data_validation-1.3.2 → snowflake_data_validation-1.3.40}/src/snowflake/snowflake_data_validation/sqlserver/extractor/templates/sqlserver_to_snowflake_datatypes_mapping_template.yaml +0 -0
  175. {snowflake_data_validation-1.3.2 → snowflake_data_validation-1.3.40}/src/snowflake/snowflake_data_validation/sqlserver/model/__init__.py +0 -0
  176. {snowflake_data_validation-1.3.2 → snowflake_data_validation-1.3.40}/src/snowflake/snowflake_data_validation/sqlserver/query/__init__.py +0 -0
  177. {snowflake_data_validation-1.3.2 → snowflake_data_validation-1.3.40}/src/snowflake/snowflake_data_validation/sqlserver/query/query_generator_sqlserver.py +0 -0
  178. {snowflake_data_validation-1.3.2 → snowflake_data_validation-1.3.40}/src/snowflake/snowflake_data_validation/sqlserver/script_writer/__init__.py +0 -0
  179. {snowflake_data_validation-1.3.2 → snowflake_data_validation-1.3.40}/src/snowflake/snowflake_data_validation/sqlserver/sqlserver_arguments_manager.py +0 -0
  180. {snowflake_data_validation-1.3.2 → snowflake_data_validation-1.3.40}/src/snowflake/snowflake_data_validation/table_partitioning_strategy.md +0 -0
  181. {snowflake_data_validation-1.3.2 → snowflake_data_validation-1.3.40}/src/snowflake/snowflake_data_validation/teradata/__init__.py +0 -0
  182. {snowflake_data_validation-1.3.2 → snowflake_data_validation-1.3.40}/src/snowflake/snowflake_data_validation/teradata/connector/__init__.py +0 -0
  183. {snowflake_data_validation-1.3.2 → snowflake_data_validation-1.3.40}/src/snowflake/snowflake_data_validation/teradata/connector/connector_factory_teradata.py +0 -0
  184. {snowflake_data_validation-1.3.2 → snowflake_data_validation-1.3.40}/src/snowflake/snowflake_data_validation/teradata/connector/connector_teradata.py +0 -0
  185. {snowflake_data_validation-1.3.2 → snowflake_data_validation-1.3.40}/src/snowflake/snowflake_data_validation/teradata/extractor/__init__.py +0 -0
  186. {snowflake_data_validation-1.3.2 → snowflake_data_validation-1.3.40}/src/snowflake/snowflake_data_validation/teradata/extractor/templates/teradata_chunks_md5_table_template.sql.j2 +0 -0
  187. {snowflake_data_validation-1.3.2 → snowflake_data_validation-1.3.40}/src/snowflake/snowflake_data_validation/teradata/extractor/templates/teradata_column_metrics_templates.yaml +0 -0
  188. {snowflake_data_validation-1.3.2 → snowflake_data_validation-1.3.40}/src/snowflake/snowflake_data_validation/teradata/extractor/templates/teradata_columns_cte_template.sql.j2 +0 -0
  189. {snowflake_data_validation-1.3.2 → snowflake_data_validation-1.3.40}/src/snowflake/snowflake_data_validation/teradata/extractor/templates/teradata_compute_md5_sql.j2 +0 -0
  190. {snowflake_data_validation-1.3.2 → snowflake_data_validation-1.3.40}/src/snowflake/snowflake_data_validation/teradata/extractor/templates/teradata_create_row_concatenated.sql.j2 +0 -0
  191. {snowflake_data_validation-1.3.2 → snowflake_data_validation-1.3.40}/src/snowflake/snowflake_data_validation/teradata/extractor/templates/teradata_create_row_md5.sql.j2 +0 -0
  192. {snowflake_data_validation-1.3.2 → snowflake_data_validation-1.3.40}/src/snowflake/snowflake_data_validation/teradata/extractor/templates/teradata_datatypes_normalization_templates.yaml +0 -0
  193. {snowflake_data_validation-1.3.2 → snowflake_data_validation-1.3.40}/src/snowflake/snowflake_data_validation/teradata/extractor/templates/teradata_extract_chunks_md5_table_template.sql.j2 +0 -0
  194. {snowflake_data_validation-1.3.2 → snowflake_data_validation-1.3.40}/src/snowflake/snowflake_data_validation/teradata/extractor/templates/teradata_extract_md5_rows_chunk.sql.j2 +0 -0
  195. {snowflake_data_validation-1.3.2 → snowflake_data_validation-1.3.40}/src/snowflake/snowflake_data_validation/teradata/extractor/templates/teradata_get_columns_metadata.sql.j2 +0 -0
  196. {snowflake_data_validation-1.3.2 → snowflake_data_validation-1.3.40}/src/snowflake/snowflake_data_validation/teradata/extractor/templates/teradata_row_count_query.sql.j2 +0 -0
  197. {snowflake_data_validation-1.3.2 → snowflake_data_validation-1.3.40}/src/snowflake/snowflake_data_validation/teradata/extractor/templates/teradata_table_metadata_query.sql.j2 +0 -0
  198. {snowflake_data_validation-1.3.2 → snowflake_data_validation-1.3.40}/src/snowflake/snowflake_data_validation/teradata/extractor/templates/teradata_to_snowflake_datatypes_mapping_template.yaml +0 -0
  199. {snowflake_data_validation-1.3.2 → snowflake_data_validation-1.3.40}/src/snowflake/snowflake_data_validation/teradata/model/__init__.py +0 -0
  200. {snowflake_data_validation-1.3.2 → snowflake_data_validation-1.3.40}/src/snowflake/snowflake_data_validation/teradata/model/teradata_credentials_connection.py +0 -0
  201. {snowflake_data_validation-1.3.2 → snowflake_data_validation-1.3.40}/src/snowflake/snowflake_data_validation/teradata/query/__init__.py +0 -0
  202. {snowflake_data_validation-1.3.2 → snowflake_data_validation-1.3.40}/src/snowflake/snowflake_data_validation/teradata/query/query_generator_teradata.py +0 -0
  203. {snowflake_data_validation-1.3.2 → snowflake_data_validation-1.3.40}/src/snowflake/snowflake_data_validation/teradata/script_writer/__init__.py +0 -0
  204. {snowflake_data_validation-1.3.2 → snowflake_data_validation-1.3.40}/src/snowflake/snowflake_data_validation/teradata/script_writer/script_writer_teradata.py +0 -0
  205. {snowflake_data_validation-1.3.2 → snowflake_data_validation-1.3.40}/src/snowflake/snowflake_data_validation/teradata/teradata_arguments_manager.py +0 -0
  206. {snowflake_data_validation-1.3.2 → snowflake_data_validation-1.3.40}/src/snowflake/snowflake_data_validation/utils/__init__.py +0 -0
  207. {snowflake_data_validation-1.3.2 → snowflake_data_validation-1.3.40}/src/snowflake/snowflake_data_validation/utils/arguments_manager_base.py +0 -0
  208. {snowflake_data_validation-1.3.2 → snowflake_data_validation-1.3.40}/src/snowflake/snowflake_data_validation/utils/arguments_manager_factory.py +0 -0
  209. {snowflake_data_validation-1.3.2 → snowflake_data_validation-1.3.40}/src/snowflake/snowflake_data_validation/utils/base_output_handler.py +0 -0
  210. {snowflake_data_validation-1.3.2 → snowflake_data_validation-1.3.40}/src/snowflake/snowflake_data_validation/utils/column_partitioning_strategy.py +0 -0
  211. {snowflake_data_validation-1.3.2 → snowflake_data_validation-1.3.40}/src/snowflake/snowflake_data_validation/utils/configuration_file_editor.py +0 -0
  212. {snowflake_data_validation-1.3.2 → snowflake_data_validation-1.3.40}/src/snowflake/snowflake_data_validation/utils/configuration_file_generator.py +0 -0
  213. {snowflake_data_validation-1.3.2 → snowflake_data_validation-1.3.40}/src/snowflake/snowflake_data_validation/utils/configuration_file_synchronizer.py +0 -0
  214. {snowflake_data_validation-1.3.2 → snowflake_data_validation-1.3.40}/src/snowflake/snowflake_data_validation/utils/connection_pool.py +0 -0
  215. {snowflake_data_validation-1.3.2 → snowflake_data_validation-1.3.40}/src/snowflake/snowflake_data_validation/utils/connector_factory.py +0 -0
  216. {snowflake_data_validation-1.3.2 → snowflake_data_validation-1.3.40}/src/snowflake/snowflake_data_validation/utils/console_output_handler.py +0 -0
  217. {snowflake_data_validation-1.3.2 → snowflake_data_validation-1.3.40}/src/snowflake/snowflake_data_validation/utils/context.py +0 -0
  218. {snowflake_data_validation-1.3.2 → snowflake_data_validation-1.3.40}/src/snowflake/snowflake_data_validation/utils/cpu_optimizer.py +0 -0
  219. {snowflake_data_validation-1.3.2 → snowflake_data_validation-1.3.40}/src/snowflake/snowflake_data_validation/utils/helper.py +0 -0
  220. {snowflake_data_validation-1.3.2 → snowflake_data_validation-1.3.40}/src/snowflake/snowflake_data_validation/utils/helpers/helper_database.py +0 -0
  221. {snowflake_data_validation-1.3.2 → snowflake_data_validation-1.3.40}/src/snowflake/snowflake_data_validation/utils/helpers/helper_dataframe.py +0 -0
  222. {snowflake_data_validation-1.3.2 → snowflake_data_validation-1.3.40}/src/snowflake/snowflake_data_validation/utils/helpers/helper_io.py +0 -0
  223. {snowflake_data_validation-1.3.2 → snowflake_data_validation-1.3.40}/src/snowflake/snowflake_data_validation/utils/helpers/helper_misc.py +0 -0
  224. {snowflake_data_validation-1.3.2 → snowflake_data_validation-1.3.40}/src/snowflake/snowflake_data_validation/utils/helpers/helper_query_result.py +0 -0
  225. {snowflake_data_validation-1.3.2 → snowflake_data_validation-1.3.40}/src/snowflake/snowflake_data_validation/utils/helpers/helper_templates.py +0 -0
  226. {snowflake_data_validation-1.3.2 → snowflake_data_validation-1.3.40}/src/snowflake/snowflake_data_validation/utils/logging_config.py +0 -0
  227. {snowflake_data_validation-1.3.2 → snowflake_data_validation-1.3.40}/src/snowflake/snowflake_data_validation/utils/logging_utils.py +0 -0
  228. {snowflake_data_validation-1.3.2 → snowflake_data_validation-1.3.40}/src/snowflake/snowflake_data_validation/utils/model/chunk.py +0 -0
  229. {snowflake_data_validation-1.3.2 → snowflake_data_validation-1.3.40}/src/snowflake/snowflake_data_validation/utils/model/column_metadata.py +0 -0
  230. {snowflake_data_validation-1.3.2 → snowflake_data_validation-1.3.40}/src/snowflake/snowflake_data_validation/utils/model/table_column_metadata.py +0 -0
  231. {snowflake_data_validation-1.3.2 → snowflake_data_validation-1.3.40}/src/snowflake/snowflake_data_validation/utils/model/table_context.py +0 -0
  232. {snowflake_data_validation-1.3.2 → snowflake_data_validation-1.3.40}/src/snowflake/snowflake_data_validation/utils/model/templates_loader_manager.py +0 -0
  233. {snowflake_data_validation-1.3.2 → snowflake_data_validation-1.3.40}/src/snowflake/snowflake_data_validation/utils/progress_reporter.py +0 -0
  234. {snowflake_data_validation-1.3.2 → snowflake_data_validation-1.3.40}/src/snowflake/snowflake_data_validation/utils/row_partitioning_strategy.py +0 -0
  235. {snowflake_data_validation-1.3.2 → snowflake_data_validation-1.3.40}/src/snowflake/snowflake_data_validation/utils/run_context.py +0 -0
  236. {snowflake_data_validation-1.3.2 → snowflake_data_validation-1.3.40}/src/snowflake/snowflake_data_validation/utils/telemetry.py +0 -0
  237. {snowflake_data_validation-1.3.2 → snowflake_data_validation-1.3.40}/src/snowflake/snowflake_data_validation/utils/templates/configuration_file_templates.py +0 -0
  238. {snowflake_data_validation-1.3.2 → snowflake_data_validation-1.3.40}/src/snowflake/snowflake_data_validation/utils/thread_safe_singleton.py +0 -0
  239. {snowflake_data_validation-1.3.2 → snowflake_data_validation-1.3.40}/src/snowflake/snowflake_data_validation/utils/validation_utils.py +0 -0
  240. {snowflake_data_validation-1.3.2 → snowflake_data_validation-1.3.40}/src/snowflake/snowflake_data_validation/validation/__init__.py +0 -0
  241. {snowflake_data_validation-1.3.2 → snowflake_data_validation-1.3.40}/src/snowflake/snowflake_data_validation/validation/results_summary_report.py +0 -0
  242. {snowflake_data_validation-1.3.2 → snowflake_data_validation-1.3.40}/src/snowflake/snowflake_data_validation/validation/row_data_validator.py +0 -0
  243. {snowflake_data_validation-1.3.2 → snowflake_data_validation-1.3.40}/src/snowflake/snowflake_data_validation/validation/row_validation_report_buffer.py +0 -0
  244. {snowflake_data_validation-1.3.2 → snowflake_data_validation-1.3.40}/src/snowflake/snowflake_data_validation/validation/validation_database/__init__.py +0 -0
  245. {snowflake_data_validation-1.3.2 → snowflake_data_validation-1.3.40}/src/snowflake/snowflake_data_validation/validation/validation_database/sqlite_validation_connection.py +0 -0
  246. {snowflake_data_validation-1.3.2 → snowflake_data_validation-1.3.40}/src/snowflake/snowflake_data_validation/validation/validation_database/validation_database_connection_base.py +0 -0
  247. {snowflake_data_validation-1.3.2 → snowflake_data_validation-1.3.40}/src/snowflake/snowflake_data_validation/validation/validation_database_manager.py +0 -0
  248. {snowflake_data_validation-1.3.2 → snowflake_data_validation-1.3.40}/src/snowflake/snowflake_data_validation/validation/validation_execution_context.py +0 -0
  249. {snowflake_data_validation-1.3.2 → snowflake_data_validation-1.3.40}/tests/.coveragerc +0 -0
  250. {snowflake_data_validation-1.3.2 → snowflake_data_validation-1.3.40}/tests/integration/.coveragerc +0 -0
  251. {snowflake_data_validation-1.3.2 → snowflake_data_validation-1.3.40}/tests/integration/Redshift/test_metadata_extractor_integration.py +0 -0
  252. {snowflake_data_validation-1.3.2 → snowflake_data_validation-1.3.40}/tests/integration/test_async_validation_integration.py +0 -0
  253. {snowflake_data_validation-1.3.2 → snowflake_data_validation-1.3.40}/tests/integration/test_reference_integration.py +0 -0
  254. {snowflake_data_validation-1.3.2 → snowflake_data_validation-1.3.40}/tests/integration/test_source_validation_integration.py +0 -0
  255. {snowflake_data_validation-1.3.2 → snowflake_data_validation-1.3.40}/tests/integration/test_sync_validation_integration.py +0 -0
  256. {snowflake_data_validation-1.3.2 → snowflake_data_validation-1.3.40}/tests/unit/Redshift/cli/test_redshift_cli_general.py +0 -0
  257. {snowflake_data_validation-1.3.2 → snowflake_data_validation-1.3.40}/tests/unit/Redshift/cli/test_redshift_cli_generate_validation_scripts.py +0 -0
  258. {snowflake_data_validation-1.3.2 → snowflake_data_validation-1.3.40}/tests/unit/Redshift/cli/test_redshift_cli_get_configuration_files.py +0 -0
  259. {snowflake_data_validation-1.3.2 → snowflake_data_validation-1.3.40}/tests/unit/Redshift/cli/test_redshift_cli_run_async_validation.py +0 -0
  260. {snowflake_data_validation-1.3.2 → snowflake_data_validation-1.3.40}/tests/unit/Redshift/cli/test_redshift_cli_run_validation.py +0 -0
  261. {snowflake_data_validation-1.3.2 → snowflake_data_validation-1.3.40}/tests/unit/Redshift/cli/test_redshift_cli_run_validation_ipc.py +0 -0
  262. {snowflake_data_validation-1.3.2 → snowflake_data_validation-1.3.40}/tests/unit/Redshift/model/test_redshift_credentials_connection.py +0 -0
  263. {snowflake_data_validation-1.3.2 → snowflake_data_validation-1.3.40}/tests/unit/Redshift/query/test_query_generator_redshift.py +0 -0
  264. {snowflake_data_validation-1.3.2 → snowflake_data_validation-1.3.40}/tests/unit/Redshift/script_writer/test_script_writer_redshift.py +0 -0
  265. {snowflake_data_validation-1.3.2 → snowflake_data_validation-1.3.40}/tests/unit/Redshift/test_connector_redshift.py +0 -0
  266. {snowflake_data_validation-1.3.2 → snowflake_data_validation-1.3.40}/tests/unit/Redshift/test_redshift_arguments_manager.py +0 -0
  267. {snowflake_data_validation-1.3.2 → snowflake_data_validation-1.3.40}/tests/unit/Redshift/test_redshift_cte_generator.py +0 -0
  268. {snowflake_data_validation-1.3.2 → snowflake_data_validation-1.3.40}/tests/unit/Redshift/test_redshift_metrics_templates.py +0 -0
  269. {snowflake_data_validation-1.3.2 → snowflake_data_validation-1.3.40}/tests/unit/Teradata/test_connector_teradata.py +0 -0
  270. {snowflake_data_validation-1.3.2 → snowflake_data_validation-1.3.40}/tests/unit/Teradata/test_teradata_cli.py +0 -0
  271. {snowflake_data_validation-1.3.2 → snowflake_data_validation-1.3.40}/tests/unit/Teradata/test_teradata_metrics_validation.py +0 -0
  272. {snowflake_data_validation-1.3.2 → snowflake_data_validation-1.3.40}/tests/unit/__init__.py +0 -0
  273. {snowflake_data_validation-1.3.2 → snowflake_data_validation-1.3.40}/tests/unit/assets/custom_templates_loader/snowflake_column_metrics_templates.yaml +0 -0
  274. {snowflake_data_validation-1.3.2 → snowflake_data_validation-1.3.40}/tests/unit/assets/custom_templates_loader/snowflake_datatypes_normalization_templates.yaml +0 -0
  275. {snowflake_data_validation-1.3.2 → snowflake_data_validation-1.3.40}/tests/unit/assets/custom_templates_loader/snowflake_table_metadata_query.sql.j2 +0 -0
  276. {snowflake_data_validation-1.3.2 → snowflake_data_validation-1.3.40}/tests/unit/assets/test_configuration_loader/test_load_configuration_model/conf.yaml +0 -0
  277. {snowflake_data_validation-1.3.2 → snowflake_data_validation-1.3.40}/tests/unit/assets/test_configuration_loader/test_load_configuration_model_reading_file_exception/conf.yaml +0 -0
  278. {snowflake_data_validation-1.3.2 → snowflake_data_validation-1.3.40}/tests/unit/assets/test_helpers/dummy_configuration_file.json +0 -0
  279. {snowflake_data_validation-1.3.2 → snowflake_data_validation-1.3.40}/tests/unit/assets/test_helpers/dummy_connection_source_db.toml +0 -0
  280. {snowflake_data_validation-1.3.2 → snowflake_data_validation-1.3.40}/tests/unit/assets/test_helpers/dummy_datatypes_normalization_template.yaml +0 -0
  281. {snowflake_data_validation-1.3.2 → snowflake_data_validation-1.3.40}/tests/unit/assets/test_helpers/dummy_datatypes_template.yaml +0 -0
  282. {snowflake_data_validation-1.3.2 → snowflake_data_validation-1.3.40}/tests/unit/assets/test_helpers/dummy_metrics_template.yaml +0 -0
  283. {snowflake_data_validation-1.3.2 → snowflake_data_validation-1.3.40}/tests/unit/assets/test_helpers/dummy_metrics_template_datatypes.yaml +0 -0
  284. {snowflake_data_validation-1.3.2 → snowflake_data_validation-1.3.40}/tests/unit/assets/test_helpers/dummy_template.csv +0 -0
  285. {snowflake_data_validation-1.3.2 → snowflake_data_validation-1.3.40}/tests/unit/assets/test_helpers/not_valid_format.yaml +0 -0
  286. {snowflake_data_validation-1.3.2 → snowflake_data_validation-1.3.40}/tests/unit/assets/test_templates_loader_manager/snowflake_column_metrics_templates.yaml +0 -0
  287. {snowflake_data_validation-1.3.2 → snowflake_data_validation-1.3.40}/tests/unit/assets/test_templates_loader_manager/snowflake_datatypes_normalization_templates.yaml +0 -0
  288. {snowflake_data_validation-1.3.2 → snowflake_data_validation-1.3.40}/tests/unit/test_arguments_manager_base.py +0 -0
  289. {snowflake_data_validation-1.3.2 → snowflake_data_validation-1.3.40}/tests/unit/test_arguments_manager_factory.py +0 -0
  290. {snowflake_data_validation-1.3.2 → snowflake_data_validation-1.3.40}/tests/unit/test_column_metadata.py +0 -0
  291. {snowflake_data_validation-1.3.2 → snowflake_data_validation-1.3.40}/tests/unit/test_column_partitioning_strategy.py +0 -0
  292. {snowflake_data_validation-1.3.2 → snowflake_data_validation-1.3.40}/tests/unit/test_comparison_orchestrator.py +0 -0
  293. {snowflake_data_validation-1.3.2 → snowflake_data_validation-1.3.40}/tests/unit/test_configuration_file_editor.py +0 -0
  294. {snowflake_data_validation-1.3.2 → snowflake_data_validation-1.3.40}/tests/unit/test_configuration_file_synchronizer.py +0 -0
  295. {snowflake_data_validation-1.3.2 → snowflake_data_validation-1.3.40}/tests/unit/test_connection_pool.py +0 -0
  296. {snowflake_data_validation-1.3.2 → snowflake_data_validation-1.3.40}/tests/unit/test_connector_failure_tracker.py +0 -0
  297. {snowflake_data_validation-1.3.2 → snowflake_data_validation-1.3.40}/tests/unit/test_connector_snowflake.py +0 -0
  298. {snowflake_data_validation-1.3.2 → snowflake_data_validation-1.3.40}/tests/unit/test_console_progress_reporter.py +0 -0
  299. {snowflake_data_validation-1.3.2 → snowflake_data_validation-1.3.40}/tests/unit/test_cpu_optimizer.py +0 -0
  300. {snowflake_data_validation-1.3.2 → snowflake_data_validation-1.3.40}/tests/unit/test_executor_factory.py +0 -0
  301. {snowflake_data_validation-1.3.2 → snowflake_data_validation-1.3.40}/tests/unit/test_helper_dataframe.py +0 -0
  302. {snowflake_data_validation-1.3.2 → snowflake_data_validation-1.3.40}/tests/unit/test_helpers.py +0 -0
  303. {snowflake_data_validation-1.3.2 → snowflake_data_validation-1.3.40}/tests/unit/test_html_report_builder.py +0 -0
  304. {snowflake_data_validation-1.3.2 → snowflake_data_validation-1.3.40}/tests/unit/test_logging_config.py +0 -0
  305. {snowflake_data_validation-1.3.2 → snowflake_data_validation-1.3.40}/tests/unit/test_metrics_templates.py +0 -0
  306. {snowflake_data_validation-1.3.2 → snowflake_data_validation-1.3.40}/tests/unit/test_report_metadata.py +0 -0
  307. {snowflake_data_validation-1.3.2 → snowflake_data_validation-1.3.40}/tests/unit/test_row_data_validator.py +0 -0
  308. {snowflake_data_validation-1.3.2 → snowflake_data_validation-1.3.40}/tests/unit/test_row_partitioning_strategy.py +0 -0
  309. {snowflake_data_validation-1.3.2 → snowflake_data_validation-1.3.40}/tests/unit/test_row_validation_report_buffer.py +0 -0
  310. {snowflake_data_validation-1.3.2 → snowflake_data_validation-1.3.40}/tests/unit/test_snowflake_arguments_manager.py +0 -0
  311. {snowflake_data_validation-1.3.2 → snowflake_data_validation-1.3.40}/tests/unit/test_snowflake_cli.py +0 -0
  312. {snowflake_data_validation-1.3.2 → snowflake_data_validation-1.3.40}/tests/unit/test_sqlite_validation_connection.py +0 -0
  313. {snowflake_data_validation-1.3.2 → snowflake_data_validation-1.3.40}/tests/unit/test_sqlserver_arguments_manager.py +0 -0
  314. {snowflake_data_validation-1.3.2 → snowflake_data_validation-1.3.40}/tests/unit/test_sqlserver_cli.py +0 -0
  315. {snowflake_data_validation-1.3.2 → snowflake_data_validation-1.3.40}/tests/unit/test_table_column_metadata_model.py +0 -0
  316. {snowflake_data_validation-1.3.2 → snowflake_data_validation-1.3.40}/tests/unit/test_table_context.py +0 -0
  317. {snowflake_data_validation-1.3.2 → snowflake_data_validation-1.3.40}/tests/unit/test_telemetry.py +0 -0
  318. {snowflake_data_validation-1.3.2 → snowflake_data_validation-1.3.40}/tests/unit/test_templates_loader_manager.py +0 -0
  319. {snowflake_data_validation-1.3.2 → snowflake_data_validation-1.3.40}/tests/unit/test_validation_database_connection.py +0 -0
  320. {snowflake_data_validation-1.3.2 → snowflake_data_validation-1.3.40}/tests/unit/test_validation_execution_context.py +0 -0
  321. {snowflake_data_validation-1.3.2 → snowflake_data_validation-1.3.40}/tests/unit/test_validation_progress_reporter.py +0 -0
  322. {snowflake_data_validation-1.3.2 → snowflake_data_validation-1.3.40}/tests/unit/test_validation_report_buffer.py +0 -0
  323. {snowflake_data_validation-1.3.2 → snowflake_data_validation-1.3.40}/tests/unit/utils/__init__.py +0 -0
  324. {snowflake_data_validation-1.3.2 → snowflake_data_validation-1.3.40}/tests/unit/utils/test_constants.py +0 -0
@@ -104,7 +104,7 @@ ipython_config.py
104
104
  # pyenv
105
105
  # For a library or package, you might want to ignore these files since the code is
106
106
  # intended to run in multiple environments; otherwise, check them in:
107
- # .python-version
107
+ .python-version
108
108
 
109
109
  # pipenv
110
110
  # According to pypa/pipenv#598, it is recommended to include Pipfile.lock in version control.
@@ -1,9 +1,9 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: snowflake-data-validation
3
- Version: 1.3.2
3
+ Version: 1.3.40
4
4
  Summary: Snowflake Data Validation
5
- Project-URL: Bug Tracker, https://github.com/snowflakedb/migrations-data-validation/issues
6
- Project-URL: Source code, https://github.com/snowflakedb/migrations-data-validation/
5
+ Project-URL: Bug Tracker, https://github.com/snowflake-eng/migrations-data-validation/issues
6
+ Project-URL: Source code, https://github.com/snowflake-eng/migrations-data-validation/
7
7
  Author-email: "Snowflake, Inc." <snowflake-python-libraries-dl@snowflake.com>
8
8
  License: Snowflake Conversion Software Terms
9
9
  License-File: LICENSE
@@ -30,9 +30,11 @@ Requires-Dist: cryptography>=3.4.0
30
30
  Requires-Dist: deepdiff>=8.0.0
31
31
  Requires-Dist: jinja2>=3.1.6
32
32
  Requires-Dist: pandas>=2.2.3
33
+ Requires-Dist: polars>=1.0.0
33
34
  Requires-Dist: pyarrow>=14.0.0
34
35
  Requires-Dist: pydantic-yaml>=1.4.0
35
36
  Requires-Dist: pydantic>=2.0
37
+ Requires-Dist: pyyaml>=6.0
36
38
  Requires-Dist: ruamel-yaml>=0.18.0
37
39
  Requires-Dist: snowflake-connector-python>=4.0.0
38
40
  Requires-Dist: toml>=0.10.2
@@ -184,7 +186,7 @@ This project is licensed under the Snowflake Conversion Software Terms. See the
184
186
  ## 🆘 Support
185
187
 
186
188
  - **Documentation**: [Full documentation](https://docs.snowflake.com/en/migrations/snowconvert-docs/data-validation-cli/CLI_QUICK_REFERENCE)
187
- - **Issues**: [GitHub Issues](https://github.com/snowflakedb/migrations-data-validation/issues)
189
+ - **Issues**: [GitHub Issues](https://github.com/snowflake-eng/migrations-data-validation/issues)
188
190
 
189
191
  ---
190
192
 
@@ -110,7 +110,7 @@ This project is licensed under the Snowflake Conversion Software Terms. See the
110
110
  ## 🆘 Support
111
111
 
112
112
  - **Documentation**: [Full documentation](https://docs.snowflake.com/en/migrations/snowconvert-docs/data-validation-cli/CLI_QUICK_REFERENCE)
113
- - **Issues**: [GitHub Issues](https://github.com/snowflakedb/migrations-data-validation/issues)
113
+ - **Issues**: [GitHub Issues](https://github.com/snowflake-eng/migrations-data-validation/issues)
114
114
 
115
115
  ---
116
116
 
@@ -30,7 +30,9 @@ dependencies = [
30
30
  "deepdiff>=8.0.0",
31
31
  "snowflake-connector-python>=4.0.0",
32
32
  "pandas>=2.2.3",
33
+ "polars>=1.0.0",
33
34
  "pyarrow>=14.0.0",
35
+ "PyYAML>=6.0",
34
36
  "ruamel.yaml>=0.18.0",
35
37
  "toml>=0.10.2",
36
38
  "jinja2>=3.1.6",
@@ -85,8 +87,8 @@ redshift = [
85
87
  ]
86
88
 
87
89
  [project.urls]
88
- "Bug Tracker" = "https://github.com/snowflakedb/migrations-data-validation/issues"
89
- "Source code" = "https://github.com/snowflakedb/migrations-data-validation/"
90
+ "Bug Tracker" = "https://github.com/snowflake-eng/migrations-data-validation/issues"
91
+ "Source code" = "https://github.com/snowflake-eng/migrations-data-validation/"
90
92
 
91
93
  [tool.hatch.version]
92
94
  path = "src/snowflake/snowflake_data_validation/__version__.py"
@@ -34,6 +34,10 @@ Main Components
34
34
  ComparisonOrchestrator
35
35
  Main class for orchestrating data comparisons between source and target systems
36
36
 
37
+ public
38
+ Library API module providing decoupled validation steps (query generation,
39
+ execution, validation) that can be called independently
40
+
37
41
  CLI Interface
38
42
  Command-line interface available via `main_cli` module for:
39
43
  - Setting up database connections
@@ -47,7 +51,7 @@ Supported Dialects
47
51
 
48
52
  Example Usage
49
53
  -------------
50
- Programmatic API:
54
+ Programmatic API (Orchestrator):
51
55
  >>> from snowflake.snowflake_data_validation import ComparisonOrchestrator
52
56
  >>> # Set up extractors, context, and configuration
53
57
  >>> orchestrator = ComparisonOrchestrator(
@@ -57,6 +61,13 @@ Programmatic API:
57
61
  ... )
58
62
  >>> orchestrator.run_sync_comparison()
59
63
 
64
+ Programmatic API (Decoupled Steps):
65
+ >>> from snowflake.snowflake_data_validation import public
66
+ >>> # Generate and execute queries independently
67
+ >>> schema_query = public.generate_schema_query(table_context)
68
+ >>> result = public.execute_query(table_context, connector, schema_query)
69
+ >>> validation_result = public.validate_schema(source_df, target_df)
70
+
60
71
  Command Line Interface:
61
72
 
62
73
  .. code-block:: bash
@@ -86,6 +97,7 @@ import snowflake.snowflake_data_validation.utils as utils
86
97
  import snowflake.snowflake_data_validation.snowflake as snowflake
87
98
  import snowflake.snowflake_data_validation.sqlserver as sqlserver
88
99
  import snowflake.snowflake_data_validation.redshift as redshift
100
+ import snowflake.snowflake_data_validation.public as public
89
101
  import logging
90
102
 
91
103
 
@@ -105,6 +117,7 @@ __all__ = [
105
117
  "snowflake",
106
118
  "sqlserver",
107
119
  "redshift",
120
+ "public",
108
121
  ]
109
122
 
110
123
 
@@ -13,4 +13,4 @@
13
13
  # See the License for the specific language governing permissions and
14
14
  # limitations under the License.
15
15
 
16
- __version__ = "1.3.2"
16
+ __version__ = "1.3.40"
@@ -19,16 +19,21 @@ from pydantic import BaseModel, model_validator
19
19
 
20
20
  from snowflake.snowflake_data_validation.utils.constants import (
21
21
  MAX_FAILED_ROWS_NUMBER_DEFAULT_VALUE,
22
+ RowValidationMode,
22
23
  )
23
24
 
24
25
 
25
26
  class ValidationConfiguration(BaseModel):
26
- """Class representing the validation levels to be applied to a table."""
27
+ """Class representing the validation levels to be applied to a table.
28
+
29
+ `row_validation` enables/disables row-level validation.
30
+ `row_validation_mode` selects the mode: 'default', 'cell', or other supported modes.
31
+ """
27
32
 
28
33
  schema_validation: bool | None = False
29
34
  metrics_validation: bool | None = False
30
- row_validation: bool | None = False
31
- # Custom templates path for validation scripts.
35
+ row_validation: bool = False
36
+ row_validation_mode: RowValidationMode = RowValidationMode.ROW
32
37
  custom_templates_path: Path | None = None
33
38
  max_failed_rows_number: int = MAX_FAILED_ROWS_NUMBER_DEFAULT_VALUE
34
39
  exclude_metrics: bool = False
@@ -38,10 +43,10 @@ class ValidationConfiguration(BaseModel):
38
43
  def validate_configuration(self) -> "ValidationConfiguration":
39
44
  """Validate the configuration after initialization.
40
45
 
41
- This method checks if at least one validation type is enabled.
46
+ This method checks if at least one validation type is enabled and validates row_validation_mode.
42
47
 
43
48
  Raises:
44
- ValueError: If no validation type is enabled.
49
+ ValueError: If no validation type is enabled or invalid mode is set.
45
50
 
46
51
  """
47
52
  if not self.model_dump(exclude_none=True):
@@ -0,0 +1,255 @@
1
+ # Copyright 2026 Snowflake Inc.
2
+ # SPDX-License-Identifier: Apache-2.0
3
+
4
+ # Licensed under the Apache License, Version 2.0 (the "License");
5
+ # you may not use this file except in compliance with the License.
6
+ # You may obtain a copy of the License at
7
+
8
+ # http://www.apache.org/licenses/LICENSE-2.0
9
+
10
+ # Unless required by applicable law or agreed to in writing, software
11
+ # distributed under the License is distributed on an "AS IS" BASIS,
12
+ # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13
+ # See the License for the specific language governing permissions and
14
+ # limitations under the License.
15
+
16
+ """Asynchronous Query Generation Executor with decoupled workflow steps.
17
+
18
+ This module provides the AsyncGenerationExecutor class that generates async
19
+ comparison queries and writes them to files instead of executing actual validation.
20
+
21
+ The generation workflow follows the decoupled pattern using the public workflow API:
22
+ 1. Query Generation - Uses data_validation_api.generate_schema_query / generate_metrics_query
23
+ 2. Query Output - Write generated queries to files via public API functions
24
+
25
+ Note: This executor only performs query generation (Step 1) and writes the queries
26
+ to files. The execution and validation steps happen separately in async validation mode.
27
+ """
28
+
29
+ import logging
30
+
31
+ from snowflake.snowflake_data_validation.executer.base_validation_executor import (
32
+ BaseValidationExecutor,
33
+ validation_handler,
34
+ )
35
+ from snowflake.snowflake_data_validation.public import (
36
+ data_validation_api,
37
+ )
38
+ from snowflake.snowflake_data_validation.utils.base_output_handler import (
39
+ OutputMessageLevel,
40
+ )
41
+ from snowflake.snowflake_data_validation.utils.logging_utils import log
42
+ from snowflake.snowflake_data_validation.utils.model.table_context import TableContext
43
+
44
+
45
+ LOGGER = logging.getLogger(__name__)
46
+
47
+
48
+ class AsyncGenerationExecutor(BaseValidationExecutor):
49
+ """Executor for asynchronous query generation operations.
50
+
51
+ This executor generates async comparison queries and writes them to files
52
+ instead of executing actual validation. Uses script writers to delegate
53
+ the actual file generation and writing operations.
54
+
55
+ The workflow is decoupled to clearly separate query generation from
56
+ the file writing operation:
57
+ 1. Generate queries for source and target platforms
58
+ 2. Write queries to files using script writers
59
+ """
60
+
61
+ @validation_handler(
62
+ "Schema validation async generation failed.",
63
+ "Error generating schema validation queries: {error}",
64
+ )
65
+ @log
66
+ def execute_schema_validation(
67
+ self,
68
+ source_table_context: TableContext,
69
+ target_table_context: TableContext,
70
+ column_mappings: dict[str, str],
71
+ ) -> bool:
72
+ """Generate schema validation queries and write to files.
73
+
74
+ This method uses the decoupled workflow with public API:
75
+ 1. Generate schema query for source using data_validation_api
76
+ 2. Generate schema query for target using data_validation_api
77
+ 3. Write both queries to files via public API functions
78
+
79
+ Args:
80
+ source_table_context: Source table context.
81
+ target_table_context: Target table context.
82
+ column_mappings: Mapping of source to target columns.
83
+
84
+ Returns:
85
+ bool: True if queries are successfully generated and written.
86
+
87
+ """
88
+ LOGGER.info(
89
+ "Generating schema validation queries for table: %s",
90
+ source_table_context.fully_qualified_name,
91
+ )
92
+
93
+ try:
94
+ # Step 1: Generate queries using public API
95
+ source_query = data_validation_api.generate_schema_query(
96
+ source_table_context
97
+ )
98
+ target_query = data_validation_api.generate_schema_query(
99
+ target_table_context
100
+ )
101
+
102
+ LOGGER.debug(
103
+ "Generated schema queries for source: %s and target: %s",
104
+ source_table_context.fully_qualified_name,
105
+ target_table_context.fully_qualified_name,
106
+ )
107
+
108
+ # Step 2: Write queries to files via public API
109
+ # Use report_path from extractors (ScriptWriterBase instances)
110
+ data_validation_api.write_schema_query_to_script(
111
+ table_context=source_table_context,
112
+ generated_query=source_query,
113
+ output_directory=self.source_extractor.report_path,
114
+ timestamp=self.context.run_start_time,
115
+ )
116
+
117
+ data_validation_api.write_schema_query_to_script(
118
+ table_context=target_table_context,
119
+ generated_query=target_query,
120
+ output_directory=self.source_extractor.report_path,
121
+ timestamp=self.context.run_start_time,
122
+ )
123
+
124
+ self.context.output_handler.handle_message(
125
+ header="Schema validation queries generated.",
126
+ message=f"Queries generated for table: {source_table_context.fully_qualified_name}",
127
+ level=OutputMessageLevel.SUCCESS,
128
+ )
129
+ return True
130
+ except Exception:
131
+ return False
132
+
133
+ @validation_handler(
134
+ "Metrics validation async generation failed.",
135
+ "Error generating metrics validation queries: {error}",
136
+ )
137
+ @log
138
+ def execute_metrics_validation(
139
+ self,
140
+ source_table_context: TableContext,
141
+ target_table_context: TableContext,
142
+ column_mappings: dict[str, str],
143
+ ) -> bool:
144
+ """Generate metrics validation queries and write to files.
145
+
146
+ This method uses the decoupled workflow with public API:
147
+ 1. Generate metrics query for source using data_validation_api
148
+ 2. Generate metrics query for target using data_validation_api
149
+ 3. Write both queries to files via public API functions
150
+
151
+ Args:
152
+ source_table_context: Source table context.
153
+ target_table_context: Target table context.
154
+ column_mappings: Mapping of source to target columns.
155
+
156
+ Returns:
157
+ bool: True if queries are successfully generated and written.
158
+
159
+ """
160
+ LOGGER.info(
161
+ "Generating metrics validation queries for table: %s",
162
+ source_table_context.fully_qualified_name,
163
+ )
164
+
165
+ try:
166
+ source_query = data_validation_api.generate_metrics_query(
167
+ source_table_context
168
+ )
169
+ target_query = data_validation_api.generate_metrics_query(
170
+ target_table_context
171
+ )
172
+
173
+ LOGGER.debug(
174
+ "Generated metrics queries for source: %s and target: %s",
175
+ source_table_context.fully_qualified_name,
176
+ target_table_context.fully_qualified_name,
177
+ )
178
+
179
+ data_validation_api.write_metrics_query_to_script(
180
+ table_context=source_table_context,
181
+ generated_query=source_query,
182
+ output_directory=self.source_extractor.report_path,
183
+ timestamp=self.context.run_start_time,
184
+ )
185
+
186
+ data_validation_api.write_metrics_query_to_script(
187
+ table_context=target_table_context,
188
+ generated_query=target_query,
189
+ output_directory=self.target_extractor.report_path,
190
+ timestamp=self.context.run_start_time,
191
+ )
192
+
193
+ self.context.output_handler.handle_message(
194
+ header="Metrics validation queries generated.",
195
+ message=f"Queries generated for table: {target_table_context.fully_qualified_name}",
196
+ level=OutputMessageLevel.SUCCESS,
197
+ )
198
+ return True
199
+ except Exception:
200
+ return False
201
+
202
+ @validation_handler(
203
+ "Row validation async generation failed.",
204
+ "Error in row validation async generation: {error}",
205
+ )
206
+ @log
207
+ def execute_row_validation(
208
+ self,
209
+ source_table_context: TableContext,
210
+ target_table_context: TableContext,
211
+ ) -> bool:
212
+ """Generate row validation queries (placeholder implementation).
213
+
214
+ Note: Row validation async generation is not yet implemented.
215
+
216
+ Args:
217
+ source_table_context: Source table context for validation.
218
+ target_table_context: Target table context for validation.
219
+
220
+ Returns:
221
+ bool: True (placeholder - always succeeds).
222
+
223
+ """
224
+ LOGGER.info(
225
+ "Row validation async generation skipped for table: %s",
226
+ source_table_context.fully_qualified_name,
227
+ )
228
+
229
+ self.context.output_handler.handle_message(
230
+ header="Row validation async generation skipped.",
231
+ message="Row validation async generation is not yet implemented.",
232
+ level=OutputMessageLevel.INFO,
233
+ )
234
+ return True
235
+
236
+ def _get_schema_validation_message(self, table_configuration: TableContext) -> str:
237
+ """Get async generation message for schema validation."""
238
+ return (
239
+ f"Generating async schema validation queries for {table_configuration.fully_qualified_name} "
240
+ f"with columns {table_configuration.column_selection_list}."
241
+ )
242
+
243
+ def _get_metrics_validation_message(self, table_configuration: TableContext) -> str:
244
+ """Get async generation message for metrics validation."""
245
+ return (
246
+ f"Generating async metrics validation queries for {table_configuration.fully_qualified_name} "
247
+ f"with columns {table_configuration.column_selection_list}."
248
+ )
249
+
250
+ def _get_row_validation_message(self, table_configuration: TableContext) -> str:
251
+ """Get async generation message for row validation."""
252
+ return (
253
+ f"Generating async row validation queries for {table_configuration.fully_qualified_name} "
254
+ f"with columns {table_configuration.column_selection_list}."
255
+ )