google-pso-data-validator 8.7.0__tar.gz → 8.7.1__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 (103) hide show
  1. {google_pso_data_validator-8.7.0/google_pso_data_validator.egg-info → google_pso_data_validator-8.7.1}/PKG-INFO +1 -1
  2. {google_pso_data_validator-8.7.0 → google_pso_data_validator-8.7.1}/data_validation/__main__.py +2 -3
  3. {google_pso_data_validator-8.7.0 → google_pso_data_validator-8.7.1}/data_validation/app.py +12 -14
  4. {google_pso_data_validator-8.7.0 → google_pso_data_validator-8.7.1}/data_validation/consts.py +3 -1
  5. {google_pso_data_validator-8.7.0 → google_pso_data_validator-8.7.1/google_pso_data_validator.egg-info}/PKG-INFO +1 -1
  6. {google_pso_data_validator-8.7.0 → google_pso_data_validator-8.7.1}/setup.py +1 -1
  7. {google_pso_data_validator-8.7.0 → google_pso_data_validator-8.7.1}/LICENSE +0 -0
  8. {google_pso_data_validator-8.7.0 → google_pso_data_validator-8.7.1}/README.md +0 -0
  9. {google_pso_data_validator-8.7.0 → google_pso_data_validator-8.7.1}/data_validation/__init__.py +0 -0
  10. {google_pso_data_validator-8.7.0 → google_pso_data_validator-8.7.1}/data_validation/cli_tools.py +0 -0
  11. {google_pso_data_validator-8.7.0 → google_pso_data_validator-8.7.1}/data_validation/client_info.py +0 -0
  12. {google_pso_data_validator-8.7.0 → google_pso_data_validator-8.7.1}/data_validation/clients.py +0 -0
  13. {google_pso_data_validator-8.7.0 → google_pso_data_validator-8.7.1}/data_validation/combiner.py +0 -0
  14. {google_pso_data_validator-8.7.0 → google_pso_data_validator-8.7.1}/data_validation/config_manager.py +0 -0
  15. {google_pso_data_validator-8.7.0 → google_pso_data_validator-8.7.1}/data_validation/data_validation.py +0 -0
  16. {google_pso_data_validator-8.7.0 → google_pso_data_validator-8.7.1}/data_validation/exceptions.py +0 -0
  17. {google_pso_data_validator-8.7.0 → google_pso_data_validator-8.7.1}/data_validation/find_tables.py +0 -0
  18. {google_pso_data_validator-8.7.0 → google_pso_data_validator-8.7.1}/data_validation/gcs_helper.py +0 -0
  19. {google_pso_data_validator-8.7.0 → google_pso_data_validator-8.7.1}/data_validation/jellyfish_distance.py +0 -0
  20. {google_pso_data_validator-8.7.0 → google_pso_data_validator-8.7.1}/data_validation/metadata.py +0 -0
  21. {google_pso_data_validator-8.7.0 → google_pso_data_validator-8.7.1}/data_validation/partition_builder.py +0 -0
  22. {google_pso_data_validator-8.7.0 → google_pso_data_validator-8.7.1}/data_validation/query_builder/__init__.py +0 -0
  23. {google_pso_data_validator-8.7.0 → google_pso_data_validator-8.7.1}/data_validation/query_builder/partition_row_builder.py +0 -0
  24. {google_pso_data_validator-8.7.0 → google_pso_data_validator-8.7.1}/data_validation/query_builder/query_builder.py +0 -0
  25. {google_pso_data_validator-8.7.0 → google_pso_data_validator-8.7.1}/data_validation/query_builder/random_row_builder.py +0 -0
  26. {google_pso_data_validator-8.7.0 → google_pso_data_validator-8.7.1}/data_validation/raw_query.py +0 -0
  27. {google_pso_data_validator-8.7.0 → google_pso_data_validator-8.7.1}/data_validation/result_handlers/__init__.py +0 -0
  28. {google_pso_data_validator-8.7.0 → google_pso_data_validator-8.7.1}/data_validation/result_handlers/base_backend.py +0 -0
  29. {google_pso_data_validator-8.7.0 → google_pso_data_validator-8.7.1}/data_validation/result_handlers/bigquery.py +0 -0
  30. {google_pso_data_validator-8.7.0 → google_pso_data_validator-8.7.1}/data_validation/result_handlers/factory.py +0 -0
  31. {google_pso_data_validator-8.7.0 → google_pso_data_validator-8.7.1}/data_validation/result_handlers/postgres.py +0 -0
  32. {google_pso_data_validator-8.7.0 → google_pso_data_validator-8.7.1}/data_validation/result_handlers/text.py +0 -0
  33. {google_pso_data_validator-8.7.0 → google_pso_data_validator-8.7.1}/data_validation/schema_validation.py +0 -0
  34. {google_pso_data_validator-8.7.0 → google_pso_data_validator-8.7.1}/data_validation/secret_manager.py +0 -0
  35. {google_pso_data_validator-8.7.0 → google_pso_data_validator-8.7.1}/data_validation/state_manager.py +0 -0
  36. {google_pso_data_validator-8.7.0 → google_pso_data_validator-8.7.1}/data_validation/util.py +0 -0
  37. {google_pso_data_validator-8.7.0 → google_pso_data_validator-8.7.1}/data_validation/validation_builder.py +0 -0
  38. {google_pso_data_validator-8.7.0 → google_pso_data_validator-8.7.1}/google_pso_data_validator.egg-info/SOURCES.txt +0 -0
  39. {google_pso_data_validator-8.7.0 → google_pso_data_validator-8.7.1}/google_pso_data_validator.egg-info/dependency_links.txt +0 -0
  40. {google_pso_data_validator-8.7.0 → google_pso_data_validator-8.7.1}/google_pso_data_validator.egg-info/entry_points.txt +0 -0
  41. {google_pso_data_validator-8.7.0 → google_pso_data_validator-8.7.1}/google_pso_data_validator.egg-info/requires.txt +0 -0
  42. {google_pso_data_validator-8.7.0 → google_pso_data_validator-8.7.1}/google_pso_data_validator.egg-info/top_level.txt +0 -0
  43. {google_pso_data_validator-8.7.0 → google_pso_data_validator-8.7.1}/setup.cfg +0 -0
  44. {google_pso_data_validator-8.7.0 → google_pso_data_validator-8.7.1}/third_party/ibis/ibis_addon/__init__.py +0 -0
  45. {google_pso_data_validator-8.7.0 → google_pso_data_validator-8.7.1}/third_party/ibis/ibis_addon/api.py +0 -0
  46. {google_pso_data_validator-8.7.0 → google_pso_data_validator-8.7.1}/third_party/ibis/ibis_addon/operations.py +0 -0
  47. {google_pso_data_validator-8.7.0 → google_pso_data_validator-8.7.1}/third_party/ibis/ibis_bigquery/__init__.py +0 -0
  48. {google_pso_data_validator-8.7.0 → google_pso_data_validator-8.7.1}/third_party/ibis/ibis_bigquery/api.py +0 -0
  49. {google_pso_data_validator-8.7.0 → google_pso_data_validator-8.7.1}/third_party/ibis/ibis_bigquery/registry.py +0 -0
  50. {google_pso_data_validator-8.7.0 → google_pso_data_validator-8.7.1}/third_party/ibis/ibis_cloud_spanner/__init__.py +0 -0
  51. {google_pso_data_validator-8.7.0 → google_pso_data_validator-8.7.1}/third_party/ibis/ibis_cloud_spanner/api.py +0 -0
  52. {google_pso_data_validator-8.7.0 → google_pso_data_validator-8.7.1}/third_party/ibis/ibis_cloud_spanner/client.py +0 -0
  53. {google_pso_data_validator-8.7.0 → google_pso_data_validator-8.7.1}/third_party/ibis/ibis_cloud_spanner/compiler.py +0 -0
  54. {google_pso_data_validator-8.7.0 → google_pso_data_validator-8.7.1}/third_party/ibis/ibis_cloud_spanner/datatypes.py +0 -0
  55. {google_pso_data_validator-8.7.0 → google_pso_data_validator-8.7.1}/third_party/ibis/ibis_cloud_spanner/registry.py +0 -0
  56. {google_pso_data_validator-8.7.0 → google_pso_data_validator-8.7.1}/third_party/ibis/ibis_cloud_spanner/tests/__init__.py +0 -0
  57. {google_pso_data_validator-8.7.0 → google_pso_data_validator-8.7.1}/third_party/ibis/ibis_cloud_spanner/tests/conftest.py +0 -0
  58. {google_pso_data_validator-8.7.0 → google_pso_data_validator-8.7.1}/third_party/ibis/ibis_cloud_spanner/to_pandas.py +0 -0
  59. {google_pso_data_validator-8.7.0 → google_pso_data_validator-8.7.1}/third_party/ibis/ibis_db2/__init__.py +0 -0
  60. {google_pso_data_validator-8.7.0 → google_pso_data_validator-8.7.1}/third_party/ibis/ibis_db2/api.py +0 -0
  61. {google_pso_data_validator-8.7.0 → google_pso_data_validator-8.7.1}/third_party/ibis/ibis_db2/compiler.py +0 -0
  62. {google_pso_data_validator-8.7.0 → google_pso_data_validator-8.7.1}/third_party/ibis/ibis_db2/datatypes.py +0 -0
  63. {google_pso_data_validator-8.7.0 → google_pso_data_validator-8.7.1}/third_party/ibis/ibis_db2/registry.py +0 -0
  64. {google_pso_data_validator-8.7.0 → google_pso_data_validator-8.7.1}/third_party/ibis/ibis_db2_zos/__init__.py +0 -0
  65. {google_pso_data_validator-8.7.0 → google_pso_data_validator-8.7.1}/third_party/ibis/ibis_db2_zos/api.py +0 -0
  66. {google_pso_data_validator-8.7.0 → google_pso_data_validator-8.7.1}/third_party/ibis/ibis_db2_zos/compiler.py +0 -0
  67. {google_pso_data_validator-8.7.0 → google_pso_data_validator-8.7.1}/third_party/ibis/ibis_db2_zos/registry.py +0 -0
  68. {google_pso_data_validator-8.7.0 → google_pso_data_validator-8.7.1}/third_party/ibis/ibis_impala/__init__.py +0 -0
  69. {google_pso_data_validator-8.7.0 → google_pso_data_validator-8.7.1}/third_party/ibis/ibis_impala/api.py +0 -0
  70. {google_pso_data_validator-8.7.0 → google_pso_data_validator-8.7.1}/third_party/ibis/ibis_impala/registry.py +0 -0
  71. {google_pso_data_validator-8.7.0 → google_pso_data_validator-8.7.1}/third_party/ibis/ibis_mssql/__init__.py +0 -0
  72. {google_pso_data_validator-8.7.0 → google_pso_data_validator-8.7.1}/third_party/ibis/ibis_mssql/api.py +0 -0
  73. {google_pso_data_validator-8.7.0 → google_pso_data_validator-8.7.1}/third_party/ibis/ibis_mssql/datatypes.py +0 -0
  74. {google_pso_data_validator-8.7.0 → google_pso_data_validator-8.7.1}/third_party/ibis/ibis_mssql/registry.py +0 -0
  75. {google_pso_data_validator-8.7.0 → google_pso_data_validator-8.7.1}/third_party/ibis/ibis_mysql/__init__.py +0 -0
  76. {google_pso_data_validator-8.7.0 → google_pso_data_validator-8.7.1}/third_party/ibis/ibis_mysql/base_sql_compiler/__init__.py +0 -0
  77. {google_pso_data_validator-8.7.0 → google_pso_data_validator-8.7.1}/third_party/ibis/ibis_mysql/base_sql_compiler/select_builder.py +0 -0
  78. {google_pso_data_validator-8.7.0 → google_pso_data_validator-8.7.1}/third_party/ibis/ibis_mysql/compiler.py +0 -0
  79. {google_pso_data_validator-8.7.0 → google_pso_data_validator-8.7.1}/third_party/ibis/ibis_oracle/__init__.py +0 -0
  80. {google_pso_data_validator-8.7.0 → google_pso_data_validator-8.7.1}/third_party/ibis/ibis_oracle/api.py +0 -0
  81. {google_pso_data_validator-8.7.0 → google_pso_data_validator-8.7.1}/third_party/ibis/ibis_oracle/compiler.py +0 -0
  82. {google_pso_data_validator-8.7.0 → google_pso_data_validator-8.7.1}/third_party/ibis/ibis_oracle/datatypes.py +0 -0
  83. {google_pso_data_validator-8.7.0 → google_pso_data_validator-8.7.1}/third_party/ibis/ibis_oracle/registry.py +0 -0
  84. {google_pso_data_validator-8.7.0 → google_pso_data_validator-8.7.1}/third_party/ibis/ibis_postgres/__init__.py +0 -0
  85. {google_pso_data_validator-8.7.0 → google_pso_data_validator-8.7.1}/third_party/ibis/ibis_postgres/client.py +0 -0
  86. {google_pso_data_validator-8.7.0 → google_pso_data_validator-8.7.1}/third_party/ibis/ibis_postgres/datatypes.py +0 -0
  87. {google_pso_data_validator-8.7.0 → google_pso_data_validator-8.7.1}/third_party/ibis/ibis_postgres/registry.py +0 -0
  88. {google_pso_data_validator-8.7.0 → google_pso_data_validator-8.7.1}/third_party/ibis/ibis_redshift/__init__.py +0 -0
  89. {google_pso_data_validator-8.7.0 → google_pso_data_validator-8.7.1}/third_party/ibis/ibis_redshift/api.py +0 -0
  90. {google_pso_data_validator-8.7.0 → google_pso_data_validator-8.7.1}/third_party/ibis/ibis_redshift/compiler.py +0 -0
  91. {google_pso_data_validator-8.7.0 → google_pso_data_validator-8.7.1}/third_party/ibis/ibis_snowflake/__init__.py +0 -0
  92. {google_pso_data_validator-8.7.0 → google_pso_data_validator-8.7.1}/third_party/ibis/ibis_snowflake/api.py +0 -0
  93. {google_pso_data_validator-8.7.0 → google_pso_data_validator-8.7.1}/third_party/ibis/ibis_snowflake/datatypes.py +0 -0
  94. {google_pso_data_validator-8.7.0 → google_pso_data_validator-8.7.1}/third_party/ibis/ibis_sybase/__init__.py +0 -0
  95. {google_pso_data_validator-8.7.0 → google_pso_data_validator-8.7.1}/third_party/ibis/ibis_sybase/api.py +0 -0
  96. {google_pso_data_validator-8.7.0 → google_pso_data_validator-8.7.1}/third_party/ibis/ibis_sybase/compiler.py +0 -0
  97. {google_pso_data_validator-8.7.0 → google_pso_data_validator-8.7.1}/third_party/ibis/ibis_sybase/datatypes.py +0 -0
  98. {google_pso_data_validator-8.7.0 → google_pso_data_validator-8.7.1}/third_party/ibis/ibis_sybase/registry.py +0 -0
  99. {google_pso_data_validator-8.7.0 → google_pso_data_validator-8.7.1}/third_party/ibis/ibis_teradata/__init__.py +0 -0
  100. {google_pso_data_validator-8.7.0 → google_pso_data_validator-8.7.1}/third_party/ibis/ibis_teradata/api.py +0 -0
  101. {google_pso_data_validator-8.7.0 → google_pso_data_validator-8.7.1}/third_party/ibis/ibis_teradata/compiler.py +0 -0
  102. {google_pso_data_validator-8.7.0 → google_pso_data_validator-8.7.1}/third_party/ibis/ibis_teradata/datatypes.py +0 -0
  103. {google_pso_data_validator-8.7.0 → google_pso_data_validator-8.7.1}/third_party/ibis/ibis_teradata/registry.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: google-pso-data-validator
