prophecy-libs 2.0.4.dev0__tar.gz → 2.0.6.dev69__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.
- {prophecy-libs-2.0.4.dev0 → prophecy-libs-2.0.6.dev69}/PKG-INFO +1 -1
- prophecy-libs-2.0.6.dev69/prophecy/data/__init__.py +1 -0
- {prophecy-libs-2.0.4.dev0 → prophecy-libs-2.0.6.dev69}/prophecy/utils/datasampleloader.py +6 -1
- prophecy-libs-2.0.6.dev69/prophecy/utils/dbx_serverless_helper.py +56 -0
- {prophecy-libs-2.0.4.dev0 → prophecy-libs-2.0.6.dev69}/prophecy/utils/diff.py +9 -2
- {prophecy-libs-2.0.4.dev0 → prophecy-libs-2.0.6.dev69}/prophecy/utils/httpclient.py +2 -2
- {prophecy-libs-2.0.4.dev0 → prophecy-libs-2.0.6.dev69}/prophecy/utils/secrets.py +19 -9
- {prophecy-libs-2.0.4.dev0 → prophecy-libs-2.0.6.dev69}/prophecy/utils/transpiler/dataframe_fcns.py +5 -9
- {prophecy-libs-2.0.4.dev0 → prophecy-libs-2.0.6.dev69}/prophecy_libs.egg-info/PKG-INFO +1 -1
- {prophecy-libs-2.0.4.dev0 → prophecy-libs-2.0.6.dev69}/prophecy_libs.egg-info/SOURCES.txt +2 -0
- {prophecy-libs-2.0.4.dev0 → prophecy-libs-2.0.6.dev69}/setup.py +5 -1
- {prophecy-libs-2.0.4.dev0 → prophecy-libs-2.0.6.dev69}/README.md +0 -0
- {prophecy-libs-2.0.4.dev0 → prophecy-libs-2.0.6.dev69}/prophecy/__init__.py +0 -0
- {prophecy-libs-2.0.4.dev0 → prophecy-libs-2.0.6.dev69}/prophecy/config/__init__.py +0 -0
- {prophecy-libs-2.0.4.dev0 → prophecy-libs-2.0.6.dev69}/prophecy/config/config_base.py +0 -0
- {prophecy-libs-2.0.4.dev0 → prophecy-libs-2.0.6.dev69}/prophecy/config/config_base_test.py +0 -0
- {prophecy-libs-2.0.4.dev0 → prophecy-libs-2.0.6.dev69}/prophecy/config/utils.py +0 -0
- {prophecy-libs-2.0.4.dev0 → prophecy-libs-2.0.6.dev69}/prophecy/executionmetrics/__init__.py +0 -0
- {prophecy-libs-2.0.4.dev0 → prophecy-libs-2.0.6.dev69}/prophecy/executionmetrics/componentruns/__init__.py +0 -0
- {prophecy-libs-2.0.4.dev0 → prophecy-libs-2.0.6.dev69}/prophecy/executionmetrics/componentruns/component_run_service.py +0 -0
- {prophecy-libs-2.0.4.dev0 → prophecy-libs-2.0.6.dev69}/prophecy/executionmetrics/componentruns/component_runs_dao.py +0 -0
- {prophecy-libs-2.0.4.dev0 → prophecy-libs-2.0.6.dev69}/prophecy/executionmetrics/evolutions/__init__.py +0 -0
- {prophecy-libs-2.0.4.dev0 → prophecy-libs-2.0.6.dev69}/prophecy/executionmetrics/evolutions/delta_metrics_storage_initializer.py +0 -0
- {prophecy-libs-2.0.4.dev0 → prophecy-libs-2.0.6.dev69}/prophecy/executionmetrics/evolutions/hive_parquet_storage_initializer.py +0 -0
- {prophecy-libs-2.0.4.dev0 → prophecy-libs-2.0.6.dev69}/prophecy/executionmetrics/evolutions/metrics_storage_initializer.py +0 -0
- {prophecy-libs-2.0.4.dev0 → prophecy-libs-2.0.6.dev69}/prophecy/executionmetrics/evolutions/models.py +0 -0
- {prophecy-libs-2.0.4.dev0 → prophecy-libs-2.0.6.dev69}/prophecy/executionmetrics/evolutions/package.py +0 -0
- {prophecy-libs-2.0.4.dev0 → prophecy-libs-2.0.6.dev69}/prophecy/executionmetrics/execution_metrics_handler.py +0 -0
- {prophecy-libs-2.0.4.dev0 → prophecy-libs-2.0.6.dev69}/prophecy/executionmetrics/in_memory_store.py +0 -0
- {prophecy-libs-2.0.4.dev0 → prophecy-libs-2.0.6.dev69}/prophecy/executionmetrics/interims/__init__.py +0 -0
- {prophecy-libs-2.0.4.dev0 → prophecy-libs-2.0.6.dev69}/prophecy/executionmetrics/interims/delta_interims.py +0 -0
- {prophecy-libs-2.0.4.dev0 → prophecy-libs-2.0.6.dev69}/prophecy/executionmetrics/interims/hive_parquet_interims.py +0 -0
- {prophecy-libs-2.0.4.dev0 → prophecy-libs-2.0.6.dev69}/prophecy/executionmetrics/interims/interims_table.py +0 -0
- {prophecy-libs-2.0.4.dev0 → prophecy-libs-2.0.6.dev69}/prophecy/executionmetrics/logging_spark_session.py +0 -0
- {prophecy-libs-2.0.4.dev0 → prophecy-libs-2.0.6.dev69}/prophecy/executionmetrics/models.py +0 -0
- {prophecy-libs-2.0.4.dev0 → prophecy-libs-2.0.6.dev69}/prophecy/executionmetrics/package.py +0 -0
- {prophecy-libs-2.0.4.dev0 → prophecy-libs-2.0.6.dev69}/prophecy/executionmetrics/pipelineruns/__init__.py +0 -0
- {prophecy-libs-2.0.4.dev0 → prophecy-libs-2.0.6.dev69}/prophecy/executionmetrics/pipelineruns/pipeline_run_service.py +0 -0
- {prophecy-libs-2.0.4.dev0 → prophecy-libs-2.0.6.dev69}/prophecy/executionmetrics/pipelineruns/pipeline_runs_dao.py +0 -0
- {prophecy-libs-2.0.4.dev0 → prophecy-libs-2.0.6.dev69}/prophecy/executionmetrics/schemas/__init__.py +0 -0
- {prophecy-libs-2.0.4.dev0 → prophecy-libs-2.0.6.dev69}/prophecy/executionmetrics/schemas/em.py +0 -0
- {prophecy-libs-2.0.4.dev0 → prophecy-libs-2.0.6.dev69}/prophecy/executionmetrics/schemas/external.py +0 -0
- {prophecy-libs-2.0.4.dev0 → prophecy-libs-2.0.6.dev69}/prophecy/executionmetrics/utils/__init__.py +0 -0
- {prophecy-libs-2.0.4.dev0 → prophecy-libs-2.0.6.dev69}/prophecy/executionmetrics/utils/common.py +0 -0
- {prophecy-libs-2.0.4.dev0 → prophecy-libs-2.0.6.dev69}/prophecy/executionmetrics/utils/constants.py +0 -0
- {prophecy-libs-2.0.4.dev0 → prophecy-libs-2.0.6.dev69}/prophecy/executionmetrics/utils/external.py +0 -0
- {prophecy-libs-2.0.4.dev0 → prophecy-libs-2.0.6.dev69}/prophecy/executionmetrics/utils/interim_store.py +0 -0
- {prophecy-libs-2.0.4.dev0 → prophecy-libs-2.0.6.dev69}/prophecy/executionmetrics/workflow_parser.py +0 -0
- {prophecy-libs-2.0.4.dev0 → prophecy-libs-2.0.6.dev69}/prophecy/executionmetrics/zip_file.py +0 -0
- {prophecy-libs-2.0.4.dev0 → prophecy-libs-2.0.6.dev69}/prophecy/jsonrpc/__init__.py +0 -0
- {prophecy-libs-2.0.4.dev0 → prophecy-libs-2.0.6.dev69}/prophecy/jsonrpc/models.py +0 -0
- {prophecy-libs-2.0.4.dev0 → prophecy-libs-2.0.6.dev69}/prophecy/libs/__init__.py +0 -0
- {prophecy-libs-2.0.4.dev0 → prophecy-libs-2.0.6.dev69}/prophecy/libs/uc_shared_utils.py +0 -0
- {prophecy-libs-2.0.4.dev0 → prophecy-libs-2.0.6.dev69}/prophecy/libs/utils.py +0 -0
- {prophecy-libs-2.0.4.dev0 → prophecy-libs-2.0.6.dev69}/prophecy/lookups/LookupsBase.py +0 -0
- {prophecy-libs-2.0.4.dev0 → prophecy-libs-2.0.6.dev69}/prophecy/lookups/LookupsNative.py +0 -0
- {prophecy-libs-2.0.4.dev0 → prophecy-libs-2.0.6.dev69}/prophecy/lookups/__init__.py +0 -0
- {prophecy-libs-2.0.4.dev0 → prophecy-libs-2.0.6.dev69}/prophecy/random_data_creator.py +0 -0
- {prophecy-libs-2.0.4.dev0 → prophecy-libs-2.0.6.dev69}/prophecy/streaming/__init__.py +0 -0
- {prophecy-libs-2.0.4.dev0 → prophecy-libs-2.0.6.dev69}/prophecy/streaming/delta_lake_utils.py +0 -0
- {prophecy-libs-2.0.4.dev0 → prophecy-libs-2.0.6.dev69}/prophecy/test/__init__.py +0 -0
- {prophecy-libs-2.0.4.dev0 → prophecy-libs-2.0.6.dev69}/prophecy/test/base_test_case.py +0 -0
- {prophecy-libs-2.0.4.dev0 → prophecy-libs-2.0.6.dev69}/prophecy/test/utils.py +0 -0
- {prophecy-libs-2.0.4.dev0 → prophecy-libs-2.0.6.dev69}/prophecy/udfs/__init__.py +0 -0
- {prophecy-libs-2.0.4.dev0 → prophecy-libs-2.0.6.dev69}/prophecy/udfs/rest_api_udf.py +0 -0
- {prophecy-libs-2.0.4.dev0 → prophecy-libs-2.0.6.dev69}/prophecy/udfs/sample_udf.py +0 -0
- {prophecy-libs-2.0.4.dev0 → prophecy-libs-2.0.6.dev69}/prophecy/udfs/scala_udf_wrapper.py +0 -0
- {prophecy-libs-2.0.4.dev0 → prophecy-libs-2.0.6.dev69}/prophecy/utils/__init__.py +0 -0
- {prophecy-libs-2.0.4.dev0 → prophecy-libs-2.0.6.dev69}/prophecy/utils/constants.py +0 -0
- {prophecy-libs-2.0.4.dev0 → prophecy-libs-2.0.6.dev69}/prophecy/utils/data_profiler.py +0 -0
- {prophecy-libs-2.0.4.dev0 → prophecy-libs-2.0.6.dev69}/prophecy/utils/dill/__diff.py +0 -0
- {prophecy-libs-2.0.4.dev0 → prophecy-libs-2.0.6.dev69}/prophecy/utils/dill/__init__.py +0 -0
- {prophecy-libs-2.0.4.dev0 → prophecy-libs-2.0.6.dev69}/prophecy/utils/dill/_dill.py +0 -0
- {prophecy-libs-2.0.4.dev0 → prophecy-libs-2.0.6.dev69}/prophecy/utils/dill/_objects.py +0 -0
- {prophecy-libs-2.0.4.dev0 → prophecy-libs-2.0.6.dev69}/prophecy/utils/dill/_shims.py +0 -0
- {prophecy-libs-2.0.4.dev0 → prophecy-libs-2.0.6.dev69}/prophecy/utils/dill/detect.py +0 -0
- {prophecy-libs-2.0.4.dev0 → prophecy-libs-2.0.6.dev69}/prophecy/utils/dill/logger.py +0 -0
- {prophecy-libs-2.0.4.dev0 → prophecy-libs-2.0.6.dev69}/prophecy/utils/dill/objtypes.py +0 -0
- {prophecy-libs-2.0.4.dev0 → prophecy-libs-2.0.6.dev69}/prophecy/utils/dill/pointers.py +0 -0
- {prophecy-libs-2.0.4.dev0 → prophecy-libs-2.0.6.dev69}/prophecy/utils/dill/session.py +0 -0
- {prophecy-libs-2.0.4.dev0 → prophecy-libs-2.0.6.dev69}/prophecy/utils/dill/settings.py +0 -0
- {prophecy-libs-2.0.4.dev0 → prophecy-libs-2.0.6.dev69}/prophecy/utils/dill/source.py +0 -0
- {prophecy-libs-2.0.4.dev0 → prophecy-libs-2.0.6.dev69}/prophecy/utils/dill/temp.py +0 -0
- {prophecy-libs-2.0.4.dev0 → prophecy-libs-2.0.6.dev69}/prophecy/utils/faker/__init__.py +0 -0
- {prophecy-libs-2.0.4.dev0 → prophecy-libs-2.0.6.dev69}/prophecy/utils/faker/__main__.py +0 -0
- {prophecy-libs-2.0.4.dev0 → prophecy-libs-2.0.6.dev69}/prophecy/utils/faker/cli.py +0 -0
- {prophecy-libs-2.0.4.dev0 → prophecy-libs-2.0.6.dev69}/prophecy/utils/faker/config.py +0 -0
- {prophecy-libs-2.0.4.dev0 → prophecy-libs-2.0.6.dev69}/prophecy/utils/faker/custom_typing.py +0 -0
- {prophecy-libs-2.0.4.dev0 → prophecy-libs-2.0.6.dev69}/prophecy/utils/faker/decode/__init__.py +0 -0
- {prophecy-libs-2.0.4.dev0 → prophecy-libs-2.0.6.dev69}/prophecy/utils/faker/decode/codes.py +0 -0
- {prophecy-libs-2.0.4.dev0 → prophecy-libs-2.0.6.dev69}/prophecy/utils/faker/documentor.py +0 -0
- {prophecy-libs-2.0.4.dev0 → prophecy-libs-2.0.6.dev69}/prophecy/utils/faker/exceptions.py +0 -0
- {prophecy-libs-2.0.4.dev0 → prophecy-libs-2.0.6.dev69}/prophecy/utils/faker/factory.py +0 -0
- {prophecy-libs-2.0.4.dev0 → prophecy-libs-2.0.6.dev69}/prophecy/utils/faker/generator.py +0 -0
- {prophecy-libs-2.0.4.dev0 → prophecy-libs-2.0.6.dev69}/prophecy/utils/faker/providers/__init__.py +0 -0
- {prophecy-libs-2.0.4.dev0 → prophecy-libs-2.0.6.dev69}/prophecy/utils/faker/providers/address/__init__.py +0 -0
- {prophecy-libs-2.0.4.dev0 → prophecy-libs-2.0.6.dev69}/prophecy/utils/faker/providers/address/en/__init__.py +0 -0
- {prophecy-libs-2.0.4.dev0 → prophecy-libs-2.0.6.dev69}/prophecy/utils/faker/providers/address/en_US/__init__.py +0 -0
- {prophecy-libs-2.0.4.dev0 → prophecy-libs-2.0.6.dev69}/prophecy/utils/faker/providers/date_time/__init__.py +0 -0
- {prophecy-libs-2.0.4.dev0 → prophecy-libs-2.0.6.dev69}/prophecy/utils/faker/providers/date_time/en_US/__init__.py +0 -0
- {prophecy-libs-2.0.4.dev0 → prophecy-libs-2.0.6.dev69}/prophecy/utils/faker/providers/internet/__init__.py +0 -0
- {prophecy-libs-2.0.4.dev0 → prophecy-libs-2.0.6.dev69}/prophecy/utils/faker/providers/internet/en_US/__init__.py +0 -0
- {prophecy-libs-2.0.4.dev0 → prophecy-libs-2.0.6.dev69}/prophecy/utils/faker/providers/misc/__init__.py +0 -0
- {prophecy-libs-2.0.4.dev0 → prophecy-libs-2.0.6.dev69}/prophecy/utils/faker/providers/misc/en_US/__init__.py +0 -0
- {prophecy-libs-2.0.4.dev0 → prophecy-libs-2.0.6.dev69}/prophecy/utils/faker/providers/person/__init__.py +0 -0
- {prophecy-libs-2.0.4.dev0 → prophecy-libs-2.0.6.dev69}/prophecy/utils/faker/providers/person/en_US/__init__.py +0 -0
- {prophecy-libs-2.0.4.dev0 → prophecy-libs-2.0.6.dev69}/prophecy/utils/faker/providers/phone_number/__init__.py +0 -0
- {prophecy-libs-2.0.4.dev0 → prophecy-libs-2.0.6.dev69}/prophecy/utils/faker/providers/phone_number/en_US/__init__.py +0 -0
- {prophecy-libs-2.0.4.dev0 → prophecy-libs-2.0.6.dev69}/prophecy/utils/faker/providers/python/__init__.py +0 -0
- {prophecy-libs-2.0.4.dev0 → prophecy-libs-2.0.6.dev69}/prophecy/utils/faker/providers/python/en_US/__init__.py +0 -0
- {prophecy-libs-2.0.4.dev0 → prophecy-libs-2.0.6.dev69}/prophecy/utils/faker/proxy.py +0 -0
- {prophecy-libs-2.0.4.dev0 → prophecy-libs-2.0.6.dev69}/prophecy/utils/faker/utils/__init__.py +0 -0
- {prophecy-libs-2.0.4.dev0 → prophecy-libs-2.0.6.dev69}/prophecy/utils/faker/utils/checksums.py +0 -0
- {prophecy-libs-2.0.4.dev0 → prophecy-libs-2.0.6.dev69}/prophecy/utils/faker/utils/datasets.py +0 -0
- {prophecy-libs-2.0.4.dev0 → prophecy-libs-2.0.6.dev69}/prophecy/utils/faker/utils/decorators.py +0 -0
- {prophecy-libs-2.0.4.dev0 → prophecy-libs-2.0.6.dev69}/prophecy/utils/faker/utils/distribution.py +0 -0
- {prophecy-libs-2.0.4.dev0 → prophecy-libs-2.0.6.dev69}/prophecy/utils/faker/utils/loading.py +0 -0
- {prophecy-libs-2.0.4.dev0 → prophecy-libs-2.0.6.dev69}/prophecy/utils/faker/utils/text.py +0 -0
- {prophecy-libs-2.0.4.dev0 → prophecy-libs-2.0.6.dev69}/prophecy/utils/functions.py +0 -0
- {prophecy-libs-2.0.4.dev0 → prophecy-libs-2.0.6.dev69}/prophecy/utils/gems_utils.py +0 -0
- {prophecy-libs-2.0.4.dev0 → prophecy-libs-2.0.6.dev69}/prophecy/utils/initial_python_code.py +0 -0
- {prophecy-libs-2.0.4.dev0 → prophecy-libs-2.0.6.dev69}/prophecy/utils/json_rpc_layer.py +0 -0
- {prophecy-libs-2.0.4.dev0 → prophecy-libs-2.0.6.dev69}/prophecy/utils/metagem_utils.py +0 -0
- {prophecy-libs-2.0.4.dev0 → prophecy-libs-2.0.6.dev69}/prophecy/utils/monitoring_utils.py +0 -0
- {prophecy-libs-2.0.4.dev0 → prophecy-libs-2.0.6.dev69}/prophecy/utils/pipeline_monitoring.py +0 -0
- {prophecy-libs-2.0.4.dev0 → prophecy-libs-2.0.6.dev69}/prophecy/utils/request_processor.py +0 -0
- {prophecy-libs-2.0.4.dev0 → prophecy-libs-2.0.6.dev69}/prophecy/utils/synthetic_data_generator.py +0 -0
- {prophecy-libs-2.0.4.dev0 → prophecy-libs-2.0.6.dev69}/prophecy/utils/transpiler/__init__.py +0 -0
- {prophecy-libs-2.0.4.dev0 → prophecy-libs-2.0.6.dev69}/prophecy/utils/transpiler/abi_base.py +0 -0
- {prophecy-libs-2.0.4.dev0 → prophecy-libs-2.0.6.dev69}/prophecy/utils/transpiler/abi_core_fcns.py +0 -0
- {prophecy-libs-2.0.4.dev0 → prophecy-libs-2.0.6.dev69}/prophecy/utils/transpiler/abi_fcn_wrapper.py +0 -0
- {prophecy-libs-2.0.4.dev0 → prophecy-libs-2.0.6.dev69}/prophecy/utils/transpiler/dml_schema.py +0 -0
- {prophecy-libs-2.0.4.dev0 → prophecy-libs-2.0.6.dev69}/prophecy/utils/transpiler/fixed_file_schema.py +0 -0
- {prophecy-libs-2.0.4.dev0 → prophecy-libs-2.0.6.dev69}/prophecy/utils/utils.py +0 -0
- {prophecy-libs-2.0.4.dev0 → prophecy-libs-2.0.6.dev69}/prophecy_libs.egg-info/dependency_links.txt +0 -0
- {prophecy-libs-2.0.4.dev0 → prophecy-libs-2.0.6.dev69}/prophecy_libs.egg-info/not-zip-safe +0 -0
- {prophecy-libs-2.0.4.dev0 → prophecy-libs-2.0.6.dev69}/prophecy_libs.egg-info/requires.txt +0 -0
- {prophecy-libs-2.0.4.dev0 → prophecy-libs-2.0.6.dev69}/prophecy_libs.egg-info/top_level.txt +0 -0
- {prophecy-libs-2.0.4.dev0 → prophecy-libs-2.0.6.dev69}/setup.cfg +0 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
# Package data module
|
|
@@ -437,7 +437,12 @@ class DataSampleLoaderLib:
|
|
|
437
437
|
except Exception as e:
|
|
438
438
|
from pyspark.sql.functions import struct, col, to_json
|
|
439
439
|
|
|
440
|
-
|
|
440
|
+
row = result.select(to_json(struct(col("*")))).first()
|
|
441
|
+
if row is not None:
|
|
442
|
+
# Extract the string from the Row (first value)
|
|
443
|
+
return row[0]
|
|
444
|
+
else:
|
|
445
|
+
return None
|
|
441
446
|
except Exception as e:
|
|
442
447
|
print(f"Error creating payload: {str(e)}") # Log error before raising
|
|
443
448
|
raise ValueError(f"Error creating payload: {str(e)}")
|
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
"""
|
|
2
|
+
Databricks Serverless Helper utilities.
|
|
3
|
+
"""
|
|
4
|
+
|
|
5
|
+
import sys
|
|
6
|
+
from importlib import resources
|
|
7
|
+
|
|
8
|
+
|
|
9
|
+
def print_serverless_requirements():
|
|
10
|
+
"""Print the contents of the serverless requirements file to stdout"""
|
|
11
|
+
try:
|
|
12
|
+
# Python 3.9+
|
|
13
|
+
with resources.files("prophecy.data").joinpath("requirements.dbxserverless_sandbox.txt").open() as f:
|
|
14
|
+
print(f.read(), end="")
|
|
15
|
+
except AttributeError:
|
|
16
|
+
# Python 3.8 fallback
|
|
17
|
+
with resources.open_text("prophecy.data", "requirements.dbxserverless_sandbox.txt") as f:
|
|
18
|
+
print(f.read(), end="")
|
|
19
|
+
|
|
20
|
+
|
|
21
|
+
def get_serverless_requirements_path():
|
|
22
|
+
"""Get the file path to the serverless requirements file"""
|
|
23
|
+
try:
|
|
24
|
+
# Python 3.9+
|
|
25
|
+
files = resources.files("prophecy.data")
|
|
26
|
+
req_file = files.joinpath("requirements.dbxserverless_sandbox.txt")
|
|
27
|
+
with resources.as_file(req_file) as path:
|
|
28
|
+
return str(path)
|
|
29
|
+
except AttributeError:
|
|
30
|
+
# Python 3.8 fallback
|
|
31
|
+
import pkg_resources
|
|
32
|
+
return pkg_resources.resource_filename("prophecy.data", "requirements.dbxserverless_sandbox.txt")
|
|
33
|
+
|
|
34
|
+
|
|
35
|
+
def main():
|
|
36
|
+
"""Main CLI entry point"""
|
|
37
|
+
if len(sys.argv) == 1:
|
|
38
|
+
# Default behavior: print requirements
|
|
39
|
+
print_serverless_requirements()
|
|
40
|
+
elif len(sys.argv) == 2:
|
|
41
|
+
command = sys.argv[1]
|
|
42
|
+
if command == "print":
|
|
43
|
+
print_serverless_requirements()
|
|
44
|
+
elif command == "path":
|
|
45
|
+
print(get_serverless_requirements_path())
|
|
46
|
+
else:
|
|
47
|
+
print(f"Unknown command: {command}")
|
|
48
|
+
print("Usage: python -m prophecy.utils.dbx_serverless_helper [print|path]")
|
|
49
|
+
sys.exit(1)
|
|
50
|
+
else:
|
|
51
|
+
print("Usage: python -m prophecy.utils.dbx_serverless_helper [print|path]")
|
|
52
|
+
sys.exit(1)
|
|
53
|
+
|
|
54
|
+
|
|
55
|
+
if __name__ == "__main__":
|
|
56
|
+
main()
|
|
@@ -14,7 +14,8 @@ from pyspark.sql.types import (
|
|
|
14
14
|
StringType,
|
|
15
15
|
MapType,
|
|
16
16
|
)
|
|
17
|
-
import uuid, enum
|
|
17
|
+
import uuid, enum, json
|
|
18
|
+
from prophecy.config.config_base import is_serverless
|
|
18
19
|
|
|
19
20
|
|
|
20
21
|
class DiffKeys(enum.Enum):
|
|
@@ -613,7 +614,7 @@ class DataFrameDiff:
|
|
|
613
614
|
"duplicatePkCount": duplicate_df.count(),
|
|
614
615
|
}
|
|
615
616
|
|
|
616
|
-
|
|
617
|
+
diff_summary = {
|
|
617
618
|
"label": diff_key,
|
|
618
619
|
"data": {
|
|
619
620
|
"summaryTiles": [
|
|
@@ -669,6 +670,12 @@ class DataFrameDiff:
|
|
|
669
670
|
},
|
|
670
671
|
}
|
|
671
672
|
|
|
673
|
+
if is_serverless:
|
|
674
|
+
# printing diff summary to support serverless
|
|
675
|
+
# do not print if not serverless
|
|
676
|
+
print(json.dumps(diff_summary))
|
|
677
|
+
return diff_summary
|
|
678
|
+
|
|
672
679
|
@classmethod
|
|
673
680
|
def clean_joined_df(cls, joined_df, key_columns, value_columns, left_df, right_df):
|
|
674
681
|
"""
|
|
@@ -161,8 +161,8 @@ class ProphecyRequestsLib:
|
|
|
161
161
|
try:
|
|
162
162
|
payload = DataSampleLoaderLib.get_payload(key, job, df_offset)
|
|
163
163
|
with HttpClientLib(base_url, token) as client:
|
|
164
|
-
response = client.post_compressed(endpoint, payload)
|
|
164
|
+
response = client.post_compressed(endpoint, payload or '')
|
|
165
165
|
except HTTPClientError as e:
|
|
166
|
-
print(f"Interims Request Failed HTTPClientError: {str(e)}")
|
|
166
|
+
print(f"Interims Request Failed HTTPClientError: {str(e)}. Payload: {payload} Endpoint: {endpoint}")
|
|
167
167
|
except Exception as e:
|
|
168
168
|
print(f"Interims Request Failed: {str(e)}")
|
|
@@ -415,7 +415,9 @@ class SecretManager:
|
|
|
415
415
|
# ── Health & listings (HashiCorp) ─────────────────────────────────────
|
|
416
416
|
@staticmethod
|
|
417
417
|
def health(conn: HashiCorpConnectionDetails):
|
|
418
|
-
|
|
418
|
+
resp = VaultUtils.vault_health(conn)
|
|
419
|
+
VaultUtils.token_health(conn)
|
|
420
|
+
return resp
|
|
419
421
|
|
|
420
422
|
@staticmethod
|
|
421
423
|
def listHashiCorpSecrets(conn: HashiCorpConnectionDetails) -> Dict[str, List[str]]:
|
|
@@ -492,7 +494,7 @@ async def handle_secrets_crud(req: SecretCrudRequest) -> LSecretsResponse:
|
|
|
492
494
|
try:
|
|
493
495
|
resp = await asyncio.to_thread(SecretManager.health, conn)
|
|
494
496
|
out = HashiCorpHealthResponse.from_rest_response(resp)
|
|
495
|
-
logger.info(f"Returning health response ")
|
|
497
|
+
logger.info(f"Returning health response {out}")
|
|
496
498
|
return LSecretsResponse.from_request(req, out, True)
|
|
497
499
|
except Exception as exc:
|
|
498
500
|
msg = (
|
|
@@ -802,7 +804,12 @@ class VaultUtils:
|
|
|
802
804
|
cli = VaultUtils._client_from_conn(conn)
|
|
803
805
|
mount, inner = _split_mount_and_path(full_path)
|
|
804
806
|
kv = VaultUtils._kv_version_for_mount(cli, mount)
|
|
805
|
-
data =
|
|
807
|
+
data = {}
|
|
808
|
+
try:
|
|
809
|
+
data = VaultUtils._read_kv(cli, mount, inner, kv)
|
|
810
|
+
except hvac.exceptions.InvalidPath:
|
|
811
|
+
logger.info(f"Secret path '{mount}/{inner}' does not exist – creating it now.")
|
|
812
|
+
|
|
806
813
|
data[key] = value
|
|
807
814
|
VaultUtils._write_kv(cli, mount, inner, data, kv)
|
|
808
815
|
|
|
@@ -856,22 +863,25 @@ class VaultUtils:
|
|
|
856
863
|
acc: Dict[str, List[str]],
|
|
857
864
|
):
|
|
858
865
|
"""Depth-first walk; for every leaf secret record {full_path: [keys…]}."""
|
|
866
|
+
path = inner or ""
|
|
859
867
|
try:
|
|
860
868
|
if kv_ver == 2:
|
|
861
869
|
resp = cli.secrets.kv.v2.list_secrets(
|
|
862
|
-
path=
|
|
870
|
+
path=path, mount_point=mount
|
|
863
871
|
)
|
|
864
872
|
elif kv_ver == 1:
|
|
865
873
|
resp = cli.secrets.kv.v1.list_secrets(
|
|
866
|
-
path=
|
|
874
|
+
path=path, mount_point=mount
|
|
867
875
|
)
|
|
868
876
|
else:
|
|
869
877
|
try:
|
|
870
|
-
resp = cli.secrets.kv.v2.list_secrets(path=
|
|
878
|
+
resp = cli.secrets.kv.v2.list_secrets(path=path, mount_point=mount)
|
|
871
879
|
kv_ver = 2
|
|
872
|
-
|
|
873
|
-
|
|
880
|
+
logger.info(f'Setting kv engine version as 2 for mount={mount} and path={path}')
|
|
881
|
+
except Exception as e:
|
|
882
|
+
resp = cli.secrets.kv.v1.list_secrets(path=path, mount_point=mount)
|
|
874
883
|
kv_ver = 1
|
|
884
|
+
logger.info(f'Setting kv engine version as 1 for mount={mount} and path={path}')
|
|
875
885
|
|
|
876
886
|
keys = resp["data"]["keys"]
|
|
877
887
|
except hvac.exceptions.InvalidPath:
|
|
@@ -904,4 +914,4 @@ class VaultUtils:
|
|
|
904
914
|
@staticmethod
|
|
905
915
|
async def aio(func, *args, **kwargs):
|
|
906
916
|
loop = asyncio.get_running_loop()
|
|
907
|
-
return await loop.run_in_executor(None, partial(func, *args, **kwargs))
|
|
917
|
+
return await loop.run_in_executor(None, partial(func, *args, **kwargs))
|
{prophecy-libs-2.0.4.dev0 → prophecy-libs-2.0.6.dev69}/prophecy/utils/transpiler/dataframe_fcns.py
RENAMED
|
@@ -30,10 +30,6 @@ def writeFixedFile(df, schema, path, mode="overwrite"):
|
|
|
30
30
|
createScalaOption(spark, None),
|
|
31
31
|
_getSaveMode(spark, mode))
|
|
32
32
|
|
|
33
|
-
def index(string, substring, occurence):
|
|
34
|
-
spark = ScalaUtil.getAbiLib().spark
|
|
35
|
-
return spark.sparkContext._jvm.io.prophecy.datastage.SparkFunctions.index(string, substring, occurence)
|
|
36
|
-
|
|
37
33
|
def flattenSchema(df, jsonParsedColumnName, distributeColumnsOnType):
|
|
38
34
|
spark = ScalaUtil.getAbiLib().spark
|
|
39
35
|
result = spark.sparkContext._jvm.io.prophecy.alteryx.SparkFunctions.flattenSchema(df._jdf, jsonParsedColumnName, distributeColumnsOnType, spark._jsparkSession)
|
|
@@ -403,23 +399,23 @@ def deduplicate(
|
|
|
403
399
|
def generate_xml(df, rootElement, namespacePrefixes, namespaceURIs, columnNames, xmlPaths, isAttributes, writeNilElement, schemaLocation=None):
|
|
404
400
|
spark = df.sparkSession
|
|
405
401
|
sc = spark.sparkContext
|
|
406
|
-
|
|
402
|
+
|
|
407
403
|
java_namespacePrefixes = sc._jvm.java.util.ArrayList()
|
|
408
404
|
for item in namespacePrefixes:
|
|
409
405
|
java_namespacePrefixes.add(item)
|
|
410
|
-
|
|
406
|
+
|
|
411
407
|
java_namespaceURIs = sc._jvm.java.util.ArrayList()
|
|
412
408
|
for item in namespaceURIs:
|
|
413
409
|
java_namespaceURIs.add(item)
|
|
414
|
-
|
|
410
|
+
|
|
415
411
|
java_columnNames = sc._jvm.java.util.ArrayList()
|
|
416
412
|
for item in columnNames:
|
|
417
413
|
java_columnNames.add(item)
|
|
418
|
-
|
|
414
|
+
|
|
419
415
|
java_xmlPaths = sc._jvm.java.util.ArrayList()
|
|
420
416
|
for item in xmlPaths:
|
|
421
417
|
java_xmlPaths.add(item)
|
|
422
|
-
|
|
418
|
+
|
|
423
419
|
java_isAttributes = sc._jvm.java.util.ArrayList()
|
|
424
420
|
for item in isAttributes:
|
|
425
421
|
java_isAttributes.add(item)
|
|
@@ -6,6 +6,7 @@ prophecy/config/__init__.py
|
|
|
6
6
|
prophecy/config/config_base.py
|
|
7
7
|
prophecy/config/config_base_test.py
|
|
8
8
|
prophecy/config/utils.py
|
|
9
|
+
prophecy/data/__init__.py
|
|
9
10
|
prophecy/executionmetrics/__init__.py
|
|
10
11
|
prophecy/executionmetrics/execution_metrics_handler.py
|
|
11
12
|
prophecy/executionmetrics/in_memory_store.py
|
|
@@ -59,6 +60,7 @@ prophecy/utils/__init__.py
|
|
|
59
60
|
prophecy/utils/constants.py
|
|
60
61
|
prophecy/utils/data_profiler.py
|
|
61
62
|
prophecy/utils/datasampleloader.py
|
|
63
|
+
prophecy/utils/dbx_serverless_helper.py
|
|
62
64
|
prophecy/utils/diff.py
|
|
63
65
|
prophecy/utils/functions.py
|
|
64
66
|
prophecy/utils/gems_utils.py
|
|
@@ -2,9 +2,13 @@ from setuptools import setup, find_packages
|
|
|
2
2
|
|
|
3
3
|
setup(
|
|
4
4
|
name="prophecy-libs",
|
|
5
|
-
version="2.0.
|
|
5
|
+
version="2.0.6.dev69",
|
|
6
6
|
url="https://github.com/SimpleDataLabsInc/prophecy-python-libs",
|
|
7
7
|
packages=find_packages(exclude=["test.*", "test"]),
|
|
8
|
+
package_data={
|
|
9
|
+
"prophecy": ["data/requirements.dbxserverless_sandbox.txt"],
|
|
10
|
+
},
|
|
11
|
+
include_package_data=True,
|
|
8
12
|
description="Helper library for prophecy generated code",
|
|
9
13
|
long_description=open("README.md").read(),
|
|
10
14
|
install_requires=[
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{prophecy-libs-2.0.4.dev0 → prophecy-libs-2.0.6.dev69}/prophecy/executionmetrics/__init__.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{prophecy-libs-2.0.4.dev0 → prophecy-libs-2.0.6.dev69}/prophecy/executionmetrics/in_memory_store.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{prophecy-libs-2.0.4.dev0 → prophecy-libs-2.0.6.dev69}/prophecy/executionmetrics/schemas/__init__.py
RENAMED
|
File without changes
|
{prophecy-libs-2.0.4.dev0 → prophecy-libs-2.0.6.dev69}/prophecy/executionmetrics/schemas/em.py
RENAMED
|
File without changes
|
{prophecy-libs-2.0.4.dev0 → prophecy-libs-2.0.6.dev69}/prophecy/executionmetrics/schemas/external.py
RENAMED
|
File without changes
|
{prophecy-libs-2.0.4.dev0 → prophecy-libs-2.0.6.dev69}/prophecy/executionmetrics/utils/__init__.py
RENAMED
|
File without changes
|
{prophecy-libs-2.0.4.dev0 → prophecy-libs-2.0.6.dev69}/prophecy/executionmetrics/utils/common.py
RENAMED
|
File without changes
|
{prophecy-libs-2.0.4.dev0 → prophecy-libs-2.0.6.dev69}/prophecy/executionmetrics/utils/constants.py
RENAMED
|
File without changes
|
{prophecy-libs-2.0.4.dev0 → prophecy-libs-2.0.6.dev69}/prophecy/executionmetrics/utils/external.py
RENAMED
|
File without changes
|
|
File without changes
|
{prophecy-libs-2.0.4.dev0 → prophecy-libs-2.0.6.dev69}/prophecy/executionmetrics/workflow_parser.py
RENAMED
|
File without changes
|
{prophecy-libs-2.0.4.dev0 → prophecy-libs-2.0.6.dev69}/prophecy/executionmetrics/zip_file.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{prophecy-libs-2.0.4.dev0 → prophecy-libs-2.0.6.dev69}/prophecy/streaming/delta_lake_utils.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{prophecy-libs-2.0.4.dev0 → prophecy-libs-2.0.6.dev69}/prophecy/utils/faker/custom_typing.py
RENAMED
|
File without changes
|
{prophecy-libs-2.0.4.dev0 → prophecy-libs-2.0.6.dev69}/prophecy/utils/faker/decode/__init__.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{prophecy-libs-2.0.4.dev0 → prophecy-libs-2.0.6.dev69}/prophecy/utils/faker/providers/__init__.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{prophecy-libs-2.0.4.dev0 → prophecy-libs-2.0.6.dev69}/prophecy/utils/faker/utils/__init__.py
RENAMED
|
File without changes
|
{prophecy-libs-2.0.4.dev0 → prophecy-libs-2.0.6.dev69}/prophecy/utils/faker/utils/checksums.py
RENAMED
|
File without changes
|
{prophecy-libs-2.0.4.dev0 → prophecy-libs-2.0.6.dev69}/prophecy/utils/faker/utils/datasets.py
RENAMED
|
File without changes
|
{prophecy-libs-2.0.4.dev0 → prophecy-libs-2.0.6.dev69}/prophecy/utils/faker/utils/decorators.py
RENAMED
|
File without changes
|
{prophecy-libs-2.0.4.dev0 → prophecy-libs-2.0.6.dev69}/prophecy/utils/faker/utils/distribution.py
RENAMED
|
File without changes
|
{prophecy-libs-2.0.4.dev0 → prophecy-libs-2.0.6.dev69}/prophecy/utils/faker/utils/loading.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{prophecy-libs-2.0.4.dev0 → prophecy-libs-2.0.6.dev69}/prophecy/utils/initial_python_code.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{prophecy-libs-2.0.4.dev0 → prophecy-libs-2.0.6.dev69}/prophecy/utils/pipeline_monitoring.py
RENAMED
|
File without changes
|
|
File without changes
|
{prophecy-libs-2.0.4.dev0 → prophecy-libs-2.0.6.dev69}/prophecy/utils/synthetic_data_generator.py
RENAMED
|
File without changes
|
{prophecy-libs-2.0.4.dev0 → prophecy-libs-2.0.6.dev69}/prophecy/utils/transpiler/__init__.py
RENAMED
|
File without changes
|
{prophecy-libs-2.0.4.dev0 → prophecy-libs-2.0.6.dev69}/prophecy/utils/transpiler/abi_base.py
RENAMED
|
File without changes
|
{prophecy-libs-2.0.4.dev0 → prophecy-libs-2.0.6.dev69}/prophecy/utils/transpiler/abi_core_fcns.py
RENAMED
|
File without changes
|
{prophecy-libs-2.0.4.dev0 → prophecy-libs-2.0.6.dev69}/prophecy/utils/transpiler/abi_fcn_wrapper.py
RENAMED
|
File without changes
|
{prophecy-libs-2.0.4.dev0 → prophecy-libs-2.0.6.dev69}/prophecy/utils/transpiler/dml_schema.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{prophecy-libs-2.0.4.dev0 → prophecy-libs-2.0.6.dev69}/prophecy_libs.egg-info/dependency_links.txt
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|