metaflow 2.13.8__py2.py3-none-any.whl → 2.13.9__py2.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.
@@ -10,6 +10,7 @@ from metaflow.exception import MetaflowException
10
10
  from metaflow.util import which
11
11
 
12
12
  from .utils import MICROMAMBA_MIRROR_URL, MICROMAMBA_URL, conda_platform
13
+ from threading import Lock
13
14
 
14
15
 
15
16
  class MicromambaException(MetaflowException):
@@ -54,22 +55,33 @@ class Micromamba(object):
54
55
  or which(os.path.join(self._path_to_hidden_micromamba, "bin/micromamba"))
55
56
  )
56
57
 
58
+ # We keep a mutex as environments are resolved in parallel,
59
+ # which causes a race condition in case micromamba needs to be installed first.
60
+ self.install_mutex = Lock()
61
+
57
62
  @property
58
- def bin(self):
63
+ def bin(self) -> str:
59
64
  "Defer installing Micromamba until when the binary path is actually requested"
60
65
  if self._bin is not None:
61
66
  return self._bin
62
- # Install Micromamba on the fly.
63
- # TODO: Make this optional at some point.
64
- _install_micromamba(self._path_to_hidden_micromamba)
65
- self._bin = which(
66
- os.path.join(self._path_to_hidden_micromamba, "bin/micromamba")
67
- )
67
+ with self.install_mutex:
68
+ # another check as micromamba might have been installed when the mutex is released.
69
+ if self._bin is not None:
70
+ return self._bin
71
+
72
+ # Install Micromamba on the fly.
73
+ # TODO: Make this optional at some point.
74
+ _install_micromamba(self._path_to_hidden_micromamba)
75
+ self._bin = which(
76
+ os.path.join(self._path_to_hidden_micromamba, "bin/micromamba")
77
+ )
78
+
79
+ if self._bin is None:
80
+ msg = "No installation for *Micromamba* found.\n"
81
+ msg += "Visit https://mamba.readthedocs.io/en/latest/micromamba-installation.html for installation instructions."
82
+ raise MetaflowException(msg)
68
83
 
69
- if self._bin is None:
70
- msg = "No installation for *Micromamba* found.\n"
71
- msg += "Visit https://mamba.readthedocs.io/en/latest/micromamba-installation.html for installation instructions."
72
- raise MetaflowException(msg)
84
+ return self._bin
73
85
 
74
86
  def solve(self, id_, packages, python, platform):
75
87
  # Performance enhancements
metaflow/version.py CHANGED
@@ -1 +1 @@
1
- metaflow_version = "2.13.8"
1
+ metaflow_version = "2.13.9"
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.2
2
2
  Name: metaflow
3
- Version: 2.13.8
3
+ Version: 2.13.9
4
4
  Summary: Metaflow: More Data Science, Less Engineering
5
5
  Author: Metaflow Developers
6
6
  Author-email: help@metaflow.org
@@ -26,7 +26,7 @@ License-File: LICENSE
26
26
  Requires-Dist: requests
27
27
  Requires-Dist: boto3
28
28
  Provides-Extra: stubs
29
- Requires-Dist: metaflow-stubs==2.13.8; extra == "stubs"
29
+ Requires-Dist: metaflow-stubs==2.13.9; extra == "stubs"
30
30
  Dynamic: author
31
31
  Dynamic: author-email
32
32
  Dynamic: classifier
@@ -36,7 +36,7 @@ metaflow/tuple_util.py,sha256=_G5YIEhuugwJ_f6rrZoelMFak3DqAR2tt_5CapS1XTY,830
36
36
  metaflow/unbounded_foreach.py,sha256=p184WMbrMJ3xKYHwewj27ZhRUsSj_kw1jlye5gA9xJk,387
37
37
  metaflow/util.py,sha256=hKjHl6NYJkKBSU2tzdVbddfOX1zWK73T4GCO42A0XB4,14666
38
38
  metaflow/vendor.py,sha256=FchtA9tH22JM-eEtJ2c9FpUdMn8sSb1VHuQS56EcdZk,5139
39
- metaflow/version.py,sha256=FEHBak2CfTbUlqb3K5Pgul4zi51FnPR8RcetOEXQBds,28
39
+ metaflow/version.py,sha256=xeHffcr9LL_YPy5rUqIu5yORGDOAVqaxh4ieE2_npAY,28
40
40
  metaflow/_vendor/__init__.py,sha256=y_CiwUD3l4eAKvTVDZeqgVujMy31cAM1qjAB-HfI-9s,353
41
41
  metaflow/_vendor/typing_extensions.py,sha256=0nUs5p1A_UrZigrAVBoOEM6TxU37zzPDUtiij1ZwpNc,110417