3
- Version: 8.7.0
3
+ Version: 8.7.1
4
4
  Summary: A package to enable easy data validation
5
5
  Author: PSO DVT Engineering team
6
6
  Author-email: data-validator-eng@google.com
@@ -12,6 +12,7 @@
12
12
  # See the License for the specific language governing permissions and
13
13
  # limitations under the License.
14
14
 
15
+ import copy
15
16
  import json
16
17
  import logging
17
18
  import os
@@ -489,9 +490,7 @@ def convert_config_to_json(config_managers: list) -> dict:
489
490
  "JSON configs can only be created for single table validations."
490
491
  )
491
492
  config_manager = config_managers[0]
492
- json_config = config_manager.config
493
- json_config[consts.CONFIG_SOURCE_CONN] = config_manager.get_source_connection()
494
- json_config[consts.CONFIG_TARGET_CONN] = config_manager.get_target_connection()
493
+ json_config = copy.deepcopy(config_manager.config)
495
494
  return json_config
496
495
 
497
496
 
@@ -12,24 +12,16 @@
12
12
  # See the License for the specific language governing permissions and
13
13
  # limitations under the License.
14
14
 
15
- import json
15
+ import logging
16
16
  import os
17
17
  from data_validation import data_validation
18
18
  import flask
19
- import pandas
20
- import logging
21
19
 
