prophecy-libs 2.0.0.dev4__tar.gz → 2.0.0.dev5__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 (136) hide show
  1. {prophecy-libs-2.0.0.dev4 → prophecy-libs-2.0.0.dev5}/PKG-INFO +1 -1
  2. {prophecy-libs-2.0.0.dev4 → prophecy-libs-2.0.0.dev5}/prophecy/utils/initial_python_code.py +36 -13
  3. {prophecy-libs-2.0.0.dev4 → prophecy-libs-2.0.0.dev5}/prophecy_libs.egg-info/PKG-INFO +1 -1
  4. {prophecy-libs-2.0.0.dev4 → prophecy-libs-2.0.0.dev5}/setup.py +1 -1
  5. {prophecy-libs-2.0.0.dev4 → prophecy-libs-2.0.0.dev5}/README.md +0 -0
  6. {prophecy-libs-2.0.0.dev4 → prophecy-libs-2.0.0.dev5}/prophecy/__init__.py +0 -0
  7. {prophecy-libs-2.0.0.dev4 → prophecy-libs-2.0.0.dev5}/prophecy/config/__init__.py +0 -0
  8. {prophecy-libs-2.0.0.dev4 → prophecy-libs-2.0.0.dev5}/prophecy/config/config_base.py +0 -0
  9. {prophecy-libs-2.0.0.dev4 → prophecy-libs-2.0.0.dev5}/prophecy/config/config_base_test.py +0 -0
  10. {prophecy-libs-2.0.0.dev4 → prophecy-libs-2.0.0.dev5}/prophecy/config/utils.py +0 -0
  11. {prophecy-libs-2.0.0.dev4 → prophecy-libs-2.0.0.dev5}/prophecy/executionmetrics/__init__.py +0 -0
  12. {prophecy-libs-2.0.0.dev4 → prophecy-libs-2.0.0.dev5}/prophecy/executionmetrics/componentruns/__init__.py +0 -0
  13. {prophecy-libs-2.0.0.dev4 → prophecy-libs-2.0.0.dev5}/prophecy/executionmetrics/componentruns/component_run_service.py +0 -0
  14. {prophecy-libs-2.0.0.dev4 → prophecy-libs-2.0.0.dev5}/prophecy/executionmetrics/componentruns/component_runs_dao.py +0 -0
  15. {prophecy-libs-2.0.0.dev4 → prophecy-libs-2.0.0.dev5}/prophecy/executionmetrics/evolutions/__init__.py +0 -0
  16. {prophecy-libs-2.0.0.dev4 → prophecy-libs-2.0.0.dev5}/prophecy/executionmetrics/evolutions/delta_metrics_storage_initializer.py +0 -0
  17. {prophecy-libs-2.0.0.dev4 → prophecy-libs-2.0.0.dev5}/prophecy/executionmetrics/evolutions/hive_parquet_storage_initializer.py +0 -0
  18. {prophecy-libs-2.0.0.dev4 → prophecy-libs-2.0.0.dev5}/prophecy/executionmetrics/evolutions/metrics_storage_initializer.py +0 -0
  19. {prophecy-libs-2.0.0.dev4 → prophecy-libs-2.0.0.dev5}/prophecy/executionmetrics/evolutions/models.py +0 -0
  20. {prophecy-libs-2.0.0.dev4 → prophecy-libs-2.0.0.dev5}/prophecy/executionmetrics/evolutions/package.py +0 -0
  21. {prophecy-libs-2.0.0.dev4 → prophecy-libs-2.0.0.dev5}/prophecy/executionmetrics/execution_metrics_handler.py +0 -0
  22. {prophecy-libs-2.0.0.dev4 → prophecy-libs-2.0.0.dev5}/prophecy/executionmetrics/in_memory_store.py +0 -0
  23. {prophecy-libs-2.0.0.dev4 → prophecy-libs-2.0.0.dev5}/prophecy/executionmetrics/interims/__init__.py +0 -0
  24. {prophecy-libs-2.0.0.dev4 → prophecy-libs-2.0.0.dev5}/prophecy/executionmetrics/interims/delta_interims.py +0 -0
  25. {prophecy-libs-2.0.0.dev4 → prophecy-libs-2.0.0.dev5}/prophecy/executionmetrics/interims/hive_parquet_interims.py +0 -0
  26. {prophecy-libs-2.0.0.dev4 → prophecy-libs-2.0.0.dev5}/prophecy/executionmetrics/interims/interims_table.py +0 -0
  27. {prophecy-libs-2.0.0.dev4 → prophecy-libs-2.0.0.dev5}/prophecy/executionmetrics/logging_spark_session.py +0 -0
  28. {prophecy-libs-2.0.0.dev4 → prophecy-libs-2.0.0.dev5}/prophecy/executionmetrics/models.py +0 -0
  29. {prophecy-libs-2.0.0.dev4 → prophecy-libs-2.0.0.dev5}/prophecy/executionmetrics/package.py +0 -0
  30. {prophecy-libs-2.0.0.dev4 → prophecy-libs-2.0.0.dev5}/prophecy/executionmetrics/pipelineruns/__init__.py +0 -0
  31. {prophecy-libs-2.0.0.dev4 → prophecy-libs-2.0.0.dev5}/prophecy/executionmetrics/pipelineruns/pipeline_run_service.py +0 -0
  32. {prophecy-libs-2.0.0.dev4 → prophecy-libs-2.0.0.dev5}/prophecy/executionmetrics/pipelineruns/pipeline_runs_dao.py +0 -0
  33. {prophecy-libs-2.0.0.dev4 → prophecy-libs-2.0.0.dev5}/prophecy/executionmetrics/schemas/__init__.py +0 -0
  34. {prophecy-libs-2.0.0.dev4 → prophecy-libs-2.0.0.dev5}/prophecy/executionmetrics/schemas/em.py +0 -0
  35. {prophecy-libs-2.0.0.dev4 → prophecy-libs-2.0.0.dev5}/prophecy/executionmetrics/schemas/external.py +0 -0
  36. {prophecy-libs-2.0.0.dev4 → prophecy-libs-2.0.0.dev5}/prophecy/executionmetrics/utils/__init__.py +0 -0
  37. {prophecy-libs-2.0.0.dev4 → prophecy-libs-2.0.0.dev5}/prophecy/executionmetrics/utils/common.py +0 -0
  38. {prophecy-libs-2.0.0.dev4 → prophecy-libs-2.0.0.dev5}/prophecy/executionmetrics/utils/constants.py +0 -0
  39. {prophecy-libs-2.0.0.dev4 → prophecy-libs-2.0.0.dev5}/prophecy/executionmetrics/utils/external.py +0 -0
  40. {prophecy-libs-2.0.0.dev4 → prophecy-libs-2.0.0.dev5}/prophecy/executionmetrics/utils/interim_store.py +0 -0
  41. {prophecy-libs-2.0.0.dev4 → prophecy-libs-2.0.0.dev5}/prophecy/executionmetrics/zip_file.py +0 -0
  42. {prophecy-libs-2.0.0.dev4 → prophecy-libs-2.0.0.dev5}/prophecy/jsonrpc/__init__.py +0 -0
  43. {prophecy-libs-2.0.0.dev4 → prophecy-libs-2.0.0.dev5}/prophecy/jsonrpc/models.py +0 -0
  44. {prophecy-libs-2.0.0.dev4 → prophecy-libs-2.0.0.dev5}/prophecy/libs/__init__.py +0 -0
  45. {prophecy-libs-2.0.0.dev4 → prophecy-libs-2.0.0.dev5}/prophecy/libs/uc_shared_utils.py +0 -0
  46. {prophecy-libs-2.0.0.dev4 → prophecy-libs-2.0.0.dev5}/prophecy/libs/utils.py +0 -0
  47. {prophecy-libs-2.0.0.dev4 → prophecy-libs-2.0.0.dev5}/prophecy/lookups/LookupsBase.py +0 -0
  48. {prophecy-libs-2.0.0.dev4 → prophecy-libs-2.0.0.dev5}/prophecy/lookups/LookupsNative.py +0 -0
  49. {prophecy-libs-2.0.0.dev4 → prophecy-libs-2.0.0.dev5}/prophecy/lookups/__init__.py +0 -0
  50. {prophecy-libs-2.0.0.dev4 → prophecy-libs-2.0.0.dev5}/prophecy/random_data_creator.py +0 -0
  51. {prophecy-libs-2.0.0.dev4 → prophecy-libs-2.0.0.dev5}/prophecy/streaming/__init__.py +0 -0
  52. {prophecy-libs-2.0.0.dev4 → prophecy-libs-2.0.0.dev5}/prophecy/streaming/delta_lake_utils.py +0 -0
  53. {prophecy-libs-2.0.0.dev4 → prophecy-libs-2.0.0.dev5}/prophecy/test/__init__.py +0 -0
  54. {prophecy-libs-2.0.0.dev4 → prophecy-libs-2.0.0.dev5}/prophecy/test/base_test_case.py +0 -0
  55. {prophecy-libs-2.0.0.dev4 → prophecy-libs-2.0.0.dev5}/prophecy/test/utils.py +0 -0
  56. {prophecy-libs-2.0.0.dev4 → prophecy-libs-2.0.0.dev5}/prophecy/udfs/__init__.py +0 -0
  57. {prophecy-libs-2.0.0.dev4 → prophecy-libs-2.0.0.dev5}/prophecy/udfs/rest_api_udf.py +0 -0
  58. {prophecy-libs-2.0.0.dev4 → prophecy-libs-2.0.0.dev5}/prophecy/udfs/sample_udf.py +0 -0
  59. {prophecy-libs-2.0.0.dev4 → prophecy-libs-2.0.0.dev5}/prophecy/udfs/scala_udf_wrapper.py +0 -0
  60. {prophecy-libs-2.0.0.dev4 → prophecy-libs-2.0.0.dev5}/prophecy/utils/__init__.py +0 -0
  61. {prophecy-libs-2.0.0.dev4 → prophecy-libs-2.0.0.dev5}/prophecy/utils/constants.py +0 -0
  62. {prophecy-libs-2.0.0.dev4 → prophecy-libs-2.0.0.dev5}/prophecy/utils/data_profiler.py +0 -0
  63. {prophecy-libs-2.0.0.dev4 → prophecy-libs-2.0.0.dev5}/prophecy/utils/datasampleloader.py +0 -0
  64. {prophecy-libs-2.0.0.dev4 → prophecy-libs-2.0.0.dev5}/prophecy/utils/diff.py +0 -0
  65. {prophecy-libs-2.0.0.dev4 → prophecy-libs-2.0.0.dev5}/prophecy/utils/dill/__diff.py +0 -0
  66. {prophecy-libs-2.0.0.dev4 → prophecy-libs-2.0.0.dev5}/prophecy/utils/dill/__init__.py +0 -0
  67. {prophecy-libs-2.0.0.dev4 → prophecy-libs-2.0.0.dev5}/prophecy/utils/dill/_dill.py +0 -0
  68. {prophecy-libs-2.0.0.dev4 → prophecy-libs-2.0.0.dev5}/prophecy/utils/dill/_objects.py +0 -0
  69. {prophecy-libs-2.0.0.dev4 → prophecy-libs-2.0.0.dev5}/prophecy/utils/dill/_shims.py +0 -0
  70. {prophecy-libs-2.0.0.dev4 → prophecy-libs-2.0.0.dev5}/prophecy/utils/dill/detect.py +0 -0
  71. {prophecy-libs-2.0.0.dev4 → prophecy-libs-2.0.0.dev5}/prophecy/utils/dill/logger.py +0 -0
  72. {prophecy-libs-2.0.0.dev4 → prophecy-libs-2.0.0.dev5}/prophecy/utils/dill/objtypes.py +0 -0
  73. {prophecy-libs-2.0.0.dev4 → prophecy-libs-2.0.0.dev5}/prophecy/utils/dill/pointers.py +0 -0
  74. {prophecy-libs-2.0.0.dev4 → prophecy-libs-2.0.0.dev5}/prophecy/utils/dill/session.py +0 -0
  75. {prophecy-libs-2.0.0.dev4 → prophecy-libs-2.0.0.dev5}/prophecy/utils/dill/settings.py +0 -0
  76. {prophecy-libs-2.0.0.dev4 → prophecy-libs-2.0.0.dev5}/prophecy/utils/dill/source.py +0 -0
  77. {prophecy-libs-2.0.0.dev4 → prophecy-libs-2.0.0.dev5}/prophecy/utils/dill/temp.py +0 -0
  78. {prophecy-libs-2.0.0.dev4 → prophecy-libs-2.0.0.dev5}/prophecy/utils/faker/__init__.py +0 -0
  79. {prophecy-libs-2.0.0.dev4 → prophecy-libs-2.0.0.dev5}/prophecy/utils/faker/__main__.py +0 -0
  80. {prophecy-libs-2.0.0.dev4 → prophecy-libs-2.0.0.dev5}/prophecy/utils/faker/cli.py +0 -0
  81. {prophecy-libs-2.0.0.dev4 → prophecy-libs-2.0.0.dev5}/prophecy/utils/faker/config.py +0 -0
  82. {prophecy-libs-2.0.0.dev4 → prophecy-libs-2.0.0.dev5}/prophecy/utils/faker/custom_typing.py +0 -0
  83. {prophecy-libs-2.0.0.dev4 → prophecy-libs-2.0.0.dev5}/prophecy/utils/faker/decode/__init__.py +0 -0
  84. {prophecy-libs-2.0.0.dev4 → prophecy-libs-2.0.0.dev5}/prophecy/utils/faker/decode/codes.py +0 -0
  85. {prophecy-libs-2.0.0.dev4 → prophecy-libs-2.0.0.dev5}/prophecy/utils/faker/documentor.py +0 -0
  86. {prophecy-libs-2.0.0.dev4 → prophecy-libs-2.0.0.dev5}/prophecy/utils/faker/exceptions.py +0 -0
  87. {prophecy-libs-2.0.0.dev4 → prophecy-libs-2.0.0.dev5}/prophecy/utils/faker/factory.py +0 -0
  88. {prophecy-libs-2.0.0.dev4 → prophecy-libs-2.0.0.dev5}/prophecy/utils/faker/generator.py +0 -0
  89. {prophecy-libs-2.0.0.dev4 → prophecy-libs-2.0.0.dev5}/prophecy/utils/faker/providers/__init__.py +0 -0
  90. {prophecy-libs-2.0.0.dev4 → prophecy-libs-2.0.0.dev5}/prophecy/utils/faker/providers/address/__init__.py +0 -0
  91. {prophecy-libs-2.0.0.dev4 → prophecy-libs-2.0.0.dev5}/prophecy/utils/faker/providers/address/en/__init__.py +0 -0
  92. {prophecy-libs-2.0.0.dev4 → prophecy-libs-2.0.0.dev5}/prophecy/utils/faker/providers/address/en_US/__init__.py +0 -0
  93. {prophecy-libs-2.0.0.dev4 → prophecy-libs-2.0.0.dev5}/prophecy/utils/faker/providers/date_time/__init__.py +0 -0
  94. {prophecy-libs-2.0.0.dev4 → prophecy-libs-2.0.0.dev5}/prophecy/utils/faker/providers/date_time/en_US/__init__.py +0 -0
  95. {prophecy-libs-2.0.0.dev4 → prophecy-libs-2.0.0.dev5}/prophecy/utils/faker/providers/internet/__init__.py +0 -0
  96. {prophecy-libs-2.0.0.dev4 → prophecy-libs-2.0.0.dev5}/prophecy/utils/faker/providers/internet/en_US/__init__.py +0 -0
  97. {prophecy-libs-2.0.0.dev4 → prophecy-libs-2.0.0.dev5}/prophecy/utils/faker/providers/misc/__init__.py +0 -0
  98. {prophecy-libs-2.0.0.dev4 → prophecy-libs-2.0.0.dev5}/prophecy/utils/faker/providers/misc/en_US/__init__.py +0 -0
  99. {prophecy-libs-2.0.0.dev4 → prophecy-libs-2.0.0.dev5}/prophecy/utils/faker/providers/person/__init__.py +0 -0
  100. {prophecy-libs-2.0.0.dev4 → prophecy-libs-2.0.0.dev5}/prophecy/utils/faker/providers/person/en_US/__init__.py +0 -0
  101. {prophecy-libs-2.0.0.dev4 → prophecy-libs-2.0.0.dev5}/prophecy/utils/faker/providers/phone_number/__init__.py +0 -0
  102. {prophecy-libs-2.0.0.dev4 → prophecy-libs-2.0.0.dev5}/prophecy/utils/faker/providers/phone_number/en_US/__init__.py +0 -0
  103. {prophecy-libs-2.0.0.dev4 → prophecy-libs-2.0.0.dev5}/prophecy/utils/faker/providers/python/__init__.py +0 -0
  104. {prophecy-libs-2.0.0.dev4 → prophecy-libs-2.0.0.dev5}/prophecy/utils/faker/providers/python/en_US/__init__.py +0 -0
  105. {prophecy-libs-2.0.0.dev4 → prophecy-libs-2.0.0.dev5}/prophecy/utils/faker/proxy.py +0 -0
  106. {prophecy-libs-2.0.0.dev4 → prophecy-libs-2.0.0.dev5}/prophecy/utils/faker/utils/__init__.py +0 -0
  107. {prophecy-libs-2.0.0.dev4 → prophecy-libs-2.0.0.dev5}/prophecy/utils/faker/utils/checksums.py +0 -0
  108. {prophecy-libs-2.0.0.dev4 → prophecy-libs-2.0.0.dev5}/prophecy/utils/faker/utils/datasets.py +0 -0
  109. {prophecy-libs-2.0.0.dev4 → prophecy-libs-2.0.0.dev5}/prophecy/utils/faker/utils/decorators.py +0 -0
  110. {prophecy-libs-2.0.0.dev4 → prophecy-libs-2.0.0.dev5}/prophecy/utils/faker/utils/distribution.py +0 -0
  111. {prophecy-libs-2.0.0.dev4 → prophecy-libs-2.0.0.dev5}/prophecy/utils/faker/utils/loading.py +0 -0
  112. {prophecy-libs-2.0.0.dev4 → prophecy-libs-2.0.0.dev5}/prophecy/utils/faker/utils/text.py +0 -0
  113. {prophecy-libs-2.0.0.dev4 → prophecy-libs-2.0.0.dev5}/prophecy/utils/functions.py +0 -0
  114. {prophecy-libs-2.0.0.dev4 → prophecy-libs-2.0.0.dev5}/prophecy/utils/gems_utils.py +0 -0
  115. {prophecy-libs-2.0.0.dev4 → prophecy-libs-2.0.0.dev5}/prophecy/utils/httpclient.py +0 -0
  116. {prophecy-libs-2.0.0.dev4 → prophecy-libs-2.0.0.dev5}/prophecy/utils/json_rpc_layer.py +0 -0
  117. {prophecy-libs-2.0.0.dev4 → prophecy-libs-2.0.0.dev5}/prophecy/utils/metagem_utils.py +0 -0
  118. {prophecy-libs-2.0.0.dev4 → prophecy-libs-2.0.0.dev5}/prophecy/utils/monitoring_utils.py +0 -0
  119. {prophecy-libs-2.0.0.dev4 → prophecy-libs-2.0.0.dev5}/prophecy/utils/pipeline_monitoring.py +0 -0
  120. {prophecy-libs-2.0.0.dev4 → prophecy-libs-2.0.0.dev5}/prophecy/utils/request_processor.py +0 -0
  121. {prophecy-libs-2.0.0.dev4 → prophecy-libs-2.0.0.dev5}/prophecy/utils/secrets.py +0 -0
  122. {prophecy-libs-2.0.0.dev4 → prophecy-libs-2.0.0.dev5}/prophecy/utils/synthetic_data_generator.py +0 -0
  123. {prophecy-libs-2.0.0.dev4 → prophecy-libs-2.0.0.dev5}/prophecy/utils/transpiler/__init__.py +0 -0
  124. {prophecy-libs-2.0.0.dev4 → prophecy-libs-2.0.0.dev5}/prophecy/utils/transpiler/abi_base.py +0 -0
  125. {prophecy-libs-2.0.0.dev4 → prophecy-libs-2.0.0.dev5}/prophecy/utils/transpiler/abi_core_fcns.py +0 -0
  126. {prophecy-libs-2.0.0.dev4 → prophecy-libs-2.0.0.dev5}/prophecy/utils/transpiler/abi_fcn_wrapper.py +0 -0
  127. {prophecy-libs-2.0.0.dev4 → prophecy-libs-2.0.0.dev5}/prophecy/utils/transpiler/dataframe_fcns.py +0 -0
  128. {prophecy-libs-2.0.0.dev4 → prophecy-libs-2.0.0.dev5}/prophecy/utils/transpiler/dml_schema.py +0 -0
  129. {prophecy-libs-2.0.0.dev4 → prophecy-libs-2.0.0.dev5}/prophecy/utils/transpiler/fixed_file_schema.py +0 -0
  130. {prophecy-libs-2.0.0.dev4 → prophecy-libs-2.0.0.dev5}/prophecy/utils/utils.py +0 -0
  131. {prophecy-libs-2.0.0.dev4 → prophecy-libs-2.0.0.dev5}/prophecy_libs.egg-info/SOURCES.txt +0 -0
  132. {prophecy-libs-2.0.0.dev4 → prophecy-libs-2.0.0.dev5}/prophecy_libs.egg-info/dependency_links.txt +0 -0
  133. {prophecy-libs-2.0.0.dev4 → prophecy-libs-2.0.0.dev5}/prophecy_libs.egg-info/not-zip-safe +0 -0
  134. {prophecy-libs-2.0.0.dev4 → prophecy-libs-2.0.0.dev5}/prophecy_libs.egg-info/requires.txt +0 -0
  135. {prophecy-libs-2.0.0.dev4 → prophecy-libs-2.0.0.dev5}/prophecy_libs.egg-info/top_level.txt +0 -0
  136. {prophecy-libs-2.0.0.dev4 → prophecy-libs-2.0.0.dev5}/setup.cfg +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 1.0
2
2
  Name: prophecy-libs
3
- Version: 2.0.0.dev4
3
+ Version: 2.0.0.dev5
4
4
  Summary: Helper library for prophecy generated code
5
5
  Home-page: https://github.com/SimpleDataLabsInc/prophecy-python-libs
6
6
  Author: UNKNOWN
@@ -7,16 +7,15 @@ from functools import wraps
7
7
  import logging
8
8
  import os
9
9
  import sys
10
+ import re
10
11
 
11
- # Check if 'spark' is present in globals() or locals(), and is not None.
12
- # If not, attempt to initialize it using SparkSessionProxy for serverless
13
- if not globals().get("spark", None):
14
- try:
15
- from server_rest import SparkSessionProxy
16
- spark = SparkSessionProxy.get_instance()
17
- except Exception as e:
18
- print(f"Failed to initialize 'spark' instance. Error: {e}")
19
- raise Exception("Failed to initialize 'spark' instance")
12
+ # Attempt to initialize it using SparkSessionProxy for serverless
13
+ try:
14
+ from server_rest import SparkSessionProxy
15
+ spark = SparkSessionProxy.get_instance()
16
+ except Exception as e:
17
+ print(f"Failed to initialize 'spark' instance. Error: {e}")
18
+ raise Exception("Failed to initialize 'spark' instance")
20
19
 
21
20
  # Monkey Patch Caching
22
21
  try:
@@ -311,6 +310,7 @@ from pyspark.sql.types import (
311
310
  DecimalType,
312
311
  DoubleType,
313
312
  IntegerType,
313
+ StructField,
314
314
  )
315
315
  from datetime import datetime, date, timedelta
316
316
  from decimal import Decimal
@@ -747,6 +747,26 @@ class DataSampleLoader:
747
747
  Lightweight replacement for Databricks' built-in ``display`` that returns the
748
748
  exact JSON payload your code receives through the DBX Commands API.
749
749
  """
750
+
751
+
752
+
753
+ def to_ddl(dt: DataType) -> str:
754
+ _valid_ident = re.compile(r"^[A-Za-z_][A-Za-z0-9_]*$")
755
+ def quote_ident(name: str) -> str:
756
+ return name if _valid_ident.fullmatch(name) else f"`{name.replace('`', '``')}`"
757
+
758
+ if isinstance(dt, ArrayType):
759
+ return f"array<{to_ddl(dt.elementType)}>"
760
+ if isinstance(dt, MapType):
761
+ return f"map<{to_ddl(dt.keyType)},{to_ddl(dt.valueType)}>"
762
+ if isinstance(dt, StructType):
763
+ inner = ",".join(
764
+ f"{quote_ident(f.name)}:{to_ddl(f.dataType)}"
765
+ for f in dt.fields
766
+ )
767
+ return f"struct<{inner}>"
768
+ return dt.simpleString()
769
+
750
770
  if df is None:
751
771
  return
752
772
 
@@ -755,8 +775,8 @@ class DataSampleLoader:
755
775
  schema: list[dict] = [
756
776
  {
757
777
  "name": field.name,
758
- "type": json.dumps(field.dataType.simpleString()), # e.g. "\"long\""
759
- "metadata": json.dumps(field.metadata or {}), # e.g. "\"{}\""
778
+ "type": json.dumps(to_ddl(field.dataType)),
779
+ "metadata": json.dumps(field.metadata or {}),
760
780
  }
761
781
  for field in df.schema # type: StructField
762
782
  ]
@@ -770,11 +790,14 @@ class DataSampleLoader:
770
790
  OUTPUT_FILE = "/tmp/display_output.json"
771
791
  if not Path(OUTPUT_FILE).exists():
772
792
  try:
793
+ serialized = cls._json_serialize(display_res)
794
+ if isinstance(serialized, bytes):
795
+ serialized = serialized.decode("utf-8")
773
796
  Path(OUTPUT_FILE).write_text(
774
- json.dumps(display_res, ensure_ascii=False), encoding="utf-8"
797
+ serialized, encoding="utf-8"
775
798
  )
776
799
  logging.info(
777
- f"Successfully wrote display_res: {display_res} to {OUTPUT_FILE}"
800
+ f"Successfully wrote display_res: {serialized} to {OUTPUT_FILE}"
778
801
  )
779
802
  except Exception as e:
780
803
  logging.error("Failed to write %s: %s", OUTPUT_FILE, e)
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 1.0
2
2
  Name: prophecy-libs
3
- Version: 2.0.0.dev4
3
+ Version: 2.0.0.dev5
4
4
  Summary: Helper library for prophecy generated code
5
5
  Home-page: https://github.com/SimpleDataLabsInc/prophecy-python-libs
6
6
  Author: UNKNOWN
@@ -2,7 +2,7 @@ from setuptools import setup, find_packages
2
2
 
3
3
  setup(
4
4
  name="prophecy-libs",
5
- version="2.0.0.dev4",
5
+ version="2.0.0.dev5",
6
6
  url="https://github.com/SimpleDataLabsInc/prophecy-python-libs",
7
7
  packages=find_packages(exclude=["test.*", "test"]),
8
8
  description="Helper library for prophecy generated code",