metaflow 2.17.0__py2.py3-none-any.whl → 2.17.1__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.
- metaflow/cmd/make_wrapper.py +30 -0
- metaflow/metaflow_version.py +15 -0
- metaflow/runner/deployer_impl.py +15 -7
- metaflow/user_decorators/mutable_flow.py +5 -5
- metaflow/version.py +1 -1
- {metaflow-2.17.0.data → metaflow-2.17.1.data}/data/share/metaflow/devtools/Makefile +3 -2
- {metaflow-2.17.0.data → metaflow-2.17.1.data}/data/share/metaflow/devtools/Tiltfile +2 -2
- {metaflow-2.17.0.dist-info → metaflow-2.17.1.dist-info}/METADATA +2 -2
- {metaflow-2.17.0.dist-info → metaflow-2.17.1.dist-info}/RECORD +14 -14
- {metaflow-2.17.0.data → metaflow-2.17.1.data}/data/share/metaflow/devtools/pick_services.sh +0 -0
- {metaflow-2.17.0.dist-info → metaflow-2.17.1.dist-info}/WHEEL +0 -0
- {metaflow-2.17.0.dist-info → metaflow-2.17.1.dist-info}/entry_points.txt +0 -0
- {metaflow-2.17.0.dist-info → metaflow-2.17.1.dist-info}/licenses/LICENSE +0 -0
- {metaflow-2.17.0.dist-info → metaflow-2.17.1.dist-info}/top_level.txt +0 -0
metaflow/cmd/make_wrapper.py
CHANGED
@@ -28,6 +28,36 @@ def find_makefile():
|
|
28
28
|
if makefile_candidate.is_file():
|
29
29
|
return makefile_candidate
|
30
30
|
|
31
|
+
# 4) When developing, Metaflow might be installed with --editable, which means the devtools will not be located within site-packages.
|
32
|
+
# We read the actual location from package metadata in this case, but only do this heavier operation if the above lookups fail.
|
33
|
+
try:
|
34
|
+
import json
|
35
|
+
from importlib.metadata import Distribution
|
36
|
+
|
37
|
+
direct_url = Distribution.from_name("metaflow").read_text("direct_url.json")
|
38
|
+
if direct_url:
|
39
|
+
content = json.loads(direct_url)
|
40
|
+
url = content.get("url", "")
|
41
|
+
if not url.startswith("file://"):
|
42
|
+
return None
|
43
|
+
|
44
|
+
makefile_candidate = (
|
45
|
+
Path(url.replace("file://", "")) / "devtools" / "Makefile"
|
46
|
+
)
|
47
|
+
if makefile_candidate.is_file():
|
48
|
+
return makefile_candidate
|
49
|
+
else:
|
50
|
+
# No dist metadata found. This is tied to the version of pip being used
|
51
|
+
# Do not bother with .egg-link installs due to the handling of the file contents being a headache due to lack of a unified spec.
|
52
|
+
print(
|
53
|
+
"Could not locate an installation of Metaflow. No package metadata found."
|
54
|
+
)
|
55
|
+
print(
|
56
|
+
"If Metaflow is installed as editable, try upgrading the version of pip and reinstalling in order to generate proper package metadata.\n"
|
57
|
+
)
|
58
|
+
except Exception:
|
59
|
+
return None
|
60
|
+
|
31
61
|
return None
|
32
62
|
|
33
63
|
|
metaflow/metaflow_version.py
CHANGED
@@ -133,6 +133,16 @@ def read_info_version():
|
|
133
133
|
return None
|
134
134
|
|
135
135
|
|
136
|
+
def make_public_version(version_string):
|
137
|
+
"""
|
138
|
+
Takes a complex version string and returns a public, PEP 440-compliant version.
|
139
|
+
It removes local version identifiers (+...) and development markers (-...).
|
140
|
+
"""
|
141
|
+
base_version = version_string.split("+", 1)[0]
|
142
|
+
public_version = base_version.split("-", 1)[0]
|
143
|
+
return public_version
|
144
|
+
|
145
|
+
|
136
146
|
def get_version(public=False):
|
137
147
|
"""Tracks the version number.
|
138
148
|
|
@@ -170,6 +180,11 @@ def get_version(public=False):
|
|
170
180
|
) # Version info is cached in INFO file; includes extension info
|
171
181
|
|
172
182
|
if version:
|
183
|
+
# If we have a version from the INFO file, use it directly.
|
184
|
+
# However, if we are asked for a public version, we parse it to make sure
|
185
|
+
# that no local information is included.
|
186
|
+
if public:
|
187
|
+
version = make_public_version(version)
|
173
188
|
_version_cache[public] = version
|
174
189
|
return version
|
175
190
|
|
metaflow/runner/deployer_impl.py
CHANGED
@@ -3,7 +3,7 @@ import json
|
|
3
3
|
import os
|
4
4
|
import sys
|
5
5
|
|
6
|
-
from typing import Any, ClassVar, Dict, Optional, TYPE_CHECKING, Type
|
6
|
+
from typing import Any, ClassVar, Dict, Optional, TYPE_CHECKING, Type, List
|
7
7
|
|
8
8
|
from metaflow.metaflow_config import CLICK_API_PROCESS_CONFIG
|
9
9
|
|
@@ -67,15 +67,10 @@ class DeployerImpl(object):
|
|
67
67
|
|
68
68
|
# Reload the CLI with an "empty" flow -- this will remove any configuration
|
69
69
|
# and parameter options. They are re-added in from_cli (called below).
|
70
|
-
to_reload = [
|
71
|
-
"metaflow.cli",
|
72
|
-
"metaflow.cli_components.run_cmds",
|
73
|
-
"metaflow.cli_components.init_cmd",
|
74
|
-
]
|
75
70
|
with flow_context(None):
|
76
71
|
[
|
77
72
|
importlib.reload(sys.modules[module])
|
78
|
-
for module in to_reload
|
73
|
+
for module in self.to_reload
|
79
74
|
if module in sys.modules
|
80
75
|
]
|
81
76
|
|
@@ -102,6 +97,19 @@ class DeployerImpl(object):
|
|
102
97
|
self.top_level_kwargs = kwargs
|
103
98
|
self.api = MetaflowAPI.from_cli(self.flow_file, start)
|
104
99
|
|
100
|
+
@property
|
101
|
+
def to_reload(self) -> List[str]:
|
102
|
+
"""
|
103
|
+
List of modules to reload when the deployer is initialized.
|
104
|
+
This is used to ensure that the CLI is in a clean state before
|
105
|
+
deploying the flow.
|
106
|
+
"""
|
107
|
+
return [
|
108
|
+
"metaflow.cli",
|
109
|
+
"metaflow.cli_components.run_cmds",
|
110
|
+
"metaflow.cli_components.init_cmd",
|
111
|
+
]
|
112
|
+
|
105
113
|
@property
|
106
114
|
def deployer_kwargs(self) -> Dict[str, Any]:
|
107
115
|
raise NotImplementedError
|
@@ -367,11 +367,11 @@ class MutableFlow:
|
|
367
367
|
"Mutable flow overriding flow decorator '%s' "
|
368
368
|
"(removing existing decorator and adding new one)" % flow_deco.name
|
369
369
|
)
|
370
|
-
self._flow_cls._flow_decorators =
|
371
|
-
d
|
370
|
+
self._flow_cls._flow_decorators = {
|
371
|
+
d: self._flow_cls._flow_decorators[d]
|
372
372
|
for d in self._flow_cls._flow_decorators
|
373
|
-
if d
|
374
|
-
|
373
|
+
if d != flow_deco.name
|
374
|
+
}
|
375
375
|
_do_add()
|
376
376
|
elif duplicates == MutableFlow.ERROR:
|
377
377
|
# If we error, we raise an exception
|
@@ -472,7 +472,7 @@ class MutableFlow:
|
|
472
472
|
% (len(old_deco_list) - len(new_deco_list))
|
473
473
|
)
|
474
474
|
if new_deco_list:
|
475
|
-
self._flow_cls._flow_decorators[
|
475
|
+
self._flow_cls._flow_decorators[deco_name] = new_deco_list
|
476
476
|
else:
|
477
477
|
del self._flow_cls._flow_decorators[deco_name]
|
478
478
|
return did_remove
|
metaflow/version.py
CHANGED
@@ -1 +1 @@
|
|
1
|
-
metaflow_version = "2.17.
|
1
|
+
metaflow_version = "2.17.1"
|
@@ -257,10 +257,11 @@ shell: setup-tilt
|
|
257
257
|
echo "🔎 Using $$user_shell for interactive session."; \
|
258
258
|
echo "🐍 If you installed Metaflow in a virtual environment, activate it now."; \
|
259
259
|
if [ -f "$(DEVTOOLS_DIR)/aws_config" ]; then \
|
260
|
-
env
|
260
|
+
env -u AWS_PROFILE \
|
261
|
+
-u AWS_SHARED_CREDENTIALS_FILE \
|
262
|
+
METAFLOW_HOME="$(DEVTOOLS_DIR)" \
|
261
263
|
METAFLOW_PROFILE=local \
|
262
264
|
AWS_CONFIG_FILE="$(DEVTOOLS_DIR)/aws_config" \
|
263
|
-
AWS_SHARED_CREDENTIALS_FILE= \
|
264
265
|
"$$user_shell" -i; \
|
265
266
|
else \
|
266
267
|
env METAFLOW_HOME="$(DEVTOOLS_DIR)" \
|
@@ -593,7 +593,7 @@ if "ui" in enabled_components:
|
|
593
593
|
'uiBackend.metaflowDatastoreSysRootS3=s3://metaflow-test',
|
594
594
|
'uiBackend.metaflowS3EndpointURL=http://minio.default.svc.cluster.local:9000',
|
595
595
|
'uiBackend.image.name=public.ecr.aws/outerbounds/metaflow_metadata_service',
|
596
|
-
'uiBackend.image.tag=2.
|
596
|
+
'uiBackend.image.tag=2.5.0',
|
597
597
|
'uiBackend.env[0].name=AWS_ACCESS_KEY_ID',
|
598
598
|
'uiBackend.env[0].value=rootuser',
|
599
599
|
'uiBackend.env[1].name=AWS_SECRET_ACCESS_KEY',
|
@@ -603,7 +603,7 @@ if "ui" in enabled_components:
|
|
603
603
|
'uiBackend.resources.requests.memory=256Mi',
|
604
604
|
'uiStatic.metaflowUIBackendURL=http://localhost:8083/api',
|
605
605
|
'uiStatic.image.name=public.ecr.aws/outerbounds/metaflow_ui',
|
606
|
-
'uiStatic.image.tag=v1.3.
|
606
|
+
'uiStatic.image.tag=v1.3.14',
|
607
607
|
'uiStatic.resources.requests.cpu=25m',
|
608
608
|
'uiStatic.resources.requests.memory=64Mi',
|
609
609
|
'uiStatic.resources.limits.cpu=50m',
|
@@ -1,6 +1,6 @@
|
|
1
1
|
Metadata-Version: 2.4
|
2
2
|
Name: metaflow
|
3
|
-
Version: 2.17.
|
3
|
+
Version: 2.17.1
|
4
4
|
Summary: Metaflow: More AI and ML, 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.17.
|
29
|
+
Requires-Dist: metaflow-stubs==2.17.1; extra == "stubs"
|
30
30
|
Dynamic: author
|
31
31
|
Dynamic: author-email
|
32
32
|
Dynamic: classifier
|
@@ -22,7 +22,7 @@ metaflow/metaflow_current.py,sha256=pfkXmkyHeMJhxIs6HBJNBEaBDpcl5kz9Wx5mW6F_3qo,
|
|
22
22
|
metaflow/metaflow_environment.py,sha256=20PIhA5R_rJneNj8f8UaWRmznGRPcEd6hP7goj_rc1s,11477
|
23
23
|
metaflow/metaflow_git.py,sha256=Pb_VtvQzcjpuuM7UfC2u5kz85EbPMUfspl2UrPWBQMM,3647
|
24
24
|
metaflow/metaflow_profile.py,sha256=jKPEW-hmAQO-htSxb9hXaeloLacAh41A35rMZH6G8pA,418
|
25
|
-
metaflow/metaflow_version.py,sha256=
|
25
|
+
metaflow/metaflow_version.py,sha256=iuL9QoWjvUpGKIRp6dM9zxp0ED_iqXNihl__Qu9f1dc,8115
|
26
26
|
metaflow/monitor.py,sha256=T0NMaBPvXynlJAO_avKtk8OIIRMyEuMAyF8bIp79aZU,5323
|
27
27
|
metaflow/multicore_utils.py,sha256=yEo5T6Gemn4_vl8b6IOz7fsTUYtEyqa3AaKZgJY96Wc,4974
|
28
28
|
metaflow/parameters.py,sha256=b3rS6P-TeEj2JgPEKaiy0ys1B_JtOGJ6XM0KkY2layc,18649
|
@@ -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=g2SOU_CRzJLgDM_UGF9QDMANMAIHAsDRXE6S76_YzsY,14594
|
38
38
|
metaflow/vendor.py,sha256=A82CGHfStZGDP5pQ5XzRjFkbN1ZC-vFmghXIrzMDDNg,5868
|
39
|
-
metaflow/version.py,sha256=
|
39
|
+
metaflow/version.py,sha256=cOW5Gzl3yHX8RxsVq7TnPv58zlZoFrqwP_PGsg1JfRQ,28
|
40
40
|
metaflow/_vendor/__init__.py,sha256=y_CiwUD3l4eAKvTVDZeqgVujMy31cAM1qjAB-HfI-9s,353
|
41
41
|
metaflow/_vendor/typing_extensions.py,sha256=q9zxWa6p6CzF1zZvSkygSlklduHf_b3K7MCxGz7MJRc,134519
|
42
42
|
metaflow/_vendor/zipp.py,sha256=ajztOH-9I7KA_4wqDYygtHa6xUBVZgFpmZ8FE74HHHI,8425
|
@@ -162,7 +162,7 @@ metaflow/client/filecache.py,sha256=Wy0yhhCqC1JZgebqi7z52GCwXYnkAqMZHTtxThvwBgM,
|
|
162
162
|
metaflow/cmd/__init__.py,sha256=AbpHGcgLb-kRsJGnwFEktk7uzpZOCcBY74-YBdrKVGs,1
|
163
163
|
metaflow/cmd/configure_cmd.py,sha256=o-DKnUf2FBo_HiMVyoyzQaGBSMtpbEPEdFTQZ0hkU-k,33396
|
164
164
|
metaflow/cmd/main_cli.py,sha256=iKptsPcys0OKileZdE8Pp0_y8t7pm94SL3b870Qhk30,2972
|
165
|
-
metaflow/cmd/make_wrapper.py,sha256=
|
165
|
+
metaflow/cmd/make_wrapper.py,sha256=5uWZw_2jqYmI7gm1pGwPxXCII56WBKarNKJp9FRMN3c,3029
|
166
166
|
metaflow/cmd/tutorials_cmd.py,sha256=8FdlKkicTOhCIDKcBR5b0Oz6giDvS-EMY3o9skIrRqw,5156
|
167
167
|
metaflow/cmd/util.py,sha256=jS_0rUjOnGGzPT65fzRLdGjrYAOOLA4jU2S0HJLV0oc,406
|
168
168
|
metaflow/cmd/code/__init__.py,sha256=VO4dNM9M9LHYy5nTgEiJvCV1RBl8lpDlYGJm6GIcaBA,7413
|
@@ -375,7 +375,7 @@ metaflow/plugins/uv/uv_environment.py,sha256=AYZICrBEq3Bv-taXktJwu9DhKFxNooPFwlc
|
|
375
375
|
metaflow/runner/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
376
376
|
metaflow/runner/click_api.py,sha256=w0-47ntQD4Dd-LiSJ9vPSjlvW5YBniNSmlf95lcXs5E,24026
|
377
377
|
metaflow/runner/deployer.py,sha256=OAAMG_l3Q1ClcY_603VZnhclVkfFe3Rf8bFRodC3poc,17138
|
378
|
-
metaflow/runner/deployer_impl.py,sha256=
|
378
|
+
metaflow/runner/deployer_impl.py,sha256=q-IvwnNKPRUTpOkfzrZNrkIsjp-L-Ju75dtXmfDUqbI,7299
|
379
379
|
metaflow/runner/metaflow_runner.py,sha256=uo3BzcAfZ67VT_f-TPe5ZHiWHn6uuojWusOMGksvX14,18178
|
380
380
|
metaflow/runner/nbdeploy.py,sha256=Sp5w-6nCZwjHaRBHWxi8udya-RYnJOB76KNLjB4L7Gs,4166
|
381
381
|
metaflow/runner/nbrun.py,sha256=LhJu-Teoi7wTkNxg0kpNPVXFxH_9P4lvtp0ysMEIFJ8,7299
|
@@ -422,16 +422,16 @@ metaflow/user_configs/config_options.py,sha256=d3hKA6WRPe21PdTl7sBnxIp5sE6zBpRtg
|
|
422
422
|
metaflow/user_configs/config_parameters.py,sha256=Loa5wu3vIs0SLyGhbOo8b88nWgCuZ09k24EqC_lI7n4,20890
|
423
423
|
metaflow/user_decorators/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
424
424
|
metaflow/user_decorators/common.py,sha256=0u9NRLQ95TfJCjWVEOGT4MJ9WoQgAMBM9kJ2gJGlVjk,5362
|
425
|
-
metaflow/user_decorators/mutable_flow.py,sha256=
|
425
|
+
metaflow/user_decorators/mutable_flow.py,sha256=EywKTN3cnXPQF_s62wQaC4a4aH14j8oeqzD3yZaiDxw,19467
|
426
426
|
metaflow/user_decorators/mutable_step.py,sha256=-BY0UDXf_RCAEnC5JlLzEXGdiw1KD9oSrSxS_SWaB9Y,16791
|
427
427
|
metaflow/user_decorators/user_flow_decorator.py,sha256=2yDwZq9QGv9W-7kEuKwa8o4ZkTvuHJ5ESz7VVrGViAI,9890
|
428
428
|
metaflow/user_decorators/user_step_decorator.py,sha256=JYNGXONWCpzwn-_bF5WiAkof4Ii9tRS4xdK8ojSxG6M,26007
|
429
|
-
metaflow-2.17.
|
430
|
-
metaflow-2.17.
|
431
|
-
metaflow-2.17.
|
432
|
-
metaflow-2.17.
|
433
|
-
metaflow-2.17.
|
434
|
-
metaflow-2.17.
|
435
|
-
metaflow-2.17.
|
436
|
-
metaflow-2.17.
|
437
|
-
metaflow-2.17.
|
429
|
+
metaflow-2.17.1.data/data/share/metaflow/devtools/Makefile,sha256=TT4TCq8ALSfqYyGqDPocN5oPcZe2FqoCZxmGO1LmyCc,13760
|
430
|
+
metaflow-2.17.1.data/data/share/metaflow/devtools/Tiltfile,sha256=Ty5p6AD3MwJAcAnOGv4yMz8fExAsnNQ11r8whK6uzzw,21381
|
431
|
+
metaflow-2.17.1.data/data/share/metaflow/devtools/pick_services.sh,sha256=DCnrMXwtApfx3B4S-YiZESMyAFHbXa3VuNL0MxPLyiE,2196
|
432
|
+
metaflow-2.17.1.dist-info/licenses/LICENSE,sha256=nl_Lt5v9VvJ-5lWJDT4ddKAG-VZ-2IaLmbzpgYDz2hU,11343
|
433
|
+
metaflow-2.17.1.dist-info/METADATA,sha256=mvfncSAe9iX2JRZxjAHd8YTHZOk8rbCAJHpU23wEtI0,6740
|
434
|
+
metaflow-2.17.1.dist-info/WHEEL,sha256=JNWh1Fm1UdwIQV075glCn4MVuCRs0sotJIq-J6rbxCU,109
|
435
|
+
metaflow-2.17.1.dist-info/entry_points.txt,sha256=RvEq8VFlgGe_FfqGOZi0D7ze1hLD0pAtXeNyGfzc_Yc,103
|
436
|
+
metaflow-2.17.1.dist-info/top_level.txt,sha256=v1pDHoWaSaKeuc5fKTRSfsXCKSdW1zvNVmvA-i0if3o,9
|
437
|
+
metaflow-2.17.1.dist-info/RECORD,,
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|