42
42
  metaflow/_vendor/zipp.py,sha256=ajztOH-9I7KA_4wqDYygtHa6xUBVZgFpmZ8FE74HHHI,8425
@@ -303,7 +303,7 @@ metaflow/plugins/pypi/__init__.py,sha256=0YFZpXvX7HCkyBFglatual7XGifdA1RwC3U4kci
303
303
  metaflow/plugins/pypi/bootstrap.py,sha256=oRfJkAp99R338nYX2wq4FrV0Ax5h4QqqifNmAXrM3CY,14892
304
304
  metaflow/plugins/pypi/conda_decorator.py,sha256=piFcE4uGmWhhbGlxMK0GHd7BGEyqy6r9BFy8Mjoi80Q,15937
305
305
  metaflow/plugins/pypi/conda_environment.py,sha256=d5BAiY_aJJdlJ5h3N5nGSDmVoOY-8BVKqEbA5nrCpCY,22113
306
- metaflow/plugins/pypi/micromamba.py,sha256=Rzjg3e_H4bj2zp3liobZmQwSoeRqh7tSDsbqWKcoEBg,16008
306
+ metaflow/plugins/pypi/micromamba.py,sha256=LLJ2dGGOEyld07W8iI6dtE01h2Y1PQnBhU-dMBssZ3c,16502
307
307
  metaflow/plugins/pypi/pip.py,sha256=H0cIy8odpZ-JTn4SwF0b74tuC3uRU7X8TdAQJ2kODG8,13971
308
308
  metaflow/plugins/pypi/pypi_decorator.py,sha256=ybNgo-T5Z_0W2KNuED0pdjyI0qygZ4a1MXAzKqdHt_E,7250
309
309
  metaflow/plugins/pypi/pypi_environment.py,sha256=FYMg8kF3lXqcLfRYWD83a9zpVjcoo_TARqMGZ763rRk,230
@@ -360,9 +360,9 @@ metaflow/user_configs/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3h
360
360
  metaflow/user_configs/config_decorators.py,sha256=Tj0H88UT8Q6pylXxHXgiA6cqnNlw4d3mR7M8J9g3ZUg,20139
361
361
  metaflow/user_configs/config_options.py,sha256=t6c9KNVGz9GNK55YAow74Lof4sDZqCbeeZSzldUBFmA,21072
362
362
  metaflow/user_configs/config_parameters.py,sha256=oeJGVKu1ao_YQX6Lg6P2FEv5k5-_F4sARLlVpTW9ezM,15502
363
- metaflow-2.13.8.dist-info/LICENSE,sha256=nl_Lt5v9VvJ-5lWJDT4ddKAG-VZ-2IaLmbzpgYDz2hU,11343
364
- metaflow-2.13.8.dist-info/METADATA,sha256=M7dJjju3WKrdgrzBoRr7WjnVBseiWqfqRJEvfqD6y6M,6121
365
- metaflow-2.13.8.dist-info/WHEEL,sha256=9Hm2OB-j1QcCUq9Jguht7ayGIIZBRTdOXD1qg9cCgPM,109
366
- metaflow-2.13.8.dist-info/entry_points.txt,sha256=IKwTN1T3I5eJL3uo_vnkyxVffcgnRdFbKwlghZfn27k,57
367
- metaflow-2.13.8.dist-info/top_level.txt,sha256=v1pDHoWaSaKeuc5fKTRSfsXCKSdW1zvNVmvA-i0if3o,9
368
- metaflow-2.13.8.dist-info/RECORD,,
363
+ metaflow-2.13.9.dist-info/LICENSE,sha256=nl_Lt5v9VvJ-5lWJDT4ddKAG-VZ-2IaLmbzpgYDz2hU,11343
364
+ metaflow-2.13.9.dist-info/METADATA,sha256=7wOsTSpzHy1tnEuiaSz8qvAk4A5vE_zd4m98Hk-rOZI,6121
365
+ metaflow-2.13.9.dist-info/WHEEL,sha256=9Hm2OB-j1QcCUq9Jguht7ayGIIZBRTdOXD1qg9cCgPM,109
366
+ metaflow-2.13.9.dist-info/entry_points.txt,sha256=IKwTN1T3I5eJL3uo_vnkyxVffcgnRdFbKwlghZfn27k,57
367
+ metaflow-2.13.9.dist-info/top_level.txt,sha256=v1pDHoWaSaKeuc5fKTRSfsXCKSdW1zvNVmvA-i0if3o,9
368
+ metaflow-2.13.9.dist-info/RECORD,,