ygg 0.1.46__tar.gz → 0.1.47__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 (69) hide show
  1. {ygg-0.1.46 → ygg-0.1.47}/PKG-INFO +1 -1
  2. {ygg-0.1.46 → ygg-0.1.47}/pyproject.toml +1 -1
  3. {ygg-0.1.46 → ygg-0.1.47}/src/ygg.egg-info/PKG-INFO +1 -1
  4. {ygg-0.1.46 → ygg-0.1.47}/src/yggdrasil/databricks/compute/execution_context.py +31 -1
  5. ygg-0.1.47/src/yggdrasil/version.py +1 -0
  6. ygg-0.1.46/src/yggdrasil/version.py +0 -1
  7. {ygg-0.1.46 → ygg-0.1.47}/LICENSE +0 -0
  8. {ygg-0.1.46 → ygg-0.1.47}/README.md +0 -0
  9. {ygg-0.1.46 → ygg-0.1.47}/setup.cfg +0 -0
  10. {ygg-0.1.46 → ygg-0.1.47}/src/ygg.egg-info/SOURCES.txt +0 -0
  11. {ygg-0.1.46 → ygg-0.1.47}/src/ygg.egg-info/dependency_links.txt +0 -0
  12. {ygg-0.1.46 → ygg-0.1.47}/src/ygg.egg-info/entry_points.txt +0 -0
  13. {ygg-0.1.46 → ygg-0.1.47}/src/ygg.egg-info/requires.txt +0 -0
  14. {ygg-0.1.46 → ygg-0.1.47}/src/ygg.egg-info/top_level.txt +0 -0
  15. {ygg-0.1.46 → ygg-0.1.47}/src/yggdrasil/__init__.py +0 -0
  16. {ygg-0.1.46 → ygg-0.1.47}/src/yggdrasil/databricks/__init__.py +0 -0
  17. {ygg-0.1.46 → ygg-0.1.47}/src/yggdrasil/databricks/compute/__init__.py +0 -0
  18. {ygg-0.1.46 → ygg-0.1.47}/src/yggdrasil/databricks/compute/cluster.py +0 -0
  19. {ygg-0.1.46 → ygg-0.1.47}/src/yggdrasil/databricks/compute/remote.py +0 -0
  20. {ygg-0.1.46 → ygg-0.1.47}/src/yggdrasil/databricks/jobs/__init__.py +0 -0
  21. {ygg-0.1.46 → ygg-0.1.47}/src/yggdrasil/databricks/jobs/config.py +0 -0
  22. {ygg-0.1.46 → ygg-0.1.47}/src/yggdrasil/databricks/sql/__init__.py +0 -0
  23. {ygg-0.1.46 → ygg-0.1.47}/src/yggdrasil/databricks/sql/engine.py +0 -0
  24. {ygg-0.1.46 → ygg-0.1.47}/src/yggdrasil/databricks/sql/exceptions.py +0 -0
  25. {ygg-0.1.46 → ygg-0.1.47}/src/yggdrasil/databricks/sql/statement_result.py +0 -0
  26. {ygg-0.1.46 → ygg-0.1.47}/src/yggdrasil/databricks/sql/types.py +0 -0
  27. {ygg-0.1.46 → ygg-0.1.47}/src/yggdrasil/databricks/sql/warehouse.py +0 -0
  28. {ygg-0.1.46 → ygg-0.1.47}/src/yggdrasil/databricks/workspaces/__init__.py +0 -0
  29. {ygg-0.1.46 → ygg-0.1.47}/src/yggdrasil/databricks/workspaces/filesytem.py +0 -0
  30. {ygg-0.1.46 → ygg-0.1.47}/src/yggdrasil/databricks/workspaces/io.py +0 -0
  31. {ygg-0.1.46 → ygg-0.1.47}/src/yggdrasil/databricks/workspaces/path.py +0 -0
  32. {ygg-0.1.46 → ygg-0.1.47}/src/yggdrasil/databricks/workspaces/path_kind.py +0 -0
  33. {ygg-0.1.46 → ygg-0.1.47}/src/yggdrasil/databricks/workspaces/workspace.py +0 -0
  34. {ygg-0.1.46 → ygg-0.1.47}/src/yggdrasil/dataclasses/__init__.py +0 -0
  35. {ygg-0.1.46 → ygg-0.1.47}/src/yggdrasil/dataclasses/dataclass.py +0 -0
  36. {ygg-0.1.46 → ygg-0.1.47}/src/yggdrasil/libs/__init__.py +0 -0
  37. {ygg-0.1.46 → ygg-0.1.47}/src/yggdrasil/libs/databrickslib.py +0 -0
  38. {ygg-0.1.46 → ygg-0.1.47}/src/yggdrasil/libs/extensions/__init__.py +0 -0
  39. {ygg-0.1.46 → ygg-0.1.47}/src/yggdrasil/libs/extensions/polars_extensions.py +0 -0
  40. {ygg-0.1.46 → ygg-0.1.47}/src/yggdrasil/libs/extensions/spark_extensions.py +0 -0
  41. {ygg-0.1.46 → ygg-0.1.47}/src/yggdrasil/libs/pandaslib.py +0 -0
  42. {ygg-0.1.46 → ygg-0.1.47}/src/yggdrasil/libs/polarslib.py +0 -0
  43. {ygg-0.1.46 → ygg-0.1.47}/src/yggdrasil/libs/sparklib.py +0 -0
  44. {ygg-0.1.46 → ygg-0.1.47}/src/yggdrasil/pyutils/__init__.py +0 -0
  45. {ygg-0.1.46 → ygg-0.1.47}/src/yggdrasil/pyutils/callable_serde.py +0 -0
  46. {ygg-0.1.46 → ygg-0.1.47}/src/yggdrasil/pyutils/equality.py +0 -0
  47. {ygg-0.1.46 → ygg-0.1.47}/src/yggdrasil/pyutils/exceptions.py +0 -0
  48. {ygg-0.1.46 → ygg-0.1.47}/src/yggdrasil/pyutils/expiring_dict.py +0 -0
  49. {ygg-0.1.46 → ygg-0.1.47}/src/yggdrasil/pyutils/modules.py +0 -0
  50. {ygg-0.1.46 → ygg-0.1.47}/src/yggdrasil/pyutils/parallel.py +0 -0
  51. {ygg-0.1.46 → ygg-0.1.47}/src/yggdrasil/pyutils/python_env.py +0 -0
  52. {ygg-0.1.46 → ygg-0.1.47}/src/yggdrasil/pyutils/retry.py +0 -0
  53. {ygg-0.1.46 → ygg-0.1.47}/src/yggdrasil/requests/__init__.py +0 -0
  54. {ygg-0.1.46 → ygg-0.1.47}/src/yggdrasil/requests/msal.py +0 -0
  55. {ygg-0.1.46 → ygg-0.1.47}/src/yggdrasil/requests/session.py +0 -0
  56. {ygg-0.1.46 → ygg-0.1.47}/src/yggdrasil/types/__init__.py +0 -0
  57. {ygg-0.1.46 → ygg-0.1.47}/src/yggdrasil/types/cast/__init__.py +0 -0
  58. {ygg-0.1.46 → ygg-0.1.47}/src/yggdrasil/types/cast/arrow_cast.py +0 -0
  59. {ygg-0.1.46 → ygg-0.1.47}/src/yggdrasil/types/cast/cast_options.py +0 -0
  60. {ygg-0.1.46 → ygg-0.1.47}/src/yggdrasil/types/cast/pandas_cast.py +0 -0
  61. {ygg-0.1.46 → ygg-0.1.47}/src/yggdrasil/types/cast/polars_cast.py +0 -0
  62. {ygg-0.1.46 → ygg-0.1.47}/src/yggdrasil/types/cast/polars_pandas_cast.py +0 -0
  63. {ygg-0.1.46 → ygg-0.1.47}/src/yggdrasil/types/cast/registry.py +0 -0
  64. {ygg-0.1.46 → ygg-0.1.47}/src/yggdrasil/types/cast/spark_cast.py +0 -0
  65. {ygg-0.1.46 → ygg-0.1.47}/src/yggdrasil/types/cast/spark_pandas_cast.py +0 -0
  66. {ygg-0.1.46 → ygg-0.1.47}/src/yggdrasil/types/cast/spark_polars_cast.py +0 -0
  67. {ygg-0.1.46 → ygg-0.1.47}/src/yggdrasil/types/libs.py +0 -0
  68. {ygg-0.1.46 → ygg-0.1.47}/src/yggdrasil/types/python_arrow.py +0 -0
  69. {ygg-0.1.46 → ygg-0.1.47}/src/yggdrasil/types/python_defaults.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: ygg