22
20
  app = flask.Flask(__name__)
23
21
 
24
22
 
25
23
  def _clean_dataframe(df):
26
- rows = df.to_dict(orient="record")
27
- for row in rows:
28
- for key in row:
29
- if type(row[key]) in [pandas.Timestamp]:
30
- row[key] = str(row[key])
31
-
32
- return json.dumps(rows)
24
+ return df.to_json(orient="records", date_format="iso")
33
25
 
34
26
 
35
27
  def _get_request_content(request):
@@ -58,13 +50,19 @@ def main(request):
58
50
 
59
51
  @app.route("/", methods=["POST"])
60
52
  def run():
53
+ """Handle incoming Data Validation requests.
54
+
55
+ request (flask.Request): HTTP request object.
56
+ """
61
57
  try:
62
58
  config = _get_request_content(flask.request)
63
59
  result = validate(config)
64
- return str(result)
65
- except Exception as e:
66
- logging.exception(e)
67
- return "Found Error: {}".format(e)
60
+ return flask.Response(result, mimetype="application/json")
61
+ except Exception:
62
+ logging.exception("An error occurred during validation")
63
+ return flask.Response(
64
+ "An internal server error occurred.", status=500, mimetype="text/plain"
65
+ )
68
66
 
69
67
 
70
68
  @app.route("/test", methods=["POST"])
