ygg 0.1.46__py3-none-any.whl → 0.1.47__py3-none-any.whl

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.
@@ -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
@@ -1,10 +1,10 @@
1
- ygg-0.1.46.dist-info/licenses/LICENSE,sha256=HrhfyXIkWY2tGFK11kg7vPCqhgh5DcxleloqdhrpyMY,11558
1
+ ygg-0.1.47.dist-info/licenses/LICENSE,sha256=HrhfyXIkWY2tGFK11kg7vPCqhgh5DcxleloqdhrpyMY,11558
2
2
  yggdrasil/__init__.py,sha256=PfH7Xwt6uue6oqe6S5V8NhDJcVQClkKrBE1KXhdelZc,117
3
- yggdrasil/version.py,sha256=Jfjdb6r4PUMCYLyBcF_gpjjUzE1bkfL7XTvU1GuAtdA,22
3
+ yggdrasil/version.py,sha256=TPABAGTrArQ_wApv_9aI4NXV4UtQ6uCrBrlNiCowSWI,22
4
4
  yggdrasil/databricks/__init__.py,sha256=skctY2c8W-hI81upx9F_PWRe5ishL3hrdiTuizgDjdw,152
5
5
  yggdrasil/databricks/compute/__init__.py,sha256=NvdzmaJSNYY1uJthv1hHdBuNu3bD_-Z65DWnaJt9yXg,289
6
6
  yggdrasil/databricks/compute/cluster.py,sha256=HI9811oBCpWeo4V921FVAlRUXKXM4XO7HS9DQVOuzpM,41340
7
- yggdrasil/databricks/compute/execution_context.py,sha256=SMFjgWqp9CEgruJszxTAmqg3iSREb7OG0nYTUn2H3ec,21946
7
+ yggdrasil/databricks/compute/execution_context.py,sha256=anOxfNms83dZ5FTknbfT8uj889LjheMqEx9W5NtJC9E,23094
8
8
  yggdrasil/databricks/compute/remote.py,sha256=nEN_Fr1Ouul_iKOf4B5QjEGscYAcl7nHjGsl2toRzrU,2874
9
9
  yggdrasil/databricks/jobs/__init__.py,sha256=snxGSJb0M5I39v0y3IR-uEeSlZR248cQ_4DJ1sYs-h8,154
10
10
  yggdrasil/databricks/jobs/config.py,sha256=9LGeHD04hbfy0xt8_6oobC4moKJh4_DTjZiK4Q2Tqjk,11557
@@ -56,8 +56,8 @@ yggdrasil/types/cast/registry.py,sha256=_zdFGmUBB7P-e_LIcJlOxMcxAkXoA-UXB6HqLMgT
56
56
  yggdrasil/types/cast/spark_cast.py,sha256=_KAsl1DqmKMSfWxqhVE7gosjYdgiL1C5bDQv6eP3HtA,24926
57
57
  yggdrasil/types/cast/spark_pandas_cast.py,sha256=BuTiWrdCANZCdD_p2MAytqm74eq-rdRXd-LGojBRrfU,5023
58
58
  yggdrasil/types/cast/spark_polars_cast.py,sha256=btmZNHXn2NSt3fUuB4xg7coaE0RezIBdZD92H8NK0Jw,9073
59
- ygg-0.1.46.dist-info/METADATA,sha256=V8VQXfyZROSBPEU21Rv-xykPqQkg3hhvG4k2OdP8gNc,19204
60
- ygg-0.1.46.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
61
- ygg-0.1.46.dist-info/entry_points.txt,sha256=6q-vpWG3kvw2dhctQ0LALdatoeefkN855Ev02I1dKGY,70
62
- ygg-0.1.46.dist-info/top_level.txt,sha256=iBe9Kk4VIVbLpgv_p8OZUIfxgj4dgJ5wBg6vO3rigso,10
63
- ygg-0.1.46.dist-info/RECORD,,
59
+ ygg-0.1.47.dist-info/METADATA,sha256=gX37uRIIu4qh1VRItyOxOZK1_WNVvfxX6gBbb5DCN0Q,19204
60
+ ygg-0.1.47.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
61
+ ygg-0.1.47.dist-info/entry_points.txt,sha256=6q-vpWG3kvw2dhctQ0LALdatoeefkN855Ev02I1dKGY,70
62
+ ygg-0.1.47.dist-info/top_level.txt,sha256=iBe9Kk4VIVbLpgv_p8OZUIfxgj4dgJ5wBg6vO3rigso,10
63
+ ygg-0.1.47.dist-info/RECORD,,
@@ -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
yggdrasil/version.py CHANGED
@@ -1 +1 @@
1
- __version__ = "0.1.46"
1
+ __version__ = "0.1.47"
File without changes