3
- Version: 0.1.46
3
+ Version: 0.1.47
4
4
  Summary: Type-friendly utilities for moving data between Python objects, Arrow, Polars, Pandas, Spark, and Databricks
5
5
  Author: Yggdrasil contributors
6
6
  License: Apache License
@@ -4,7 +4,7 @@ build-backend = "setuptools.build_meta"
4
4
 
5
5
  [project]
6
6
  name = "ygg"
7
- version = "0.1.46"
7
+ version = "0.1.47"
8
8
  description = "Type-friendly utilities for moving data between Python objects, Arrow, Polars, Pandas, Spark, and Databricks"
9
9
  readme = { file = "README.md", content-type = "text/markdown" }
10
10
  license = { file = "LICENSE" }
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: ygg
3
- Version: 0.1.46
3
+ Version: 0.1.47
4
4
  Summary: Type-friendly utilities for moving data between Python objects, Arrow, Polars, Pandas, Spark, and Databricks
5
5
  Author: Yggdrasil contributors
6
6
  License: Apache License
@@ -456,7 +456,37 @@ print(json.dumps(meta))"""
456
456
  timeout=timeout or dt.timedelta(minutes=20)
457
457
  )
458
458
 
459
- return self._decode_result(result, result_tag=result_tag, print_stdout=print_stdout)
459
+ try:
460
+ return self._decode_result(result, result_tag=result_tag, print_stdout=print_stdout)
461
+ except ModuleNotFoundError as remote_module_error:
462
+ _MOD_NOT_FOUND_RE = re.compile(r"No module named ['\"]([^'\"]+)['\"]")
463
+ module_name = _MOD_NOT_FOUND_RE.search(str(remote_module_error))
464
+ module_name = module_name.group(1) if module_name else None
465
+ module_name = module_name.split(".")[0]
466
+
467
+ if module_name and "yggdrasil" not in module_name:
468
+ LOGGER.debug(
469
+ "Installing missing module %s from local environment",
470
+ module_name,
471
+ )
472
+
473
+ self.install_temporary_libraries(
474
+ libraries=[module_name],
475
+ )
476
+
477
+ LOGGER.warning(
478
+ "Installed missing module %s from local environment",
479
+ module_name,
480
+ )
481
+
482
+ return self.execute_command(
483
+ command=command,
484
+ timeout=timeout,
485
+ result_tag=result_tag,
486
+ print_stdout=print_stdout
487
+ )
488
+
489
+ raise remote_module_error
460
490
 
461
491
  # ------------------------------------------------------------------
462
492
  # generic local → remote uploader, via remote python
@@ -0,0 +1 @@
1
+ __version__ = "0.1.47"
@@ -1 +0,0 @@
1
- __version__ = "0.1.46"
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes