dataops-testgen 2.2.0__tar.gz → 2.15.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.
Files changed (334) hide show
  1. {dataops-testgen-2.2.0 → dataops-testgen-2.15.2}/PKG-INFO +330 -287
  2. dataops-testgen-2.2.0/dataops_testgen.egg-info/PKG-INFO → dataops-testgen-2.15.2/README.md +260 -287
  3. dataops-testgen-2.2.0/README.md → dataops-testgen-2.15.2/dataops_testgen.egg-info/PKG-INFO +144 -42
  4. {dataops-testgen-2.2.0 → dataops-testgen-2.15.2}/dataops_testgen.egg-info/SOURCES.txt +23 -10
  5. {dataops-testgen-2.2.0 → dataops-testgen-2.15.2}/dataops_testgen.egg-info/requires.txt +5 -3
  6. {dataops-testgen-2.2.0 → dataops-testgen-2.15.2}/pyproject.toml +26 -18
  7. {dataops-testgen-2.2.0 → dataops-testgen-2.15.2}/setup.cfg +4 -4
  8. {dataops-testgen-2.2.0 → dataops-testgen-2.15.2}/testgen/__main__.py +5 -49
  9. {dataops-testgen-2.2.0 → dataops-testgen-2.15.2}/testgen/commands/queries/execute_cat_tests_query.py +3 -1
  10. {dataops-testgen-2.2.0 → dataops-testgen-2.15.2}/testgen/commands/queries/execute_tests_query.py +4 -1
  11. {dataops-testgen-2.2.0 → dataops-testgen-2.15.2}/testgen/commands/queries/test_parameter_validation_query.py +13 -11
  12. {dataops-testgen-2.2.0 → dataops-testgen-2.15.2}/testgen/commands/run_execute_cat_tests.py +1 -1
  13. {dataops-testgen-2.2.0 → dataops-testgen-2.15.2}/testgen/commands/run_execute_tests.py +1 -1
  14. {dataops-testgen-2.2.0 → dataops-testgen-2.15.2}/testgen/commands/run_generate_tests.py +6 -5
  15. {dataops-testgen-2.2.0 → dataops-testgen-2.15.2}/testgen/commands/run_observability_exporter.py +28 -22
  16. {dataops-testgen-2.2.0 → dataops-testgen-2.15.2}/testgen/commands/run_quick_start.py +7 -6
  17. {dataops-testgen-2.2.0 → dataops-testgen-2.15.2}/testgen/commands/run_test_parameter_validation.py +45 -19
  18. {dataops-testgen-2.2.0 → dataops-testgen-2.15.2}/testgen/common/database/database_service.py +10 -0
  19. {dataops-testgen-2.2.0 → dataops-testgen-2.15.2}/testgen/common/date_service.py +19 -2
  20. dataops-testgen-2.15.2/testgen/common/display_service.py +36 -0
  21. dataops-testgen-2.15.2/testgen/common/docker_service.py +28 -0
  22. {dataops-testgen-2.2.0 → dataops-testgen-2.15.2}/testgen/common/logs.py +30 -29
  23. dataops-testgen-2.15.2/testgen/common/version_service.py +79 -0
  24. {dataops-testgen-2.2.0 → dataops-testgen-2.15.2}/testgen/settings.py +39 -3
  25. {dataops-testgen-2.2.0 → dataops-testgen-2.15.2}/testgen/template/dbsetup/030_initialize_new_schema_structure.sql +57 -78
  26. {dataops-testgen-2.2.0 → dataops-testgen-2.15.2}/testgen/template/dbsetup/060_create_standard_views.sql +17 -14
  27. dataops-testgen-2.15.2/testgen/template/dbupgrade/0108_incremental_upgrade.sql +40 -0
  28. dataops-testgen-2.15.2/testgen/template/dbupgrade/0109_incremental_upgrade.sql +78 -0
  29. dataops-testgen-2.15.2/testgen/template/dbupgrade/0110_incremental_upgrade.sql +15 -0
  30. dataops-testgen-2.15.2/testgen/template/dbupgrade/0111_incremental_upgrade.sql +13 -0
  31. {dataops-testgen-2.2.0 → dataops-testgen-2.15.2}/testgen/template/exec_cat_tests/ex_cat_build_agg_table_tests.sql +7 -11
  32. dataops-testgen-2.15.2/testgen/template/exec_cat_tests/ex_cat_get_distinct_tables.sql +12 -0
  33. {dataops-testgen-2.2.0 → dataops-testgen-2.15.2}/testgen/template/exec_cat_tests/ex_cat_results_parse.sql +6 -8
  34. dataops-testgen-2.15.2/testgen/template/exec_cat_tests/ex_cat_retrieve_agg_test_parms.sql +8 -0
  35. {dataops-testgen-2.2.0 → dataops-testgen-2.15.2}/testgen/template/exec_cat_tests/ex_cat_test_query.sql +0 -1
  36. {dataops-testgen-2.2.0 → dataops-testgen-2.15.2}/testgen/template/execution/ex_finalize_test_run_results.sql +3 -7
  37. {dataops-testgen-2.2.0 → dataops-testgen-2.15.2}/testgen/template/execution/ex_get_tests_non_cat.sql +10 -11
  38. dataops-testgen-2.15.2/testgen/template/execution/ex_write_test_record_to_testrun_table.sql +5 -0
  39. {dataops-testgen-2.2.0 → dataops-testgen-2.15.2}/testgen/template/flavors/generic/exec_query_tests/ex_aggregate_match_no_drops_generic.sql +2 -2
  40. {dataops-testgen-2.2.0 → dataops-testgen-2.15.2}/testgen/template/flavors/generic/exec_query_tests/ex_aggregate_match_num_incr_generic.sql +2 -2
  41. {dataops-testgen-2.2.0 → dataops-testgen-2.15.2}/testgen/template/flavors/generic/exec_query_tests/ex_aggregate_match_percent_above_generic.sql +2 -3
  42. {dataops-testgen-2.2.0 → dataops-testgen-2.15.2}/testgen/template/flavors/generic/exec_query_tests/ex_aggregate_match_percent_within_generic.sql +2 -3
  43. {dataops-testgen-2.2.0 → dataops-testgen-2.15.2}/testgen/template/flavors/generic/exec_query_tests/ex_aggregate_match_same_generic.sql +2 -3
  44. {dataops-testgen-2.2.0 → dataops-testgen-2.15.2}/testgen/template/flavors/generic/exec_query_tests/ex_custom_query_generic.sql +2 -3
  45. {dataops-testgen-2.2.0 → dataops-testgen-2.15.2}/testgen/template/flavors/generic/exec_query_tests/ex_data_match_2way_generic.sql +2 -3
  46. {dataops-testgen-2.2.0 → dataops-testgen-2.15.2}/testgen/template/flavors/generic/exec_query_tests/ex_data_match_generic.sql +2 -3
  47. {dataops-testgen-2.2.0 → dataops-testgen-2.15.2}/testgen/template/flavors/generic/exec_query_tests/ex_prior_match_generic.sql +2 -2
  48. {dataops-testgen-2.2.0 → dataops-testgen-2.15.2}/testgen/template/flavors/generic/exec_query_tests/ex_relative_entropy_generic.sql +2 -3
  49. {dataops-testgen-2.2.0 → dataops-testgen-2.15.2}/testgen/template/flavors/generic/exec_query_tests/ex_window_match_no_drops_generic.sql +2 -3
  50. {dataops-testgen-2.2.0 → dataops-testgen-2.15.2}/testgen/template/flavors/generic/exec_query_tests/ex_window_match_same_generic.sql +2 -3
  51. {dataops-testgen-2.2.0 → dataops-testgen-2.15.2}/testgen/template/flavors/mssql/exec_query_tests/ex_relative_entropy_mssql.sql +2 -3
  52. {dataops-testgen-2.2.0 → dataops-testgen-2.15.2}/testgen/template/flavors/postgresql/exec_query_tests/ex_window_match_no_drops_postgresql.sql +2 -3
  53. {dataops-testgen-2.2.0 → dataops-testgen-2.15.2}/testgen/template/flavors/postgresql/exec_query_tests/ex_window_match_same_postgresql.sql +2 -3
  54. {dataops-testgen-2.2.0 → dataops-testgen-2.15.2}/testgen/template/gen_funny_cat_tests/gen_test_constant.sql +11 -12
  55. {dataops-testgen-2.2.0 → dataops-testgen-2.15.2}/testgen/template/gen_funny_cat_tests/gen_test_distinct_value_ct.sql +10 -11
  56. {dataops-testgen-2.2.0 → dataops-testgen-2.15.2}/testgen/template/gen_funny_cat_tests/gen_test_row_ct.sql +10 -11
  57. {dataops-testgen-2.2.0 → dataops-testgen-2.15.2}/testgen/template/gen_funny_cat_tests/gen_test_row_ct_pct.sql +11 -11
  58. {dataops-testgen-2.2.0 → dataops-testgen-2.15.2}/testgen/template/generation/gen_delete_old_tests.sql +1 -1
  59. {dataops-testgen-2.2.0 → dataops-testgen-2.15.2}/testgen/template/generation/gen_insert_test_suite.sql +2 -1
  60. {dataops-testgen-2.2.0 → dataops-testgen-2.15.2}/testgen/template/generation/gen_standard_tests.sql +7 -9
  61. dataops-testgen-2.15.2/testgen/template/get_entities/get_test_generation_list.sql +19 -0
  62. dataops-testgen-2.15.2/testgen/template/get_entities/get_test_info.sql +44 -0
  63. {dataops-testgen-2.2.0 → dataops-testgen-2.15.2}/testgen/template/get_entities/get_test_results_for_run_cli.sql +2 -1
  64. dataops-testgen-2.15.2/testgen/template/get_entities/get_test_run_list.sql +24 -0
  65. dataops-testgen-2.15.2/testgen/template/get_entities/get_test_suite_list.sql +11 -0
  66. {dataops-testgen-2.2.0 → dataops-testgen-2.15.2}/testgen/template/observability/get_event_data.sql +1 -2
  67. {dataops-testgen-2.2.0 → dataops-testgen-2.15.2}/testgen/template/observability/get_test_results.sql +1 -2
  68. {dataops-testgen-2.2.0 → dataops-testgen-2.15.2}/testgen/template/observability/update_test_results_exported_to_observability.sql +1 -2
  69. dataops-testgen-2.15.2/testgen/template/parms/parms_test_execution.sql +22 -0
  70. dataops-testgen-2.15.2/testgen/template/parms/parms_test_gen.sql +21 -0
  71. dataops-testgen-2.15.2/testgen/template/validate_tests/ex_disable_tests_test_definitions.sql +4 -0
  72. dataops-testgen-2.15.2/testgen/template/validate_tests/ex_flag_tests_test_definitions.sql +7 -0
  73. {dataops-testgen-2.2.0 → dataops-testgen-2.15.2}/testgen/template/validate_tests/ex_get_test_column_list_tg.sql +11 -23
  74. dataops-testgen-2.15.2/testgen/template/validate_tests/ex_prep_flag_tests_test_definitions.sql +6 -0
  75. dataops-testgen-2.15.2/testgen/template/validate_tests/ex_write_test_val_errors.sql +28 -0
  76. {dataops-testgen-2.2.0 → dataops-testgen-2.15.2}/testgen/ui/app.py +19 -39
  77. dataops-testgen-2.15.2/testgen/ui/assets/dk_icon.svg +6 -0
  78. {dataops-testgen-2.2.0 → dataops-testgen-2.15.2}/testgen/ui/assets/scripts.js +0 -6
  79. dataops-testgen-2.15.2/testgen/ui/assets/style.css +301 -0
  80. {dataops-testgen-2.2.0 → dataops-testgen-2.15.2}/testgen/ui/bootstrap.py +10 -24
  81. dataops-testgen-2.15.2/testgen/ui/components/frontend/css/shared.css +71 -0
  82. {dataops-testgen-2.2.0 → dataops-testgen-2.15.2}/testgen/ui/components/frontend/js/components/breadcrumbs.js +4 -3
  83. dataops-testgen-2.15.2/testgen/ui/components/frontend/js/components/button.js +134 -0
  84. dataops-testgen-2.15.2/testgen/ui/components/frontend/js/components/expander_toggle.js +56 -0
  85. dataops-testgen-2.15.2/testgen/ui/components/frontend/js/components/link.js +87 -0
  86. dataops-testgen-2.15.2/testgen/ui/components/frontend/js/components/paginator.js +111 -0
  87. {dataops-testgen-2.2.0 → dataops-testgen-2.15.2}/testgen/ui/components/frontend/js/components/sidebar.js +11 -65
  88. dataops-testgen-2.15.2/testgen/ui/components/frontend/js/components/sorting_selector.js +241 -0
  89. dataops-testgen-2.15.2/testgen/ui/components/frontend/js/components/summary_bar.js +98 -0
  90. {dataops-testgen-2.2.0 → dataops-testgen-2.15.2}/testgen/ui/components/frontend/js/main.js +17 -18
  91. dataops-testgen-2.15.2/testgen/ui/components/frontend/js/utils.js +12 -0
  92. {dataops-testgen-2.2.0 → dataops-testgen-2.15.2}/testgen/ui/components/utils/component.py +2 -2
  93. dataops-testgen-2.15.2/testgen/ui/components/widgets/__init__.py +23 -0
  94. {dataops-testgen-2.2.0 → dataops-testgen-2.15.2}/testgen/ui/components/widgets/breadcrumbs.py +5 -6
  95. dataops-testgen-2.15.2/testgen/ui/components/widgets/button.py +43 -0
  96. dataops-testgen-2.15.2/testgen/ui/components/widgets/card.py +43 -0
  97. dataops-testgen-2.15.2/testgen/ui/components/widgets/expander_toggle.py +30 -0
  98. dataops-testgen-2.15.2/testgen/ui/components/widgets/link.py +37 -0
  99. dataops-testgen-2.15.2/testgen/ui/components/widgets/page.py +118 -0
  100. dataops-testgen-2.15.2/testgen/ui/components/widgets/paginator.py +25 -0
  101. dataops-testgen-2.15.2/testgen/ui/components/widgets/sidebar.py +62 -0
  102. dataops-testgen-2.15.2/testgen/ui/components/widgets/sorting_selector.py +95 -0
  103. dataops-testgen-2.15.2/testgen/ui/components/widgets/summary_bar.py +68 -0
  104. dataops-testgen-2.15.2/testgen/ui/navigation/page.py +57 -0
  105. dataops-testgen-2.15.2/testgen/ui/navigation/router.py +81 -0
  106. {dataops-testgen-2.2.0 → dataops-testgen-2.15.2}/testgen/ui/queries/profiling_queries.py +20 -13
  107. {dataops-testgen-2.2.0 → dataops-testgen-2.15.2}/testgen/ui/queries/table_group_queries.py +9 -7
  108. {dataops-testgen-2.2.0 → dataops-testgen-2.15.2}/testgen/ui/queries/test_definition_queries.py +15 -18
  109. dataops-testgen-2.15.2/testgen/ui/queries/test_run_queries.py +39 -0
  110. dataops-testgen-2.15.2/testgen/ui/queries/test_suite_queries.py +248 -0
  111. {dataops-testgen-2.2.0 → dataops-testgen-2.15.2}/testgen/ui/scripts/patch_streamlit.py +1 -1
  112. dataops-testgen-2.15.2/testgen/ui/services/authentication_service.py +55 -0
  113. {dataops-testgen-2.2.0 → dataops-testgen-2.15.2}/testgen/ui/services/connection_service.py +4 -3
  114. {dataops-testgen-2.2.0 → dataops-testgen-2.15.2}/testgen/ui/services/form_service.py +25 -60
  115. {dataops-testgen-2.2.0 → dataops-testgen-2.15.2}/testgen/ui/services/javascript_service.py +1 -1
  116. dataops-testgen-2.15.2/testgen/ui/services/project_service.py +27 -0
  117. {dataops-testgen-2.2.0 → dataops-testgen-2.15.2}/testgen/ui/services/query_service.py +13 -51
  118. {dataops-testgen-2.2.0 → dataops-testgen-2.15.2}/testgen/ui/services/table_group_service.py +20 -15
  119. {dataops-testgen-2.2.0 → dataops-testgen-2.15.2}/testgen/ui/services/test_definition_service.py +5 -5
  120. {dataops-testgen-2.2.0 → dataops-testgen-2.15.2}/testgen/ui/services/test_run_service.py +2 -2
  121. {dataops-testgen-2.2.0 → dataops-testgen-2.15.2}/testgen/ui/services/test_suite_service.py +29 -18
  122. dataops-testgen-2.2.0/testgen/ui/services/authentication_service.py → dataops-testgen-2.15.2/testgen/ui/services/user_session_service.py +4 -54
  123. {dataops-testgen-2.2.0 → dataops-testgen-2.15.2}/testgen/ui/session.py +11 -7
  124. dataops-testgen-2.15.2/testgen/ui/views/app_log_modal.py +87 -0
  125. dataops-testgen-2.15.2/testgen/ui/views/connections.py +456 -0
  126. dataops-testgen-2.15.2/testgen/ui/views/login.py +58 -0
  127. dataops-testgen-2.15.2/testgen/ui/views/overview.py +354 -0
  128. dataops-testgen-2.15.2/testgen/ui/views/profiling_anomalies.py +489 -0
  129. dataops-testgen-2.15.2/testgen/ui/views/profiling_modal.py +34 -0
  130. dataops-testgen-2.15.2/testgen/ui/views/profiling_results.py +203 -0
  131. dataops-testgen-2.15.2/testgen/ui/views/profiling_summary.py +248 -0
  132. {dataops-testgen-2.2.0 → dataops-testgen-2.15.2}/testgen/ui/views/project_settings.py +9 -18
  133. dataops-testgen-2.15.2/testgen/ui/views/table_groups.py +469 -0
  134. dataops-testgen-2.15.2/testgen/ui/views/test_definitions.py +876 -0
  135. {dataops-testgen-2.2.0 → dataops-testgen-2.15.2}/testgen/ui/views/test_results.py +240 -268
  136. dataops-testgen-2.15.2/testgen/ui/views/test_runs.py +264 -0
  137. dataops-testgen-2.15.2/testgen/ui/views/test_suites.py +483 -0
  138. dataops-testgen-2.15.2/testgen/utils/__init__.py +7 -0
  139. dataops-testgen-2.2.0/testgen/commands/run_test_definition.py +0 -146
  140. dataops-testgen-2.2.0/testgen/common/display_service.py +0 -85
  141. dataops-testgen-2.2.0/testgen/common/docker_service.py +0 -76
  142. dataops-testgen-2.2.0/testgen/template/exec_cat_tests/ex_cat_get_distinct_tables.sql +0 -11
  143. dataops-testgen-2.2.0/testgen/template/exec_cat_tests/ex_cat_retrieve_agg_test_parms.sql +0 -6
  144. dataops-testgen-2.2.0/testgen/template/execution/ex_write_test_record_to_testrun_table.sql +0 -6
  145. dataops-testgen-2.2.0/testgen/template/get_entities/get_test_generation_list.sql +0 -18
  146. dataops-testgen-2.2.0/testgen/template/get_entities/get_test_info.sql +0 -41
  147. dataops-testgen-2.2.0/testgen/template/get_entities/get_test_run_list.sql +0 -24
  148. dataops-testgen-2.2.0/testgen/template/get_entities/get_test_suite_list.sql +0 -18
  149. dataops-testgen-2.2.0/testgen/template/parms/parms_test_execution.sql +0 -13
  150. dataops-testgen-2.2.0/testgen/template/parms/parms_test_gen.sql +0 -23
  151. dataops-testgen-2.2.0/testgen/template/updates/create_tmp_test_definition.sql +0 -19
  152. dataops-testgen-2.2.0/testgen/template/updates/get_test_def_parms.sql +0 -38
  153. dataops-testgen-2.2.0/testgen/template/updates/populate_stg_test_definitions.sql +0 -184
  154. dataops-testgen-2.2.0/testgen/template/validate_tests/ex_disable_tests_test_definitions.sql +0 -5
  155. dataops-testgen-2.2.0/testgen/template/validate_tests/ex_flag_tests_test_definitions.sql +0 -64
  156. dataops-testgen-2.2.0/testgen/template/validate_tests/ex_write_test_val_errors.sql +0 -22
  157. dataops-testgen-2.2.0/testgen/ui/assets/style.css +0 -140
  158. dataops-testgen-2.2.0/testgen/ui/components/frontend/css/shared.css +0 -36
  159. dataops-testgen-2.2.0/testgen/ui/components/frontend/js/components/button.js +0 -66
  160. dataops-testgen-2.2.0/testgen/ui/components/frontend/js/components/location.js +0 -62
  161. dataops-testgen-2.2.0/testgen/ui/components/widgets/__init__.py +0 -6
  162. dataops-testgen-2.2.0/testgen/ui/components/widgets/location.py +0 -65
  163. dataops-testgen-2.2.0/testgen/ui/components/widgets/modal.py +0 -97
  164. dataops-testgen-2.2.0/testgen/ui/components/widgets/sidebar.py +0 -69
  165. dataops-testgen-2.2.0/testgen/ui/navigation/page.py +0 -20
  166. dataops-testgen-2.2.0/testgen/ui/navigation/router.py +0 -63
  167. dataops-testgen-2.2.0/testgen/ui/queries/test_run_queries.py +0 -32
  168. dataops-testgen-2.2.0/testgen/ui/queries/test_suite_queries.py +0 -145
  169. dataops-testgen-2.2.0/testgen/ui/services/toolbar_service.py +0 -77
  170. dataops-testgen-2.2.0/testgen/ui/views/app_log_modal.py +0 -92
  171. dataops-testgen-2.2.0/testgen/ui/views/connections.py +0 -72
  172. dataops-testgen-2.2.0/testgen/ui/views/connections_base.py +0 -367
  173. dataops-testgen-2.2.0/testgen/ui/views/login.py +0 -40
  174. dataops-testgen-2.2.0/testgen/ui/views/not_found.py +0 -16
  175. dataops-testgen-2.2.0/testgen/ui/views/overview.py +0 -34
  176. dataops-testgen-2.2.0/testgen/ui/views/profiling_anomalies.py +0 -501
  177. dataops-testgen-2.2.0/testgen/ui/views/profiling_modal.py +0 -40
  178. dataops-testgen-2.2.0/testgen/ui/views/profiling_results.py +0 -206
  179. dataops-testgen-2.2.0/testgen/ui/views/profiling_summary.py +0 -177
  180. dataops-testgen-2.2.0/testgen/ui/views/table_groups.py +0 -530
  181. dataops-testgen-2.2.0/testgen/ui/views/test_definitions.py +0 -1020
  182. dataops-testgen-2.2.0/testgen/ui/views/test_runs.py +0 -195
  183. dataops-testgen-2.2.0/testgen/ui/views/test_suites.py +0 -545
  184. dataops-testgen-2.2.0/testgen/utils/__init__.py +0 -0
  185. {dataops-testgen-2.2.0 → dataops-testgen-2.15.2}/LICENSE +0 -0
  186. {dataops-testgen-2.2.0 → dataops-testgen-2.15.2}/NOTICE +0 -0
  187. {dataops-testgen-2.2.0 → dataops-testgen-2.15.2}/dataops_testgen.egg-info/dependency_links.txt +0 -0
  188. {dataops-testgen-2.2.0 → dataops-testgen-2.15.2}/dataops_testgen.egg-info/entry_points.txt +0 -0
  189. {dataops-testgen-2.2.0 → dataops-testgen-2.15.2}/dataops_testgen.egg-info/top_level.txt +0 -0
  190. {dataops-testgen-2.2.0 → dataops-testgen-2.15.2}/testgen/__init__.py +0 -0
  191. {dataops-testgen-2.2.0 → dataops-testgen-2.15.2}/testgen/commands/__init__.py +0 -0
  192. {dataops-testgen-2.2.0 → dataops-testgen-2.15.2}/testgen/commands/queries/__init__.py +0 -0
  193. {dataops-testgen-2.2.0 → dataops-testgen-2.15.2}/testgen/commands/queries/generate_tests_query.py +0 -0
  194. {dataops-testgen-2.2.0 → dataops-testgen-2.15.2}/testgen/commands/queries/profiling_query.py +0 -0
  195. {dataops-testgen-2.2.0 → dataops-testgen-2.15.2}/testgen/commands/run_get_entities.py +0 -0
  196. {dataops-testgen-2.2.0 → dataops-testgen-2.15.2}/testgen/commands/run_launch_db_config.py +0 -0
  197. {dataops-testgen-2.2.0 → dataops-testgen-2.15.2}/testgen/commands/run_profiling_bridge.py +0 -0
  198. {dataops-testgen-2.2.0 → dataops-testgen-2.15.2}/testgen/commands/run_setup_profiling_tools.py +0 -0
  199. {dataops-testgen-2.2.0 → dataops-testgen-2.15.2}/testgen/commands/run_upgrade_db_config.py +0 -0
  200. {dataops-testgen-2.2.0 → dataops-testgen-2.15.2}/testgen/common/__init__.py +0 -0
  201. {dataops-testgen-2.2.0 → dataops-testgen-2.15.2}/testgen/common/clean_sql.py +0 -0
  202. {dataops-testgen-2.2.0 → dataops-testgen-2.15.2}/testgen/common/credentials.py +0 -0
  203. {dataops-testgen-2.2.0 → dataops-testgen-2.15.2}/testgen/common/database/__init__.py +0 -0
  204. {dataops-testgen-2.2.0 → dataops-testgen-2.15.2}/testgen/common/database/flavor/__init__.py +0 -0
  205. {dataops-testgen-2.2.0 → dataops-testgen-2.15.2}/testgen/common/database/flavor/flavor_service.py +0 -0
  206. {dataops-testgen-2.2.0 → dataops-testgen-2.15.2}/testgen/common/database/flavor/mssql_flavor_service.py +0 -0
  207. {dataops-testgen-2.2.0 → dataops-testgen-2.15.2}/testgen/common/database/flavor/postgresql_flavor_service.py +0 -0
  208. {dataops-testgen-2.2.0 → dataops-testgen-2.15.2}/testgen/common/database/flavor/redshift_flavor_service.py +0 -0
  209. {dataops-testgen-2.2.0 → dataops-testgen-2.15.2}/testgen/common/database/flavor/snowflake_flavor_service.py +0 -0
  210. {dataops-testgen-2.2.0 → dataops-testgen-2.15.2}/testgen/common/database/flavor/trino_flavor_service.py +0 -0
  211. {dataops-testgen-2.2.0 → dataops-testgen-2.15.2}/testgen/common/encrypt.py +0 -0
  212. {dataops-testgen-2.2.0 → dataops-testgen-2.15.2}/testgen/common/get_pipeline_parms.py +0 -0
  213. {dataops-testgen-2.2.0 → dataops-testgen-2.15.2}/testgen/common/process_service.py +0 -0
  214. {dataops-testgen-2.2.0 → dataops-testgen-2.15.2}/testgen/common/read_file.py +0 -0
  215. {dataops-testgen-2.2.0 → dataops-testgen-2.15.2}/testgen/template/dbsetup/010_create_base_schema.sql +0 -0
  216. {dataops-testgen-2.2.0 → dataops-testgen-2.15.2}/testgen/template/dbsetup/020_create_standard_functions_sprocs.sql +0 -0
  217. {dataops-testgen-2.2.0 → dataops-testgen-2.15.2}/testgen/template/dbsetup/040_populate_new_schema_project.sql +0 -0
  218. {dataops-testgen-2.2.0 → dataops-testgen-2.15.2}/testgen/template/dbsetup/050_populate_new_schema_metadata.sql +0 -0
  219. {dataops-testgen-2.2.0 → dataops-testgen-2.15.2}/testgen/template/dbsetup/070_create_default_users.sql +0 -0
  220. {dataops-testgen-2.2.0 → dataops-testgen-2.15.2}/testgen/template/dbsetup/075_grant_role_rights.sql +0 -0
  221. {dataops-testgen-2.2.0 → dataops-testgen-2.15.2}/testgen/template/dbsetup/080_set_current_revision.sql +0 -0
  222. {dataops-testgen-2.2.0 → dataops-testgen-2.15.2}/testgen/template/dbupgrade/0100_incremental_upgrade.sql +0 -0
  223. {dataops-testgen-2.2.0 → dataops-testgen-2.15.2}/testgen/template/dbupgrade/0101_incremental_upgrade.sql +0 -0
  224. {dataops-testgen-2.2.0 → dataops-testgen-2.15.2}/testgen/template/dbupgrade/0102_incremental_upgrade.sql +0 -0
  225. {dataops-testgen-2.2.0 → dataops-testgen-2.15.2}/testgen/template/dbupgrade/0103_incremental_upgrade.sql +0 -0
  226. {dataops-testgen-2.2.0 → dataops-testgen-2.15.2}/testgen/template/dbupgrade/0104_incremental_upgrade.sql +0 -0
  227. {dataops-testgen-2.2.0 → dataops-testgen-2.15.2}/testgen/template/dbupgrade/0105_incremental_upgrade.sql +0 -0
  228. {dataops-testgen-2.2.0 → dataops-testgen-2.15.2}/testgen/template/dbupgrade/0106_incremental_upgrade.sql +0 -0
  229. {dataops-testgen-2.2.0 → dataops-testgen-2.15.2}/testgen/template/dbupgrade/0107_incremental_upgrade.sql +0 -0
  230. {dataops-testgen-2.2.0 → dataops-testgen-2.15.2}/testgen/template/dbupgrade_helpers/get_tg_revision.sql +0 -0
  231. {dataops-testgen-2.2.0 → dataops-testgen-2.15.2}/testgen/template/execution/ex_update_test_record_in_testrun_table.sql +0 -0
  232. {dataops-testgen-2.2.0 → dataops-testgen-2.15.2}/testgen/template/flavors/generic/profiling/contingency_counts.sql +0 -0
  233. {dataops-testgen-2.2.0 → dataops-testgen-2.15.2}/testgen/template/flavors/generic/validate_tests/ex_get_project_column_list_generic.sql +0 -0
  234. {dataops-testgen-2.2.0 → dataops-testgen-2.15.2}/testgen/template/flavors/mssql/profiling/project_ddf_query_mssql.sql +0 -0
  235. {dataops-testgen-2.2.0 → dataops-testgen-2.15.2}/testgen/template/flavors/mssql/profiling/project_profiling_query_mssql.yaml +0 -0
  236. {dataops-testgen-2.2.0 → dataops-testgen-2.15.2}/testgen/template/flavors/mssql/profiling/project_secondary_profiling_query_mssql.sql +0 -0
  237. {dataops-testgen-2.2.0 → dataops-testgen-2.15.2}/testgen/template/flavors/mssql/setup_profiling_tools/00_drop_existing_functions_mssql.sql +0 -0
  238. {dataops-testgen-2.2.0 → dataops-testgen-2.15.2}/testgen/template/flavors/mssql/setup_profiling_tools/01_create_functions_mssql.sql +0 -0
  239. {dataops-testgen-2.2.0 → dataops-testgen-2.15.2}/testgen/template/flavors/mssql/setup_profiling_tools/02_create_functions_mssql.sql +0 -0
  240. {dataops-testgen-2.2.0 → dataops-testgen-2.15.2}/testgen/template/flavors/mssql/setup_profiling_tools/create_qc_schema_mssql.sql +0 -0
  241. {dataops-testgen-2.2.0 → dataops-testgen-2.15.2}/testgen/template/flavors/mssql/setup_profiling_tools/grant_execute_privileges_mssql.sql +0 -0
  242. {dataops-testgen-2.2.0 → dataops-testgen-2.15.2}/testgen/template/flavors/postgresql/profiling/project_ddf_query_postgresql.sql +0 -0
  243. {dataops-testgen-2.2.0 → dataops-testgen-2.15.2}/testgen/template/flavors/postgresql/profiling/project_profiling_query_postgresql.yaml +0 -0
  244. {dataops-testgen-2.2.0 → dataops-testgen-2.15.2}/testgen/template/flavors/postgresql/profiling/project_secondary_profiling_query_postgresql.sql +0 -0
  245. {dataops-testgen-2.2.0 → dataops-testgen-2.15.2}/testgen/template/flavors/postgresql/setup_profiling_tools/create_functions_postgresql.sql +0 -0
  246. {dataops-testgen-2.2.0 → dataops-testgen-2.15.2}/testgen/template/flavors/postgresql/setup_profiling_tools/create_qc_schema_postgresql.sql +0 -0
  247. {dataops-testgen-2.2.0 → dataops-testgen-2.15.2}/testgen/template/flavors/postgresql/setup_profiling_tools/grant_execute_privileges_postgresql.sql +0 -0
  248. {dataops-testgen-2.2.0 → dataops-testgen-2.15.2}/testgen/template/flavors/redshift/profiling/project_ddf_query_redshift.sql +0 -0
  249. {dataops-testgen-2.2.0 → dataops-testgen-2.15.2}/testgen/template/flavors/redshift/profiling/project_profiling_query_redshift.yaml +0 -0
  250. {dataops-testgen-2.2.0 → dataops-testgen-2.15.2}/testgen/template/flavors/redshift/profiling/project_secondary_profiling_query_redshift.sql +0 -0
  251. {dataops-testgen-2.2.0 → dataops-testgen-2.15.2}/testgen/template/flavors/redshift/setup_profiling_tools/create_functions_redshift.sql +0 -0
  252. {dataops-testgen-2.2.0 → dataops-testgen-2.15.2}/testgen/template/flavors/redshift/setup_profiling_tools/create_qc_schema_redshift.sql +0 -0
  253. {dataops-testgen-2.2.0 → dataops-testgen-2.15.2}/testgen/template/flavors/redshift/setup_profiling_tools/grant_execute_privileges_redshift.sql +0 -0
  254. {dataops-testgen-2.2.0 → dataops-testgen-2.15.2}/testgen/template/flavors/snowflake/profiling/project_ddf_query_snowflake.sql +0 -0
  255. {dataops-testgen-2.2.0 → dataops-testgen-2.15.2}/testgen/template/flavors/snowflake/profiling/project_profiling_query_snowflake.yaml +0 -0
  256. {dataops-testgen-2.2.0 → dataops-testgen-2.15.2}/testgen/template/flavors/snowflake/profiling/project_secondary_profiling_query_snowflake.sql +0 -0
  257. {dataops-testgen-2.2.0 → dataops-testgen-2.15.2}/testgen/template/flavors/snowflake/setup_profiling_tools/create_functions_snowflake.sql +0 -0
  258. {dataops-testgen-2.2.0 → dataops-testgen-2.15.2}/testgen/template/flavors/snowflake/setup_profiling_tools/create_qc_schema_snowflake.sql +0 -0
  259. {dataops-testgen-2.2.0 → dataops-testgen-2.15.2}/testgen/template/flavors/snowflake/setup_profiling_tools/grant_execute_privileges_snowflake.sql +0 -0
  260. {dataops-testgen-2.2.0 → dataops-testgen-2.15.2}/testgen/template/flavors/trino/profiling/project_profiling_query_trino.yaml +0 -0
  261. {dataops-testgen-2.2.0 → dataops-testgen-2.15.2}/testgen/template/flavors/trino/setup_profiling_tools/create_functions_trino.sql +0 -0
  262. {dataops-testgen-2.2.0 → dataops-testgen-2.15.2}/testgen/template/flavors/trino/setup_profiling_tools/create_qc_schema_trino.sql +0 -0
  263. {dataops-testgen-2.2.0 → dataops-testgen-2.15.2}/testgen/template/generation/gen_retrieve_or_insert_test_suite.sql +0 -0
  264. {dataops-testgen-2.2.0 → dataops-testgen-2.15.2}/testgen/template/generation/gen_standard_test_type_list.sql +0 -0
  265. {dataops-testgen-2.2.0 → dataops-testgen-2.15.2}/testgen/template/get_entities/get_connection.sql +0 -0
  266. {dataops-testgen-2.2.0 → dataops-testgen-2.15.2}/testgen/template/get_entities/get_connections_list.sql +0 -0
  267. {dataops-testgen-2.2.0 → dataops-testgen-2.15.2}/testgen/template/get_entities/get_latest.sql +0 -0
  268. {dataops-testgen-2.2.0 → dataops-testgen-2.15.2}/testgen/template/get_entities/get_profile.sql +0 -0
  269. {dataops-testgen-2.2.0 → dataops-testgen-2.15.2}/testgen/template/get_entities/get_profile_info.sql +0 -0
  270. {dataops-testgen-2.2.0 → dataops-testgen-2.15.2}/testgen/template/get_entities/get_profile_list.sql +0 -0
  271. {dataops-testgen-2.2.0 → dataops-testgen-2.15.2}/testgen/template/get_entities/get_profile_screen.sql +0 -0
  272. {dataops-testgen-2.2.0 → dataops-testgen-2.15.2}/testgen/template/get_entities/get_project_list.sql +0 -0
  273. {dataops-testgen-2.2.0 → dataops-testgen-2.15.2}/testgen/template/get_entities/get_table_group_list.sql +0 -0
  274. {dataops-testgen-2.2.0 → dataops-testgen-2.15.2}/testgen/template/get_entities/get_test_suite.sql +0 -0
  275. {dataops-testgen-2.2.0 → dataops-testgen-2.15.2}/testgen/template/get_entities/list_test_types.sql +0 -0
  276. {dataops-testgen-2.2.0 → dataops-testgen-2.15.2}/testgen/template/parms/parms_profiling.sql +0 -0
  277. {dataops-testgen-2.2.0 → dataops-testgen-2.15.2}/testgen/template/profiling/contingency_columns.sql +0 -0
  278. {dataops-testgen-2.2.0 → dataops-testgen-2.15.2}/testgen/template/profiling/datatype_suggestions.sql +0 -0
  279. {dataops-testgen-2.2.0 → dataops-testgen-2.15.2}/testgen/template/profiling/functional_datatype.sql +0 -0
  280. {dataops-testgen-2.2.0 → dataops-testgen-2.15.2}/testgen/template/profiling/functional_tabletype_stage.sql +0 -0
  281. {dataops-testgen-2.2.0 → dataops-testgen-2.15.2}/testgen/template/profiling/functional_tabletype_update.sql +0 -0
  282. {dataops-testgen-2.2.0 → dataops-testgen-2.15.2}/testgen/template/profiling/pii_flag.sql +0 -0
  283. {dataops-testgen-2.2.0 → dataops-testgen-2.15.2}/testgen/template/profiling/profile_anomalies_screen_column.sql +0 -0
  284. {dataops-testgen-2.2.0 → dataops-testgen-2.15.2}/testgen/template/profiling/profile_anomalies_screen_multi_column.sql +0 -0
  285. {dataops-testgen-2.2.0 → dataops-testgen-2.15.2}/testgen/template/profiling/profile_anomalies_screen_table.sql +0 -0
  286. {dataops-testgen-2.2.0 → dataops-testgen-2.15.2}/testgen/template/profiling/profile_anomalies_screen_table_dates.sql +0 -0
  287. {dataops-testgen-2.2.0 → dataops-testgen-2.15.2}/testgen/template/profiling/profile_anomalies_screen_variants.sql +0 -0
  288. {dataops-testgen-2.2.0 → dataops-testgen-2.15.2}/testgen/template/profiling/profile_anomaly_types_get.sql +0 -0
  289. {dataops-testgen-2.2.0 → dataops-testgen-2.15.2}/testgen/template/profiling/project_get_table_sample_count.sql +0 -0
  290. {dataops-testgen-2.2.0 → dataops-testgen-2.15.2}/testgen/template/profiling/project_profile_run_record_insert.sql +0 -0
  291. {dataops-testgen-2.2.0 → dataops-testgen-2.15.2}/testgen/template/profiling/project_profile_run_record_update.sql +0 -0
  292. {dataops-testgen-2.2.0 → dataops-testgen-2.15.2}/testgen/template/profiling/project_profile_run_record_update_status.sql +0 -0
  293. {dataops-testgen-2.2.0 → dataops-testgen-2.15.2}/testgen/template/profiling/project_update_profile_results_to_estimates.sql +0 -0
  294. {dataops-testgen-2.2.0 → dataops-testgen-2.15.2}/testgen/template/profiling/refresh_anomalies.sql +0 -0
  295. {dataops-testgen-2.2.0 → dataops-testgen-2.15.2}/testgen/template/profiling/refresh_data_chars_from_profiling.sql +0 -0
  296. {dataops-testgen-2.2.0 → dataops-testgen-2.15.2}/testgen/template/profiling/secondary_profiling_columns.sql +0 -0
  297. {dataops-testgen-2.2.0 → dataops-testgen-2.15.2}/testgen/template/profiling/secondary_profiling_delete.sql +0 -0
  298. {dataops-testgen-2.2.0 → dataops-testgen-2.15.2}/testgen/template/profiling/secondary_profiling_update.sql +0 -0
  299. {dataops-testgen-2.2.0 → dataops-testgen-2.15.2}/testgen/template/quick_start/populate_target_data.sql +0 -0
  300. {dataops-testgen-2.2.0 → dataops-testgen-2.15.2}/testgen/template/quick_start/recreate_target_data_schema.sql +0 -0
  301. {dataops-testgen-2.2.0 → dataops-testgen-2.15.2}/testgen/template/quick_start/update_target_data.sql +0 -0
  302. {dataops-testgen-2.2.0 → dataops-testgen-2.15.2}/testgen/template/validate_tests/ex_get_project_column_list_generic.sql +0 -0
  303. {dataops-testgen-2.2.0 → dataops-testgen-2.15.2}/testgen/ui/__init__.py +0 -0
  304. {dataops-testgen-2.2.0 → dataops-testgen-2.15.2}/testgen/ui/assets/dk_logo.svg +0 -0
  305. {dataops-testgen-2.2.0 → dataops-testgen-2.15.2}/testgen/ui/assets/question_mark.png +0 -0
  306. {dataops-testgen-2.2.0 → dataops-testgen-2.15.2}/testgen/ui/components/__init__.py +0 -0
  307. {dataops-testgen-2.2.0 → dataops-testgen-2.15.2}/testgen/ui/components/frontend/css/KFOlCnqEu92Fr1MmEU9fBBc4.woff2 +0 -0
  308. {dataops-testgen-2.2.0 → dataops-testgen-2.15.2}/testgen/ui/components/frontend/css/KFOlCnqEu92Fr1MmEU9fChc4EsA.woff2 +0 -0
  309. {dataops-testgen-2.2.0 → dataops-testgen-2.15.2}/testgen/ui/components/frontend/css/KFOmCnqEu92Fr1Mu4mxK.woff2 +0 -0
  310. {dataops-testgen-2.2.0 → dataops-testgen-2.15.2}/testgen/ui/components/frontend/css/KFOmCnqEu92Fr1Mu7GxKOzY.woff2 +0 -0
  311. {dataops-testgen-2.2.0 → dataops-testgen-2.15.2}/testgen/ui/components/frontend/css/material-symbols-rounded.css +0 -0
  312. {dataops-testgen-2.2.0 → dataops-testgen-2.15.2}/testgen/ui/components/frontend/css/material-symbols-rounded.woff2 +0 -0
  313. {dataops-testgen-2.2.0 → dataops-testgen-2.15.2}/testgen/ui/components/frontend/css/roboto-font-faces.css +0 -0
  314. {dataops-testgen-2.2.0 → dataops-testgen-2.15.2}/testgen/ui/components/frontend/img/dk_logo.svg +0 -0
  315. {dataops-testgen-2.2.0 → dataops-testgen-2.15.2}/testgen/ui/components/frontend/index.html +0 -0
  316. {dataops-testgen-2.2.0 → dataops-testgen-2.15.2}/testgen/ui/components/frontend/js/components/select.js +0 -0
  317. {dataops-testgen-2.2.0 → dataops-testgen-2.15.2}/testgen/ui/components/frontend/js/streamlit.js +0 -0
  318. {dataops-testgen-2.2.0 → dataops-testgen-2.15.2}/testgen/ui/components/frontend/js/van.min.js +0 -0
  319. {dataops-testgen-2.2.0 → dataops-testgen-2.15.2}/testgen/ui/components/utils/__init__.py +0 -0
  320. {dataops-testgen-2.2.0 → dataops-testgen-2.15.2}/testgen/ui/components/utils/callbacks.py +0 -0
  321. {dataops-testgen-2.2.0 → dataops-testgen-2.15.2}/testgen/ui/navigation/__init__.py +0 -0
  322. {dataops-testgen-2.2.0 → dataops-testgen-2.15.2}/testgen/ui/navigation/menu.py +0 -0
  323. {dataops-testgen-2.2.0 → dataops-testgen-2.15.2}/testgen/ui/queries/__init__.py +0 -0
  324. {dataops-testgen-2.2.0 → dataops-testgen-2.15.2}/testgen/ui/queries/authentication_queries.py +0 -0
  325. {dataops-testgen-2.2.0 → dataops-testgen-2.15.2}/testgen/ui/queries/connection_queries.py +0 -0
  326. {dataops-testgen-2.2.0 → dataops-testgen-2.15.2}/testgen/ui/queries/project_queries.py +0 -0
  327. {dataops-testgen-2.2.0 → dataops-testgen-2.15.2}/testgen/ui/scripts/__init__.py +0 -0
  328. {dataops-testgen-2.2.0 → dataops-testgen-2.15.2}/testgen/ui/services/__init__.py +0 -0
  329. {dataops-testgen-2.2.0 → dataops-testgen-2.15.2}/testgen/ui/services/database_service.py +0 -0
  330. {dataops-testgen-2.2.0 → dataops-testgen-2.15.2}/testgen/ui/services/string_service.py +0 -0
  331. {dataops-testgen-2.2.0 → dataops-testgen-2.15.2}/testgen/ui/views/__init__.py +0 -0
  332. {dataops-testgen-2.2.0 → dataops-testgen-2.15.2}/testgen/ui/views/profiling_details.py +0 -0
  333. {dataops-testgen-2.2.0 → dataops-testgen-2.15.2}/testgen/utils/plugins.py +0 -0
  334. {dataops-testgen-2.2.0 → dataops-testgen-2.15.2}/testgen/utils/singleton.py +0 -0
@@ -1,287 +1,330 @@
1
- Metadata-Version: 2.1
2
- Name: dataops-testgen
3
- Version: 2.2.0
4
- Summary: DataKitchen Inc. Data Quality Engine
5
- Author-email: Charles Bloche <chip@datakitchen.io>, Tyler Stubenvoll <tstubenvoll@datakitchen.io>, Alejandro Fernandez <alex@datakitchen.io>, Anuja Waikar <awaikar@datakitchen.io>, Shruthy Vakkil <svakkil@datakitchen.io>, Arnob Bordoloi <abordoloi@datakitchen.io>, Saurabh Vashist <svashist@datakitchen.io>, Saurabh Vaidya <saurabh@datakitchen.io>
6
- License: Apache 2.0
7
- Project-URL: homepage, https://datakitchen.io
8
- Classifier: Intended Audience :: Developers
9
- Classifier: Operating System :: OS Independent
10
- Classifier: Programming Language :: Python
11
- Classifier: Programming Language :: Python :: 3.10
12
- Requires-Python: >=3.10
13
- Description-Content-Type: text/markdown
14
- License-File: LICENSE
15
- License-File: NOTICE
16
- Requires-Dist: PyYAML==6.0.1
17
- Requires-Dist: click==8.1.3
18
- Requires-Dist: sqlalchemy==1.4.46
19
- Requires-Dist: snowflake-sqlalchemy==1.4.7
20
- Requires-Dist: pyodbc==5.0.0
21
- Requires-Dist: psycopg2-binary==2.9.9
22
- Requires-Dist: pycryptodome==3.17
23
- Requires-Dist: prettytable==3.7.0
24
- Requires-Dist: requests_extensions==1.1.3
25
- Requires-Dist: bz2file==0.98
26
- Requires-Dist: trogon==0.4.0
27
- Requires-Dist: numpy==1.26.4
28
- Requires-Dist: pandas==2.2.0rc0
29
- Requires-Dist: streamlit==1.26.0
30
- Requires-Dist: streamlit-extras==0.3.0
31
- Requires-Dist: streamlit-aggrid==0.3.4.post3
32
- Requires-Dist: streamlit-antd-components==0.2.2
33
- Requires-Dist: streamlit-plotly-events==0.0.6
34
- Requires-Dist: plotly_express==0.4.1
35
- Requires-Dist: streamlit-option-menu==0.3.6
36
- Requires-Dist: streamlit-authenticator==0.2.3
37
- Requires-Dist: streamlit-javascript==0.1.5
38
- Requires-Dist: streamlit-modal==0.1.0
39
- Requires-Dist: progress==1.6
40
- Requires-Dist: beautifulsoup4==4.12.3
41
- Requires-Dist: trino==0.327.0
42
- Requires-Dist: xlsxwriter==3.2.0
43
- Requires-Dist: psutil==5.9.8
44
- Requires-Dist: concurrent_log_handler==0.9.25
45
- Requires-Dist: cryptography==42.0.8
46
- Provides-Extra: dev
47
- Requires-Dist: invoke==2.2.0; extra == "dev"
48
- Requires-Dist: ruff==0.4.1; extra == "dev"
49
- Requires-Dist: mypy==1.9.0; extra == "dev"
50
- Requires-Dist: pre-commit==3.6.2; extra == "dev"
51
- Requires-Dist: types-PyYAML==6.0.12.20240311; extra == "dev"
52
- Requires-Dist: types-setuptools==69.2.0.20240317; extra == "dev"
53
- Requires-Dist: semver==3.0.2; extra == "dev"
54
- Requires-Dist: pytest==8.1.1; extra == "dev"
55
- Requires-Dist: pytest-cov==4.1.0; extra == "dev"
56
- Requires-Dist: tomli==2.0.1; extra == "dev"
57
- Provides-Extra: release
58
- Requires-Dist: bumpver==2023.1129; extra == "release"
59
-
60
- # DataOps Data Quality TestGen
61
- ![apache 2.0 license Badge](https://img.shields.io/badge/License%20-%20Apache%202.0%20-%20blue) ![PRs Badge](https://img.shields.io/badge/PRs%20-%20Welcome%20-%20green) [![Latest Version](https://img.shields.io/badge/dynamic/json?url=https%3A%2F%2Fhub.docker.com%2Fv2%2Frepositories%2Fdatakitchen%2Fdataops-testgen%2Ftags%2F&query=results%5B0%5D.name&label=latest%20version&color=06A04A)](https://hub.docker.com/r/datakitchen/dataops-testgen) [![Docker Pulls](https://img.shields.io/badge/dynamic/json?url=https%3A%2F%2Fhub.docker.com%2Fv2%2Frepositories%2Fdatakitchen%2Fdataops-testgen%2F&query=pull_count&style=flat&label=docker%20pulls&color=06A04A)](https://hub.docker.com/r/datakitchen/dataops-testgen) [![Documentation](https://img.shields.io/badge/docs-On%20datakitchen.io-06A04A?style=flat)](https://docs.datakitchen.io/articles/#!dataops-testgen-help/dataops-testgen-help) [![Static Badge](https://img.shields.io/badge/Slack-Join%20Discussion-blue?style=flat&logo=slack)](https://data-observability-slack.datakitchen.io/join)
62
-
63
- *<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>*
64
-
65
- ## Features
66
-
67
- What does DataKitchen's DataOps Data Quality TestGen do? It helps you understand and <b>find data issues in new data</b>.
68
- <p align="center">
69
- <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%">
70
- </p>
71
- It constantly <b>watches your data for data quality anomalies</b> and lets you drill into problems.
72
- <br></br>
73
- <p align="center">
74
- <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%">
75
- </p>
76
- A <b>single place to manage Data Quality</b> across data sets, locations, and teams.
77
- <br></br>
78
- <p align="center">
79
- <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%">
80
- </p>
81
-
82
- ## Installation with dk-installer
83
-
84
- The [dk-installer](https://github.com/DataKitchen/data-observability-installer/?tab=readme-ov-file#install-the-testgen-application) program installs DataOps Data Quality TestGen.
85
-
86
- ### Install the prerequisite software
87
-
88
- | Software | Tested Versions | Command to check version |
89
- |-------------------------|-------------------------|-------------------------------|
90
- | [Python](https://www.python.org/downloads/) <br/>- Most Linux and macOS systems have Python pre-installed. <br/>- On Windows machines, you will need to download and install it. | 3.9, 3.10, 3.11, 3.12 | `python3 --version` |
91
- | [Docker](https://docs.docker.com/get-docker/) <br/>[Docker Compose](https://docs.docker.com/compose/install/) | 25.0.3, 26.1.1, <br/> 2.24.6, 2.27.0, 2.28.1 | `docker -v` <br/> `docker compose version` |
92
-
93
- ### Download the installer
94
-
95
- On Unix-based operating systems, use the following command to download it to the current directory. We recommend creating a new, empty directory.
96
-
97
- ```shell
98
- curl -o dk-installer.py 'https://raw.githubusercontent.com/DataKitchen/data-observability-installer/main/dk-installer.py'
99
- ```
100
-
101
- * Alternatively, you can manually download the [`dk-installer.py`](https://github.com/DataKitchen/data-observability-installer/blob/main/dk-installer.py) file from the [data-observability-installer](https://github.com/DataKitchen/data-observability-installer) repository.
102
- * All commands listed below should be run from the folder containing this file.
103
- * For usage help and command options, run `python3 dk-installer.py --help` or `python3 dk-installer.py <command> --help`.
104
-
105
- ### Install the TestGen application
106
-
107
- The installation downloads the latest Docker images for TestGen and deploys a new Docker Compose application. The process may take 5~10 minutes depending on your machine and network connection.
108
-
109
- ```shell
110
- python3 dk-installer.py tg install
111
- ```
112
-
113
- The `--port` option may be used to set a custom localhost port for the application (default: 8501).
114
-
115
- To enable SSL for HTTPS support, use the `--ssl-cert-file` and `--ssl-key-file` options to specify local file paths to your SSL certificate and key files.
116
-
117
- Once the installation completes, verify that you can login to the UI with the URL and credentials provided in the output.
118
-
119
- ### Optional: Run the TestGen demo setup
120
-
121
- The [Data Observability quickstart](https://docs.datakitchen.io/articles/open-source-data-observability/data-observability-overview) walks you through DataOps Data Quality TestGen capabilities to demonstrate how it covers critical use cases for data and analytic teams.
122
-
123
- ```shell
124
- python3 dk-installer.py tg run-demo
125
- ```
126
-
127
- In the TestGen UI, you will see that new data profiling and test results have been generated.
128
-
129
- ## Installation with pip
130
-
131
- ### Install the prerequisite software
132
-
133
- | Software | Tested Versions | Command to check version |
134
- |-------------------------|-------------------------|-------------------------------|
135
- | [Python](https://www.python.org/downloads/) <br/>- Most Linux and macOS systems have Python pre-installed. <br/>- On Windows machines, you will need to download and install it. | 3.10, 3.11, 3.12 | `python3 --version` |
136
-
137
-
138
- In python's terminal
139
-
140
- ```shell
141
- pip install data-ops-testgen
142
- ```
143
-
144
- Set the following environment variables:
145
- ```
146
- TESTGEN_USERNAME=
147
- TESTGEN_PASSWORD=
148
- TG_DECRYPT_SALT=
149
- TG_DECRYPT_PASSWORD=
150
- ```
151
-
152
- ### Optional: Run the TestGen demo setup
153
- Create a DataBase:
154
- With an observability api key:
155
- ```
156
- testgen quick-start --delete-target-db --observability-api-key <OBSERVABILITY_API_KEY> --observability-api-url <OBSERVABILITY_API_URL>
157
- ```
158
- Without an observability api key:
159
- ```
160
- testgen quick-start --delete-target-db
161
- ```
162
-
163
- Run profile:
164
- ```
165
- testgen run-profile --table-group-id 0ea85e17-acbe-47fe-8394-9970725ad37d
166
- ```
167
-
168
- Run test generation:
169
- ```
170
- testgen run-test-generation --table-group-id 0ea85e17-acbe-47fe-8394-9970725ad37d
171
- ```
172
-
173
- Run test execution:
174
- ```
175
- testgen run-tests --project-key DEFAULT --test-suite-key default-suite-1
176
- ```
177
-
178
- Simulate a fast forward in the target data:
179
- ```
180
- testgen quick-start --simulate-fast-forward
181
- ```
182
-
183
- Modify Streamlit's internals with custom static files for the first time:
184
- ```
185
- testgen ui patch-streamlit -f
186
- ```
187
-
188
-
189
- ### To run TestGen UI using pip
190
- Run TestGen UI
191
- ```
192
- testgen ui run
193
- ```
194
-
195
-
196
- ## Product Documentation
197
-
198
- [DataOps Data Quality TestGen](https://docs.datakitchen.io/articles/dataops-testgen-help/dataops-testgen-help)
199
-
200
- ## Useful Commands
201
-
202
- The [dk-installer](https://github.com/DataKitchen/data-observability-installer/?tab=readme-ov-file#install-the-testgen-application) and [docker compose CLI](https://docs.docker.com/compose/reference/) can be used to operate the installed TestGen application. All commands must be run in the same folder that contains the `dk-installer.py` and `docker-compose.yml` files used by the installation.
203
-
204
- ### Remove demo data
205
-
206
- After completing the quickstart, you can remove the demo data from the application with the following command.
207
-
208
- ```shell
209
- python3 dk-installer.py tg delete-demo
210
- ```
211
-
212
- ### Upgrade to latest version
213
-
214
- New releases of TestGen are announced on the `#releases` channel on [Data Observability Slack](https://data-observability-slack.datakitchen.io/join), and release notes can be found on the [DataKitchen documentation portal](https://docs.datakitchen.io/articles/#!dataops-testgen-help/testgen-release-notes/a/h1_1691719522). Use the following command to upgrade to the latest released version.
215
-
216
- ```shell
217
- python3 dk-installer.py tg upgrade
218
- ```
219
-
220
- ### Uninstall the application
221
-
222
- The following command uninstalls the Docker Compose application and removes all data, containers, and images related to TestGen from your machine.
223
-
224
- ```shell
225
- python3 dk-installer.py tg delete
226
- ```
227
-
228
- ### Access the _testgen_ CLI
229
-
230
- The [_testgen_ command line](https://docs.datakitchen.io/articles/#!dataops-testgen-help/testgen-commands-and-details) can be accessed within the running container.
231
-
232
- ```shell
233
- docker compose exec engine bash
234
- ```
235
-
236
- Use `exit` to return to the regular terminal.
237
-
238
- ### Stop the application
239
-
240
- ```shell
241
- docker compose down
242
- ```
243
-
244
- ### Restart the application
245
-
246
- ```shell
247
- docker compose up -d
248
- ```
249
-
250
- ## What Next?
251
-
252
- ### Getting started guide
253
- We recommend you start by going through the [Data Observability Overview Demo](https://docs.datakitchen.io/articles/open-source-data-observability/data-observability-overview).
254
-
255
- ### Support
256
- For support requests, [join the Data Observability Slack](https://data-observability-slack.datakitchen.io/join) 👋 and post on the `#support` channel.
257
-
258
- ### Connect to your database
259
- Follow [these instructions](https://docs.datakitchen.io/articles/#!dataops-testgen-help/connect-your-database) to improve the quality of data in your database.
260
-
261
- ### Community
262
- Talk and learn with other data practitioners who are building with DataKitchen. Share knowledge, get help, and contribute to our open-source project.
263
-
264
- Join our community here:
265
-
266
- * 👋 [Join us on Slack](https://data-observability-slack.datakitchen.io/join), this is also how you get support (see above)
267
-
268
- * 🌟 [Star us on GitHub](https://github.com/DataKitchen/data-observability-installer)
269
-
270
- * 🐦 [Follow us on Twitter](https://twitter.com/i/flow/login?redirect_after_login=%2Fdatakitchen_io)
271
-
272
- * 🕴️ [Follow us on LinkedIn](https://www.linkedin.com/company/datakitchen)
273
-
274
- * 📺 [Get Free DataOps Fundamentals Certification](https://info.datakitchen.io/training-certification-dataops-fundamentals)
275
-
276
- * 📚 [Read our blog posts](https://datakitchen.io/blog/)
277
-
278
- * 🗃 [Sign The DataOps Manifesto](https://DataOpsManifesto.org)
279
-
280
- * 🗃 [Sign The Data Journey Manifesto](https://DataJourneyManifesto.org)
281
-
282
-
283
- ### Contributing
284
- For details on contributing or running the project for development, check out our [contributing guide](CONTRIBUTING.md).
285
-
286
- ### License
287
- DataKitchen's DataOps Data Quality TestGen is Apache 2.0 licensed.
1
+ Metadata-Version: 2.1
2
+ Name: dataops-testgen
3
+ Version: 2.15.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/articles/#!dataops-testgen-help/dataops-testgen-help
10
+ Project-URL: Release Notes, https://docs.datakitchen.io/articles/#!dataops-testgen-help/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.10
18
+ Classifier: Programming Language :: Python :: 3.11
19
+ Classifier: Programming Language :: Python :: 3.12
20
+ Classifier: Topic :: System :: Monitoring
21
+ Requires-Python: >=3.10
22
+ Description-Content-Type: text/markdown
23
+ License-File: LICENSE
24
+ License-File: NOTICE
25
+ Requires-Dist: PyYAML==6.0.1
26
+ Requires-Dist: click==8.1.3
27
+ Requires-Dist: sqlalchemy==1.4.46
28
+ Requires-Dist: snowflake-sqlalchemy==1.4.7
29
+ Requires-Dist: pyodbc==5.0.0
30
+ Requires-Dist: psycopg2-binary==2.9.9
31
+ Requires-Dist: pycryptodome==3.17
32
+ Requires-Dist: prettytable==3.7.0
33
+ Requires-Dist: requests_extensions==1.1.3
34
+ Requires-Dist: bz2file==0.98
35
+ Requires-Dist: trogon==0.4.0
36
+ Requires-Dist: numpy==1.26.4
37
+ Requires-Dist: pandas==2.1.4
38
+ Requires-Dist: streamlit==1.38.0
39
+ Requires-Dist: streamlit-extras==0.3.0
40
+ Requires-Dist: streamlit-aggrid==0.3.4.post3
41
+ Requires-Dist: streamlit-antd-components==0.2.2
42
+ Requires-Dist: streamlit-plotly-events==0.0.6
43
+ Requires-Dist: plotly_express==0.4.1
44
+ Requires-Dist: streamlit-option-menu==0.3.6
45
+ Requires-Dist: streamlit-authenticator==0.2.3
46
+ Requires-Dist: streamlit-javascript==0.1.5
47
+ Requires-Dist: progress==1.6
48
+ Requires-Dist: beautifulsoup4==4.12.3
49
+ Requires-Dist: trino==0.327.0
50
+ Requires-Dist: xlsxwriter==3.2.0
51
+ Requires-Dist: psutil==5.9.8
52
+ Requires-Dist: concurrent_log_handler==0.9.25
53
+ Requires-Dist: cryptography==42.0.8
54
+ Requires-Dist: validators==0.33.0
55
+ Provides-Extra: dev
56
+ Requires-Dist: invoke==2.2.0; extra == "dev"
57
+ Requires-Dist: ruff==0.4.1; extra == "dev"
58
+ Requires-Dist: mypy==1.9.0; extra == "dev"
59
+ Requires-Dist: pre-commit==3.6.2; extra == "dev"
60
+ Requires-Dist: types-PyYAML==6.0.12.20240311; extra == "dev"
61
+ Requires-Dist: types-setuptools==69.2.0.20240317; extra == "dev"
62
+ Requires-Dist: semver==3.0.2; extra == "dev"
63
+ Requires-Dist: pytest==8.1.1; extra == "dev"
64
+ Requires-Dist: pytest-cov==4.1.0; extra == "dev"
65
+ Requires-Dist: tomli==2.0.1; extra == "dev"
66
+ Provides-Extra: release
67
+ Requires-Dist: build==1.2.1; extra == "release"
68
+ Requires-Dist: bumpver==2023.1129; extra == "release"
69
+ Requires-Dist: twine==5.1.1; extra == "release"
70
+
71
+ # DataOps Data Quality TestGen
72
+ ![apache 2.0 license Badge](https://img.shields.io/badge/License%20-%20Apache%202.0%20-%20blue) ![PRs Badge](https://img.shields.io/badge/PRs%20-%20Welcome%20-%20green) [![Latest Version](https://img.shields.io/badge/dynamic/json?url=https%3A%2F%2Fhub.docker.com%2Fv2%2Frepositories%2Fdatakitchen%2Fdataops-testgen%2Ftags%2F&query=results%5B0%5D.name&label=latest%20version&color=06A04A)](https://hub.docker.com/r/datakitchen/dataops-testgen) [![Docker Pulls](https://img.shields.io/badge/dynamic/json?url=https%3A%2F%2Fhub.docker.com%2Fv2%2Frepositories%2Fdatakitchen%2Fdataops-testgen%2F&query=pull_count&style=flat&label=docker%20pulls&color=06A04A)](https://hub.docker.com/r/datakitchen/dataops-testgen) [![Documentation](https://img.shields.io/badge/docs-On%20datakitchen.io-06A04A?style=flat)](https://docs.datakitchen.io/articles/#!dataops-testgen-help/dataops-testgen-help) [![Static Badge](https://img.shields.io/badge/Slack-Join%20Discussion-blue?style=flat&logo=slack)](https://data-observability-slack.datakitchen.io/join)
73
+
74
+ *<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>*
75
+
76
+ ## Features
77
+
78
+ What does DataKitchen's DataOps Data Quality TestGen do? It helps you understand and <b>find data issues in new data</b>.
79
+ <p align="center">
80
+ <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%">
81
+ </p>
82
+ It constantly <b>watches your data for data quality anomalies</b> and lets you drill into problems.
83
+ <br></br>
84
+ <p align="center">
85
+ <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%">
86
+ </p>
87
+ A <b>single place to manage Data Quality</b> across data sets, locations, and teams.
88
+ <br></br>
89
+ <p align="center">
90
+ <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%">
91
+ </p>
92
+
93
+ ## Installation with dk-installer (recommended)
94
+
95
+ The [dk-installer](https://github.com/DataKitchen/data-observability-installer/?tab=readme-ov-file#install-the-testgen-application) program installs DataOps Data Quality TestGen as a [Docker Compose](https://docs.docker.com/compose/) application. This is the recommended mode of installation as Docker encapsulates and isolates the application from other software on your machine and does not require you to manage Python dependencies.
96
+
97
+ ### Install the prerequisite software
98
+
99
+ | Software | Tested Versions | Command to check version |
100
+ |-------------------------|-------------------------|-------------------------------|
101
+ | [Python](https://www.python.org/downloads/) <br/>- Most Linux and macOS systems have Python pre-installed. <br/>- On Windows machines, you will need to download and install it. | 3.9, 3.10, 3.11, 3.12 | `python3 --version` |
102
+ | [Docker](https://docs.docker.com/get-docker/) <br/>[Docker Compose](https://docs.docker.com/compose/install/) | 25.0.3, 26.1.1, <br/> 2.24.6, 2.27.0, 2.28.1 | `docker -v` <br/> `docker compose version` |
103
+
104
+ ### Download the installer
105
+
106
+ On Unix-based operating systems, use the following command to download it to the current directory. We recommend creating a new, empty directory.
107
+
108
+ ```shell
109
+ curl -o dk-installer.py 'https://raw.githubusercontent.com/DataKitchen/data-observability-installer/main/dk-installer.py'
110
+ ```
111
+
112
+ * Alternatively, you can manually download the [`dk-installer.py`](https://github.com/DataKitchen/data-observability-installer/blob/main/dk-installer.py) file from the [data-observability-installer](https://github.com/DataKitchen/data-observability-installer) repository.
113
+ * All commands listed below should be run from the folder containing this file.
114
+ * For usage help and command options, run `python3 dk-installer.py --help` or `python3 dk-installer.py <command> --help`.
115
+
116
+ ### Install the TestGen application
117
+
118
+ The installation downloads the latest Docker images for TestGen and deploys a new Docker Compose application. The process may take 5~10 minutes depending on your machine and network connection.
119
+
120
+ ```shell
121
+ python3 dk-installer.py tg install
122
+ ```
123
+
124
+ The `--port` option may be used to set a custom localhost port for the application (default: 8501).
125
+
126
+ To enable SSL for HTTPS support, use the `--ssl-cert-file` and `--ssl-key-file` options to specify local file paths to your SSL certificate and key files.
127
+
128
+ Once the installation completes, verify that you can login to the UI with the URL and credentials provided in the output.
129
+
130
+ ### Optional: Run the TestGen demo setup
131
+
132
+ The [Data Observability quickstart](https://docs.datakitchen.io/articles/open-source-data-observability/data-observability-overview) walks you through DataOps Data Quality TestGen capabilities to demonstrate how it covers critical use cases for data and analytic teams.
133
+
134
+ ```shell
135
+ python3 dk-installer.py tg run-demo
136
+ ```
137
+
138
+ In the TestGen UI, you will see that new data profiling and test results have been generated.
139
+
140
+ ## Installation with pip
141
+
142
+ As an alternative to the Docker Compose [installation with dk-installer (recommended)](#installation-with-dk-installer-recommended), DataOps Data Quality TestGen can also be installed as a Python package via [pip](https://pip.pypa.io/en/stable/). This mode of installation uses the [dataops-testgen](https://pypi.org/project/dataops-testgen/) package published to PyPI, and it requires a PostgreSQL instance to be provisioned for the application database.
143
+
144
+ ### Install the prerequisite software
145
+
146
+ | Software | Tested Versions | Command to check version |
147
+ |----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|------------------|------------------------------|
148
+ | [Python](https://www.python.org/downloads/) <br/>- Most Linux and macOS systems have Python pre-installed. <br/>- On Windows machines, you will need to download and install it. | 3.10, 3.11, 3.12 | `python3 --version` |
149
+ | [PostgreSQL](https://www.postgresql.org/download/) | 14.1, 15.8, 16.4 | `psql --version`|
150
+
151
+ ### Install the TestGen package
152
+
153
+ We recommend using a Python virtual environment to avoid any dependency conflicts with other applications installed on your machine. The [venv](https://docs.python.org/3/library/venv.html#creating-virtual-environments) module, which is part of the Python standard library, or other third-party tools, like [virtualenv](https://virtualenv.pypa.io/en/latest/) or [conda](https://docs.conda.io/en/latest/), can be used.
154
+
155
+ Create and activate a virtual environment with a TestGen-compatible version of Python (`>=3.10`). The steps may vary based on your operating system and Python installation - the [Python packaging user guide](https://packaging.python.org/en/latest/tutorials/installing-packages/) is a useful reference.
156
+
157
+ _On Linux/Mac_
158
+ ```shell
159
+ python3 -m venv venv
160
+ source venv/bin/activate
161
+ ```
162
+
163
+ _On Windows_
164
+ ```powershell
165
+ py -3.10 -m venv venv
166
+ venv\Scripts\activate
167
+ ```
168
+
169
+ Within the virtual environment, install the TestGen package with pip.
170
+ ```shell
171
+ pip install dataops-testgen
172
+ ```
173
+
174
+ Verify that the [_testgen_ command line](https://docs.datakitchen.io/articles/#!dataops-testgen-help/testgen-commands-and-details) works.
175
+ ```shell
176
+ testgen --help
177
+ ```
178
+
179
+ ### Set up the application database in PostgresSQL
180
+
181
+ Create a `local.env` file with the following environment variables, replacing the `<value>` placeholders with appropriate values. Refer to the [TestGen Configuration](docs/configuration.md) document for more details, defaults, and other supported configuration.
182
+ ```shell
183
+ # Connection parameters for the PostgreSQL server
184
+ export TG_METADATA_DB_HOST=<postgres_hostname>
185
+ export TG_METADATA_DB_PORT=<postgres_port>
186
+
187
+ # Connection credentials for the PostgreSQL server
188
+ # This role must have privileges to create roles, users, database and schema so that the application database can be initialized
189
+ export TG_METADATA_DB_USER=<postgres_username>
190
+ export TG_METADATA_DB_PASSWORD=<postgres_password>
191
+
192
+ # Set a password and arbitrary string (the "salt") to be used for encrypting secrets in the application database
193
+ export TG_DECRYPT_PASSWORD=<encryption_password>
194
+ export TG_DECRYPT_SALT=<encryption_salt>
195
+
196
+ # Set credentials for the default admin user to be created for TestGen
197
+ export TESTGEN_USERNAME=<username>
198
+ export TESTGEN_PASSWORD=<password>
199
+
200
+ # Set an accessible path for storing application logs
201
+ export TESTGEN_LOG_FILE_PATH=<path_for_logs>
202
+ ```
203
+
204
+ Source the file to apply the environment variables. For the Windows equivalent, refer to [this guide](https://bennett4.medium.com/windows-alternative-to-source-env-for-setting-environment-variables-606be2a6d3e1).
205
+ ```shell
206
+ source local.env
207
+ ```
208
+
209
+ Make sure the PostgreSQL database server is up and running. Initialize the application database for TestGen.
210
+ ```shell
211
+ testgen setup-system-db --yes
212
+ ```
213
+
214
+ ### Run the TestGen UI
215
+
216
+ Run the following command to start the TestGen UI. It will open the browser at [http://localhost:8501](http://localhost:8501).
217
+
218
+ ```shell
219
+ testgen ui run
220
+ ```
221
+
222
+ Verify that you can login to the UI with the `TESTGEN_USERNAME` and `TESTGEN_PASSWORD` values that you configured in the environment variables.
223
+
224
+ ### Optional: Run the TestGen demo setup
225
+
226
+ The [Data Observability quickstart](https://docs.datakitchen.io/articles/open-source-data-observability/data-observability-overview) walks you through DataOps Data Quality TestGen capabilities to demonstrate how it covers critical use cases for data and analytic teams.
227
+
228
+ ```shell
229
+ testgen quick-start --delete-target-db
230
+ testgen run-profile --table-group-id 0ea85e17-acbe-47fe-8394-9970725ad37d
231
+ testgen run-test-generation --table-group-id 0ea85e17-acbe-47fe-8394-9970725ad37d
232
+ testgen run-tests --project-key DEFAULT --test-suite-key default-suite-1
233
+ testgen quick-start --simulate-fast-forward
234
+ ```
235
+
236
+ In the TestGen UI, you will see that new data profiling and test results have been generated.
237
+
238
+
239
+ ## Product Documentation
240
+
241
+ [DataOps Data Quality TestGen](https://docs.datakitchen.io/articles/dataops-testgen-help/dataops-testgen-help)
242
+
243
+ ## Useful Commands
244
+
245
+ The [dk-installer](https://github.com/DataKitchen/data-observability-installer/?tab=readme-ov-file#install-the-testgen-application) and [docker compose CLI](https://docs.docker.com/compose/reference/) can be used to operate the TestGen application installed using dk-installer. All commands must be run in the same folder that contains the `dk-installer.py` and `docker-compose.yml` files used by the installation.
246
+
247
+ ### Remove demo data
248
+
249
+ After completing the quickstart, you can remove the demo data from the application with the following command.
250
+
251
+ ```shell
252
+ python3 dk-installer.py tg delete-demo
253
+ ```
254
+
255
+ ### Upgrade to latest version
256
+
257
+ New releases of TestGen are announced on the `#releases` channel on [Data Observability Slack](https://data-observability-slack.datakitchen.io/join), and release notes can be found on the [DataKitchen documentation portal](https://docs.datakitchen.io/articles/#!dataops-testgen-help/testgen-release-notes/a/h1_1691719522). Use the following command to upgrade to the latest released version.
258
+
259
+ ```shell
260
+ python3 dk-installer.py tg upgrade
261
+ ```
262
+
263
+ ### Uninstall the application
264
+
265
+ The following command uninstalls the Docker Compose application and removes all data, containers, and images related to TestGen from your machine.
266
+
267
+ ```shell
268
+ python3 dk-installer.py tg delete
269
+ ```
270
+
271
+ ### Access the _testgen_ CLI
272
+
273
+ The [_testgen_ command line](https://docs.datakitchen.io/articles/#!dataops-testgen-help/testgen-commands-and-details) can be accessed within the running container.
274
+
275
+ ```shell
276
+ docker compose exec engine bash
277
+ ```
278
+
279
+ Use `exit` to return to the regular terminal.
280
+
281
+ ### Stop the application
282
+
283
+ ```shell
284
+ docker compose down
285
+ ```
286
+
287
+ ### Restart the application
288
+
289
+ ```shell
290
+ docker compose up -d
291
+ ```
292
+
293
+ ## What Next?
294
+
295
+ ### Getting started guide
296
+ We recommend you start by going through the [Data Observability Overview Demo](https://docs.datakitchen.io/articles/open-source-data-observability/data-observability-overview).
297
+
298
+ ### Support
299
+ For support requests, [join the Data Observability Slack](https://data-observability-slack.datakitchen.io/join) 👋 and post on the `#support` channel.
300
+
301
+ ### Connect to your database
302
+ Follow [these instructions](https://docs.datakitchen.io/articles/#!dataops-testgen-help/connect-your-database) to improve the quality of data in your database.
303
+
304
+ ### Community
305
+ Talk and learn with other data practitioners who are building with DataKitchen. Share knowledge, get help, and contribute to our open-source project.
306
+
307
+ Join our community here:
308
+
309
+ * 👋 [Join us on Slack](https://data-observability-slack.datakitchen.io/join), this is also how you get support (see above)
310
+
311
+ * 🌟 [Star us on GitHub](https://github.com/DataKitchen/data-observability-installer)
312
+
313
+ * 🐦 [Follow us on Twitter](https://twitter.com/i/flow/login?redirect_after_login=%2Fdatakitchen_io)
314
+
315
+ * 🕴️ [Follow us on LinkedIn](https://www.linkedin.com/company/datakitchen)
316
+
317
+ * 📺 [Get Free DataOps Fundamentals Certification](https://info.datakitchen.io/training-certification-dataops-fundamentals)
318
+
319
+ * 📚 [Read our blog posts](https://datakitchen.io/blog/)
320
+
321
+ * 🗃 [Sign The DataOps Manifesto](https://DataOpsManifesto.org)
322
+
323
+ * 🗃 [Sign The Data Journey Manifesto](https://DataJourneyManifesto.org)
324
+
325
+
326
+ ### Contributing
327
+ For details on contributing or running the project for development, check out our [contributing guide](CONTRIBUTING.md).
328
+
329
+ ### License
330
+ DataKitchen's DataOps Data Quality TestGen is Apache 2.0 licensed.