@@ -146,9 +146,11 @@ SOURCE_TYPE_TERADATA = "Teradata"
146
146
  # BigQuery Result Handler Configs
147
147
  RH_TYPE = "type"
148
148
  RH_CONN = "connection"
149
- PROJECT_ID = "project_id"
150
149
  TABLE_ID = "table_id"
151
150
  GOOGLE_SERVICE_ACCOUNT_KEY_PATH = "google_service_account_key_path"
151
+
152
+ # BigQuery connection attributes
153
+ PROJECT_ID = "project_id"
152
154
  API_ENDPOINT = "api_endpoint"
153
155
  STORAGE_API_ENDPOINT = "storage_api_endpoint"
154
156
  CLIENT_PROJECT_ID = "client_project_id"
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: google-pso-data-validator
3
- Version: 8.7.0
3
+ Version: 8.7.1
4
4
  Summary: A package to enable easy data validation
5
5
  Author: PSO DVT Engineering team
6
6
  Author-email: data-validator-eng@google.com
@@ -18,7 +18,7 @@ import setuptools
18
18
 
19
19
  name = "google-pso-data-validator"
20
20
  description = "A package to enable easy data validation"
21
- version = "8.7.0"
21
+ version = "8.7.1"
22
22
  release_status = "Development Status :: 4 - Beta"
23
23
 
24
24
  with open("README.md", "r") as fh: