ob-metaflow 2.11.4.9__py2.py3-none-any.whl → 2.11.8.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.
Potentially problematic release.
This version of ob-metaflow might be problematic. Click here for more details.
- metaflow/cli.py +15 -10
- metaflow/clone_util.py +71 -0
- metaflow/cmd/develop/stub_generator.py +2 -0
- metaflow/cmd/develop/stubs.py +17 -8
- metaflow/metaflow_config.py +3 -0
- metaflow/package.py +4 -3
- metaflow/parameters.py +2 -2
- metaflow/plugins/aws/batch/batch.py +12 -0
- metaflow/plugins/aws/batch/batch_cli.py +25 -0
- metaflow/plugins/aws/batch/batch_client.py +40 -0
- metaflow/plugins/aws/batch/batch_decorator.py +32 -1
- metaflow/plugins/aws/step_functions/step_functions.py +3 -0
- metaflow/plugins/datatools/s3/s3op.py +4 -3
- metaflow/plugins/env_escape/client.py +154 -27
- metaflow/plugins/env_escape/client_modules.py +15 -47
- metaflow/plugins/env_escape/configurations/emulate_test_lib/overrides.py +31 -42
- metaflow/plugins/env_escape/configurations/emulate_test_lib/server_mappings.py +8 -3
- metaflow/plugins/env_escape/configurations/test_lib_impl/test_lib.py +74 -22
- metaflow/plugins/env_escape/consts.py +1 -0
- metaflow/plugins/env_escape/exception_transferer.py +46 -112
- metaflow/plugins/env_escape/override_decorators.py +8 -8
- metaflow/plugins/env_escape/server.py +42 -5
- metaflow/plugins/env_escape/stub.py +168 -23
- metaflow/plugins/env_escape/utils.py +3 -3
- metaflow/plugins/gcp/gcp_secret_manager_secrets_provider.py +3 -2
- metaflow/plugins/pypi/conda_environment.py +9 -0
- metaflow/plugins/pypi/pip.py +17 -2
- metaflow/runtime.py +252 -61
- metaflow/sidecar/sidecar.py +11 -1
- metaflow/sidecar/sidecar_subprocess.py +34 -18
- metaflow/task.py +28 -54
- metaflow/version.py +1 -1
- {ob_metaflow-2.11.4.9.dist-info → ob_metaflow-2.11.8.1.dist-info}/METADATA +2 -2
- {ob_metaflow-2.11.4.9.dist-info → ob_metaflow-2.11.8.1.dist-info}/RECORD +38 -37
- {ob_metaflow-2.11.4.9.dist-info → ob_metaflow-2.11.8.1.dist-info}/WHEEL +1 -1
- {ob_metaflow-2.11.4.9.dist-info → ob_metaflow-2.11.8.1.dist-info}/LICENSE +0 -0
- {ob_metaflow-2.11.4.9.dist-info → ob_metaflow-2.11.8.1.dist-info}/entry_points.txt +0 -0
- {ob_metaflow-2.11.4.9.dist-info → ob_metaflow-2.11.8.1.dist-info}/top_level.txt +0 -0
|
@@ -25,6 +25,10 @@ try:
|
|
|
25
25
|
except:
|
|
26
26
|
blockingError = OSError
|
|
27
27
|
|
|
28
|
+
import threading
|
|
29
|
+
|
|
30
|
+
lock = threading.Lock()
|
|
31
|
+
|
|
28
32
|
|
|
29
33
|
class PipeUnavailableError(Exception):
|
|
30
34
|
"""raised when unable to write to pipe given allotted time"""
|
|
@@ -113,16 +117,16 @@ class SidecarSubProcess(object):
|
|
|
113
117
|
except:
|
|
114
118
|
pass
|
|
115
119
|
|
|
116
|
-
def send(self, msg, retries=3):
|
|
120
|
+
def send(self, msg, retries=3, thread_safe_send=False):
|
|
117
121
|
if msg.msg_type == MessageTypes.MUST_SEND:
|
|
118
122
|
# If this is a must-send message, we treat it a bit differently. A must-send
|
|
119
123
|
# message has to be properly sent before any of the other best effort messages.
|
|
120
124
|
self._cached_mustsend = msg.payload
|
|
121
125
|
self._send_mustsend_remaining_tries = MUST_SEND_RETRY_TIMES
|
|
122
|
-
self._send_mustsend(retries)
|
|
126
|
+
self._send_mustsend(retries, thread_safe_send)
|
|
123
127
|
else:
|
|
124
128
|
# Ignore return code for send.
|
|
125
|
-
self._send_internal(msg, retries=retries)
|
|
129
|
+
self._send_internal(msg, retries=retries, thread_safe_send=thread_safe_send)
|
|
126
130
|
|
|
127
131
|
def _start_subprocess(self, cmdline):
|
|
128
132
|
for _ in range(3):
|
|
@@ -145,7 +149,7 @@ class SidecarSubProcess(object):
|
|
|
145
149
|
self._logger("Unknown popen error: %s" % repr(e))
|
|
146
150
|
break
|
|
147
151
|
|
|
148
|
-
def _send_internal(self, msg, retries=3):
|
|
152
|
+
def _send_internal(self, msg, retries=3, thread_safe_send=False):
|
|
149
153
|
if self._process is None:
|
|
150
154
|
return False
|
|
151
155
|
try:
|
|
@@ -157,13 +161,13 @@ class SidecarSubProcess(object):
|
|
|
157
161
|
# restart sidecar so use the PipeUnavailableError caught below
|
|
158
162
|
raise PipeUnavailableError()
|
|
159
163
|
elif self._send_mustsend_remaining_tries > 0:
|
|
160
|
-
self._send_mustsend()
|
|
164
|
+
self._send_mustsend(thread_safe_send=thread_safe_send)
|
|
161
165
|
if self._send_mustsend_remaining_tries == 0:
|
|
162
|
-
self._emit_msg(msg)
|
|
166
|
+
self._emit_msg(msg, thread_safe_send)
|
|
163
167
|
self._prev_message_error = False
|
|
164
168
|
return True
|
|
165
169
|
else:
|
|
166
|
-
self._emit_msg(msg)
|
|
170
|
+
self._emit_msg(msg, thread_safe_send)
|
|
167
171
|
self._prev_message_error = False
|
|
168
172
|
return True
|
|
169
173
|
return False
|
|
@@ -184,14 +188,14 @@ class SidecarSubProcess(object):
|
|
|
184
188
|
self._prev_message_error = True
|
|
185
189
|
if retries > 0:
|
|
186
190
|
self._logger("Retrying msg send to sidecar (due to %s)" % repr(ex))
|
|
187
|
-
return self._send_internal(msg, retries - 1)
|
|
191
|
+
return self._send_internal(msg, retries - 1, thread_safe_send)
|
|
188
192
|
else:
|
|
189
193
|
self._logger(
|
|
190
194
|
"Error sending log message (exhausted retries): %s" % repr(ex)
|
|
191
195
|
)
|
|
192
196
|
return False
|
|
193
197
|
|
|
194
|
-
def _send_mustsend(self, retries=3):
|
|
198
|
+
def _send_mustsend(self, retries=3, thread_safe_send=False):
|
|
195
199
|
if (
|
|
196
200
|
self._cached_mustsend is not None
|
|
197
201
|
and self._send_mustsend_remaining_tries > 0
|
|
@@ -199,7 +203,9 @@ class SidecarSubProcess(object):
|
|
|
199
203
|
# If we don't succeed in sending the must-send, we will try again
|
|
200
204
|
# next time.
|
|
201
205
|
if self._send_internal(
|
|
202
|
-
Message(MessageTypes.MUST_SEND, self._cached_mustsend),
|
|
206
|
+
Message(MessageTypes.MUST_SEND, self._cached_mustsend),
|
|
207
|
+
retries,
|
|
208
|
+
thread_safe_send,
|
|
203
209
|
):
|
|
204
210
|
self._cached_mustsend = None
|
|
205
211
|
self._send_mustsend_remaining_tries = 0
|
|
@@ -211,14 +217,7 @@ class SidecarSubProcess(object):
|
|
|
211
217
|
self._send_mustsend_remaining_tries = -1
|
|
212
218
|
return False
|
|
213
219
|
|
|
214
|
-
def
|
|
215
|
-
# If the previous message had an error, we want to prepend a "\n" to this message
|
|
216
|
-
# to maximize the chance of this message being valid (for example, if the
|
|
217
|
-
# previous message only partially sent for whatever reason, we want to "clear" it)
|
|
218
|
-
msg = msg.serialize()
|
|
219
|
-
if self._prev_message_error:
|
|
220
|
-
msg = "\n" + msg
|
|
221
|
-
msg_ser = msg.encode("utf-8")
|
|
220
|
+
def _write_bytes(self, msg_ser):
|
|
222
221
|
written_bytes = 0
|
|
223
222
|
while written_bytes < len(msg_ser):
|
|
224
223
|
# self._logger("Sent %d out of %d bytes" % (written_bytes, len(msg_ser)))
|
|
@@ -235,6 +234,23 @@ class SidecarSubProcess(object):
|
|
|
235
234
|
# sidecar is disabled, ignore all messages
|
|
236
235
|
break
|
|
237
236
|
|
|
237
|
+
def _emit_msg(self, msg, thread_safe_send=False):
|
|
238
|
+
# If the previous message had an error, we want to prepend a "\n" to this message
|
|
239
|
+
# to maximize the chance of this message being valid (for example, if the
|
|
240
|
+
# previous message only partially sent for whatever reason, we want to "clear" it)
|
|
241
|
+
msg = msg.serialize()
|
|
242
|
+
if self._prev_message_error:
|
|
243
|
+
msg = "\n" + msg
|
|
244
|
+
msg_ser = msg.encode("utf-8")
|
|
245
|
+
|
|
246
|
+
# If threadsafe send is enabled, we will use a lock to ensure that only one thread
|
|
247
|
+
# can send a message at a time. This is to avoid interleaving of messages.
|
|
248
|
+
if thread_safe_send:
|
|
249
|
+
with lock:
|
|
250
|
+
self._write_bytes(msg_ser)
|
|
251
|
+
else:
|
|
252
|
+
self._write_bytes(msg_ser)
|
|
253
|
+
|
|
238
254
|
def _logger(self, msg):
|
|
239
255
|
if debug.sidecar:
|
|
240
256
|
print("[sidecar:%s] %s" % (self._worker_type, msg), file=sys.stderr)
|
metaflow/task.py
CHANGED
|
@@ -20,6 +20,7 @@ from .exception import (
|
|
|
20
20
|
)
|
|
21
21
|
from .unbounded_foreach import UBF_CONTROL
|
|
22
22
|
from .util import all_equal, get_username, resolve_identity, unicode_type
|
|
23
|
+
from .clone_util import clone_task_helper
|
|
23
24
|
from .metaflow_current import current
|
|
24
25
|
from metaflow.tracing import get_trace_id
|
|
25
26
|
from metaflow.util import namedtuple_with_defaults
|
|
@@ -284,70 +285,43 @@ class MetaflowTask(object):
|
|
|
284
285
|
task_id,
|
|
285
286
|
clone_origin_task,
|
|
286
287
|
retry_count,
|
|
287
|
-
wait_only=False,
|
|
288
288
|
):
|
|
289
289
|
if not clone_origin_task:
|
|
290
290
|
raise MetaflowInternalError(
|
|
291
291
|
"task.clone_only needs a valid clone_origin_task value."
|
|
292
292
|
)
|
|
293
|
-
|
|
294
|
-
# In this case, we are actually going to wait for the clone to be done
|
|
295
|
-
# by someone else. To do this, we just get the task_datastore in "r" mode
|
|
296
|
-
while True:
|
|
297
|
-
try:
|
|
298
|
-
ds = self.flow_datastore.get_task_datastore(
|
|
299
|
-
run_id, step_name, task_id
|
|
300
|
-
)
|
|
301
|
-
if not ds["_task_ok"]:
|
|
302
|
-
raise MetaflowInternalError(
|
|
303
|
-
"Externally cloned task did not succeed"
|
|
304
|
-
)
|
|
305
|
-
break
|
|
306
|
-
except DataException:
|
|
307
|
-
# No need to get fancy with the sleep here.
|
|
308
|
-
time.sleep(5)
|
|
309
|
-
return
|
|
310
|
-
# If we actually have to do the clone ourselves, proceed...
|
|
311
|
-
# 1. initialize output datastore
|
|
312
|
-
output = self.flow_datastore.get_task_datastore(
|
|
313
|
-
run_id, step_name, task_id, attempt=0, mode="w"
|
|
314
|
-
)
|
|
293
|
+
origin_run_id, _, origin_task_id = clone_origin_task.split("/")
|
|
315
294
|
|
|
316
|
-
|
|
317
|
-
|
|
318
|
-
|
|
319
|
-
|
|
320
|
-
|
|
321
|
-
|
|
322
|
-
|
|
323
|
-
|
|
324
|
-
|
|
325
|
-
|
|
295
|
+
msg = {
|
|
296
|
+
"task_id": task_id,
|
|
297
|
+
"msg": "Cloning task from {}/{}/{}/{} to {}/{}/{}/{}".format(
|
|
298
|
+
self.flow.name,
|
|
299
|
+
origin_run_id,
|
|
300
|
+
step_name,
|
|
301
|
+
origin_task_id,
|
|
302
|
+
self.flow.name,
|
|
303
|
+
run_id,
|
|
304
|
+
step_name,
|
|
305
|
+
task_id,
|
|
306
|
+
),
|
|
307
|
+
"step_name": step_name,
|
|
308
|
+
"run_id": run_id,
|
|
309
|
+
"flow_name": self.flow.name,
|
|
310
|
+
"ts": round(time.time()),
|
|
311
|
+
}
|
|
312
|
+
self.event_logger.log(msg)
|
|
313
|
+
# If we actually have to do the clone ourselves, proceed...
|
|
314
|
+
clone_task_helper(
|
|
315
|
+
self.flow.name,
|
|
316
|
+
origin_run_id,
|
|
326
317
|
run_id,
|
|
327
318
|
step_name,
|
|
319
|
+
origin_task_id,
|
|
328
320
|
task_id,
|
|
329
|
-
|
|
330
|
-
|
|
331
|
-
|
|
332
|
-
value=str(origin_task_id),
|
|
333
|
-
type="origin-task-id",
|
|
334
|
-
tags=metadata_tags,
|
|
335
|
-
),
|
|
336
|
-
MetaDatum(
|
|
337
|
-
field="origin-run-id",
|
|
338
|
-
value=str(origin_run_id),
|
|
339
|
-
type="origin-run-id",
|
|
340
|
-
tags=metadata_tags,
|
|
341
|
-
),
|
|
342
|
-
MetaDatum(
|
|
343
|
-
field="attempt",
|
|
344
|
-
value=str(retry_count),
|
|
345
|
-
type="attempt",
|
|
346
|
-
tags=metadata_tags,
|
|
347
|
-
),
|
|
348
|
-
],
|
|
321
|
+
self.flow_datastore,
|
|
322
|
+
self.metadata,
|
|
323
|
+
attempt_id=retry_count,
|
|
349
324
|
)
|
|
350
|
-
output.done()
|
|
351
325
|
|
|
352
326
|
def _finalize_control_task(self):
|
|
353
327
|
# Update `_transition` which is expected by the NativeRuntime.
|
metaflow/version.py
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
metaflow_version = "2.11.
|
|
1
|
+
metaflow_version = "2.11.8.1"
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.1
|
|
2
2
|
Name: ob-metaflow
|
|
3
|
-
Version: 2.11.
|
|
3
|
+
Version: 2.11.8.1
|
|
4
4
|
Summary: Metaflow: More Data Science, Less Engineering
|
|
5
5
|
Author: Netflix, Outerbounds & the Metaflow Community
|
|
6
6
|
Author-email: help@outerbounds.co
|
|
@@ -12,7 +12,7 @@ Requires-Dist: boto3
|
|
|
12
12
|
Requires-Dist: pylint
|
|
13
13
|
Requires-Dist: kubernetes
|
|
14
14
|
Provides-Extra: stubs
|
|
15
|
-
Requires-Dist: ob-metaflow-stubs ==2.11.
|
|
15
|
+
Requires-Dist: ob-metaflow-stubs ==2.11.8.1 ; extra == 'stubs'
|
|
16
16
|
|
|
17
17
|

|
|
18
18
|
|
|
@@ -1,8 +1,9 @@
|
|
|
1
1
|
metaflow/R.py,sha256=bNcXXpGOe5wquzTRGyU0KS9gJMz7HceKjXxammYPUE0,3841
|
|
2
2
|
metaflow/__init__.py,sha256=3xaDoR_uEUnf4lzQMR6Akj2IctN03nlOvTKBzFHsiAA,6028
|
|
3
3
|
metaflow/cards.py,sha256=tP1_RrtmqdFh741pqE4t98S7SA0MtGRlGvRICRZF1Mg,426
|
|
4
|
-
metaflow/cli.py,sha256=
|
|
4
|
+
metaflow/cli.py,sha256=t8BpXpfr1UtjegySI6ydz6w7TaAyYmwZjbk6K2ZB-ns,35313
|
|
5
5
|
metaflow/cli_args.py,sha256=lcgBGNTvfaiPxiUnejAe60Upt9swG6lRy1_3OqbU6MY,2616
|
|
6
|
+
metaflow/clone_util.py,sha256=ar4jSZt2aTd4monBpkIQmcLcsOd0relAB42qTUGt2j8,1810
|
|
6
7
|
metaflow/cmd_with_io.py,sha256=kl53HkAIyv0ecpItv08wZYczv7u3msD1VCcciqigqf0,588
|
|
7
8
|
metaflow/debug.py,sha256=HEmt_16tJtqHXQXsqD9pqOFe3CWR5GZ7VwpaYQgnRdU,1466
|
|
8
9
|
metaflow/decorators.py,sha256=EGL1_nkdxoYG5AZiOQ8sLGA1bprGK8ENwlSIOYQmLhs,21357
|
|
@@ -14,7 +15,7 @@ metaflow/graph.py,sha256=ZPxyG8uwVMk5YYgX4pQEQaPZtZM5Wy-G4NtJK73IEuA,11818
|
|
|
14
15
|
metaflow/includefile.py,sha256=yHczcZ_U0SrasxSNhZb3DIBzx8UZnrJCl3FzvpEQLOA,19753
|
|
15
16
|
metaflow/integrations.py,sha256=LlsaoePRg03DjENnmLxZDYto3NwWc9z_PtU6nJxLldg,1480
|
|
16
17
|
metaflow/lint.py,sha256=_kYAbAtsP7IG1Rd0FqNbo8I8Zs66_0WXbaZJFARO3dE,10394
|
|
17
|
-
metaflow/metaflow_config.py,sha256=
|
|
18
|
+
metaflow/metaflow_config.py,sha256=WmO8-gQeLlbUJb88REHuR77nll8FF_yQ68pS9bT9Pfs,20624
|
|
18
19
|
metaflow/metaflow_config_funcs.py,sha256=pCaiQ2ez9wXixJI3ehmf3QiW9lUqFrZnBZx1my_0wIg,4874
|
|
19
20
|
metaflow/metaflow_current.py,sha256=sCENPBiji3LcPbwgOG0ukGd_yEc5tST8EowES8DzRtA,7430
|
|
20
21
|
metaflow/metaflow_environment.py,sha256=XiMmBZiq3_dwaw0Oi3B8588BahYxzgfqWGMePPZqUUc,7359
|
|
@@ -22,18 +23,18 @@ metaflow/metaflow_profile.py,sha256=jKPEW-hmAQO-htSxb9hXaeloLacAh41A35rMZH6G8pA,
|
|
|
22
23
|
metaflow/metaflow_version.py,sha256=mPQ6g_3XjNdi0NrxDzwlW8ZH0nMyYpwqmJ04P7TIdP0,4774
|
|
23
24
|
metaflow/monitor.py,sha256=T0NMaBPvXynlJAO_avKtk8OIIRMyEuMAyF8bIp79aZU,5323
|
|
24
25
|
metaflow/multicore_utils.py,sha256=vdTNgczVLODifscUbbveJbuSDOl3Y9pAxhr7sqYiNf4,4760
|
|
25
|
-
metaflow/package.py,sha256=
|
|
26
|
-
metaflow/parameters.py,sha256=
|
|
26
|
+
metaflow/package.py,sha256=sOvRpnvqVaQa6eR8lwcfb5HYCGqmpYFPm-cLgOEdl04,7377
|
|
27
|
+
metaflow/parameters.py,sha256=uuYCtpPycFbnYXrFn89zunzTfTi76NFaPCBasNZGYJE,14121
|
|
27
28
|
metaflow/procpoll.py,sha256=22ppTUyaTYVn1UUG4RNG1LnCKBwRbaTmhYiYN_7OVN8,2861
|
|
28
29
|
metaflow/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
29
30
|
metaflow/pylint_wrapper.py,sha256=zzBY9YaSUZOGH-ypDKAv2B_7XcoyMZj-zCoCrmYqNRc,2865
|
|
30
|
-
metaflow/runtime.py,sha256=
|
|
31
|
+
metaflow/runtime.py,sha256=sGBkNMamV0bXBtZGCwvwQODrUrAGhln2rqadBVyKSvU,63961
|
|
31
32
|
metaflow/tagging_util.py,sha256=ctyf0Q1gBi0RyZX6J0e9DQGNkNHblV_CITfy66axXB4,2346
|
|
32
|
-
metaflow/task.py,sha256=
|
|
33
|
+
metaflow/task.py,sha256=ecGaULbK8kXPnyWzH1u6wtGclm0qeJm7K95amEL17sQ,25863
|
|
33
34
|
metaflow/unbounded_foreach.py,sha256=p184WMbrMJ3xKYHwewj27ZhRUsSj_kw1jlye5gA9xJk,387
|
|
34
35
|
metaflow/util.py,sha256=RrjsvADLKxSqjL76CxKh_J4OJl840B9Ak3V-vXleGas,13429
|
|
35
36
|
metaflow/vendor.py,sha256=LZgXrh7ZSDmD32D1T5jj3OKKpXIqqxKzdMAOc5V0SD4,5162
|
|
36
|
-
metaflow/version.py,sha256=
|
|
37
|
+
metaflow/version.py,sha256=ONUOui4LWZlyro9IrK5mdx_tuDUPNEGnKTCelWwm4D8,30
|
|
37
38
|
metaflow/_vendor/__init__.py,sha256=y_CiwUD3l4eAKvTVDZeqgVujMy31cAM1qjAB-HfI-9s,353
|
|
38
39
|
metaflow/_vendor/click/__init__.py,sha256=FkyGDQ-cbiQxP_lxgUspyFYS48f2S_pTcfKPz-d_RMo,2463
|
|
39
40
|
metaflow/_vendor/click/_bashcomplete.py,sha256=9J98IHQYmCAr2Jup6TDshUr5FJEen-AoQCZR0K5nKxQ,12309
|
|
@@ -93,8 +94,8 @@ metaflow/cmd/main_cli.py,sha256=Yunxh0QFUPgGYMe0eeGrbmxtZGVdJPCgkd4P1x_j8B4,2950
|
|
|
93
94
|
metaflow/cmd/tutorials_cmd.py,sha256=8FdlKkicTOhCIDKcBR5b0Oz6giDvS-EMY3o9skIrRqw,5156
|
|
94
95
|
metaflow/cmd/util.py,sha256=jS_0rUjOnGGzPT65fzRLdGjrYAOOLA4jU2S0HJLV0oc,406
|
|
95
96
|
metaflow/cmd/develop/__init__.py,sha256=p1Sy8yU1MEKSrH5ttOWOZvNcI1qYu6J6jghdTHwPgOw,689
|
|
96
|
-
metaflow/cmd/develop/stub_generator.py,sha256=
|
|
97
|
-
metaflow/cmd/develop/stubs.py,sha256=
|
|
97
|
+
metaflow/cmd/develop/stub_generator.py,sha256=fmiWmr4tXBBvIZdWVEhKvZWtG4vjyIsfreh-sJQnkjc,46645
|
|
98
|
+
metaflow/cmd/develop/stubs.py,sha256=hhf1giRNNlFGB5zSZdNA8tNvnJcmotXSiNN06N3_WyA,11742
|
|
98
99
|
metaflow/datastore/__init__.py,sha256=VxP6ddJt3rwiCkpiSfAhyVkUCOe1pgZZsytVEJzFmSQ,155
|
|
99
100
|
metaflow/datastore/content_addressed_store.py,sha256=dCVFAr4PltlmXNVVYt7UaBGJWe6fWuicCgb68XHqLrA,7643
|
|
100
101
|
metaflow/datastore/datastore_set.py,sha256=sjwcxO6ZJgZ7ief_L-TTpjoRJYIlJnGGG_WSaDRij28,2368
|
|
@@ -156,10 +157,10 @@ metaflow/plugins/aws/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hS
|
|
|
156
157
|
metaflow/plugins/aws/aws_client.py,sha256=mO8UD6pxFaOnxDb3hTP3HB7Gqb_ZxoR-76LT683WHvI,4036
|
|
157
158
|
metaflow/plugins/aws/aws_utils.py,sha256=SEszFRtcj0RAnySlN3Ox4WETe-jitQtSa10lmrPdiVs,7213
|
|
158
159
|
metaflow/plugins/aws/batch/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
159
|
-
metaflow/plugins/aws/batch/batch.py,sha256=
|
|
160
|
-
metaflow/plugins/aws/batch/batch_cli.py,sha256=
|
|
161
|
-
metaflow/plugins/aws/batch/batch_client.py,sha256=
|
|
162
|
-
metaflow/plugins/aws/batch/batch_decorator.py,sha256=
|
|
160
|
+
metaflow/plugins/aws/batch/batch.py,sha256=e9ssahWM18GnipPK2sqYB-ztx9w7Eoo7YtWyEtufYxs,17787
|
|
161
|
+
metaflow/plugins/aws/batch/batch_cli.py,sha256=8j5s9RMZu0aJW76GY2lQkJT5tVDzamg9G_iu1AUpW8o,11632
|
|
162
|
+
metaflow/plugins/aws/batch/batch_client.py,sha256=VWprdpI2Gem9GTezqgmYU_6yU4C2ChrFVMxOsQgr5oY,28613
|
|
163
|
+
metaflow/plugins/aws/batch/batch_decorator.py,sha256=KUOBrJH1Rl04toRMsbh7D_ThntRZqa-_B9JUQbu8ORk,17319
|
|
163
164
|
metaflow/plugins/aws/secrets_manager/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
164
165
|
metaflow/plugins/aws/secrets_manager/aws_secrets_manager_secrets_provider.py,sha256=JtFUVu00Cg0FzAizgrPLXmrMqsT7YeQMkQlgeivUxcE,7986
|
|
165
166
|
metaflow/plugins/aws/step_functions/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
@@ -168,7 +169,7 @@ metaflow/plugins/aws/step_functions/event_bridge_client.py,sha256=U9-tqKdih4KR-Z
|
|
|
168
169
|
metaflow/plugins/aws/step_functions/production_token.py,sha256=_o4emv3rozYZoWpaj1Y6UfKhTMlYpQc7GDDDBfZ2G7s,1898
|
|
169
170
|
metaflow/plugins/aws/step_functions/schedule_decorator.py,sha256=Ab1rW8O_no4HNZm4__iBmFDCDW0Z8-TgK4lnxHHA6HI,1940
|
|
170
171
|
metaflow/plugins/aws/step_functions/set_batch_environment.py,sha256=ibiGWFHDjKcLfprH3OsX-g2M9lUsh6J-bp7v2cdLhD4,1294
|
|
171
|
-
metaflow/plugins/aws/step_functions/step_functions.py,sha256=
|
|
172
|
+
metaflow/plugins/aws/step_functions/step_functions.py,sha256=zR4QiPs6oWpbv3rWjVU22VHjwW-jrKoxvPTkA7jTnnY,51845
|
|
172
173
|
metaflow/plugins/aws/step_functions/step_functions_cli.py,sha256=KlH9jJL0VfsT0JqBhLwaWdYjaccU8UEArKAFnIJbSoU,24426
|
|
173
174
|
metaflow/plugins/aws/step_functions/step_functions_client.py,sha256=DKpNwAIWElvWjFANs5Ku3rgzjxFoqAD6k-EF8Xhkg3Q,4754
|
|
174
175
|
metaflow/plugins/aws/step_functions/step_functions_decorator.py,sha256=9hw_MX36RyFp6IowuAYaJzJg9UC5KCe1FNt1PcG7_J0,3791
|
|
@@ -214,33 +215,33 @@ metaflow/plugins/datatools/__init__.py,sha256=ge4L16OBQLy2J_MMvoHg3lMfdm-MluQgRW
|
|
|
214
215
|
metaflow/plugins/datatools/local.py,sha256=67hx3O_vInERlL0aJV0Sd-jUTd_2DOw4sJ4-IyEKNKM,4213
|
|
215
216
|
metaflow/plugins/datatools/s3/__init__.py,sha256=14tr9fPjN3ULW5IOfKHeG7Uhjmgm7LMtQHfz1SFv-h8,248
|
|
216
217
|
metaflow/plugins/datatools/s3/s3.py,sha256=v2vkJxN3qYAHpu5na2V0GoXjItg8DGeQe71P3l0xXHQ,66030
|
|
217
|
-
metaflow/plugins/datatools/s3/s3op.py,sha256=
|
|
218
|
+
metaflow/plugins/datatools/s3/s3op.py,sha256=ZQFSxlaQUt-Ko_kIXMbHOKJc8q4FPXogS3xI6xsDR7Y,43390
|
|
218
219
|
metaflow/plugins/datatools/s3/s3tail.py,sha256=boQjQGQMI-bvTqcMP2y7uSlSYLcvWOy7J3ZUaF78NAA,2597
|
|
219
220
|
metaflow/plugins/datatools/s3/s3util.py,sha256=FgRgaVmEq7-i2dV7q8XK5w5PfFt-xJjZa8WrK8IJfdI,3769
|
|
220
221
|
metaflow/plugins/env_escape/__init__.py,sha256=8NhVmk_OncuzVIT_TdwDcZeunfcjlI8iGfi6cgPO_xQ,8771
|
|
221
|
-
metaflow/plugins/env_escape/client.py,sha256=
|
|
222
|
-
metaflow/plugins/env_escape/client_modules.py,sha256=
|
|
223
|
-
metaflow/plugins/env_escape/consts.py,sha256=
|
|
222
|
+
metaflow/plugins/env_escape/client.py,sha256=GsFZqjhGttd4eMU_CTw14sfNBV4vBKUUShp4SR0D8k8,25066
|
|
223
|
+
metaflow/plugins/env_escape/client_modules.py,sha256=hQAcwz41wd6NnHezdI2Tv37ngO3CYuJ2WG8Wak6z59s,9295
|
|
224
|
+
metaflow/plugins/env_escape/consts.py,sha256=jafRUdqZnkeKSgpdmRcTmnsVhEhVAjfQ6TKErbRH7wo,1000
|
|
224
225
|
metaflow/plugins/env_escape/data_transferer.py,sha256=wm1Aqf0rTWaq8JgqpiRN0g3N3hX7YAMuhCLRrbOP_9E,12696
|
|
225
|
-
metaflow/plugins/env_escape/exception_transferer.py,sha256=
|
|
226
|
-
metaflow/plugins/env_escape/override_decorators.py,sha256=
|
|
227
|
-
metaflow/plugins/env_escape/server.py,sha256
|
|
228
|
-
metaflow/plugins/env_escape/stub.py,sha256=
|
|
229
|
-
metaflow/plugins/env_escape/utils.py,sha256=
|
|
226
|
+
metaflow/plugins/env_escape/exception_transferer.py,sha256=rpcpwDYRf5XqsZvShyQe5eRQ9uBGNdqmyAeB1h-Lofw,5746
|
|
227
|
+
metaflow/plugins/env_escape/override_decorators.py,sha256=JC_YcNIFUfLq6z2zEAVUT-PsaNxKxCqr0JbLTo1cCpo,3605
|
|
228
|
+
metaflow/plugins/env_escape/server.py,sha256=V5aG12xlS5rybkyKH_Uc0zIM615UHeQoyQKr2l2tF3g,21870
|
|
229
|
+
metaflow/plugins/env_escape/stub.py,sha256=2jA-Q3hZj72-X6kn9rYPxCGiXjbwwW7n-Ceil6fDgKA,17126
|
|
230
|
+
metaflow/plugins/env_escape/utils.py,sha256=ThwneuINFoNiaqzjhHsVWSPGr-1UtskgcSpw58UARCU,1243
|
|
230
231
|
metaflow/plugins/env_escape/communication/__init__.py,sha256=Ff5AB88gOAvBzN2pp_2YNiD0PhUIt2SFE8nyOAKnxXg,38
|
|
231
232
|
metaflow/plugins/env_escape/communication/bytestream.py,sha256=weQBm-c6yPlGv1TAmQbYanqvQ0IRDh7x_6hZPvWh_Uw,1866
|
|
232
233
|
metaflow/plugins/env_escape/communication/channel.py,sha256=7vs23ZGsdy1nYM0V9xAdodBPSXIWgkCwp5l5ymgIEdU,1650
|
|
233
234
|
metaflow/plugins/env_escape/communication/socket_bytestream.py,sha256=aQ9jC4OZH6_pfgWArt8tOIwLL41P2OBivtFu8ZmlyfQ,3572
|
|
234
235
|
metaflow/plugins/env_escape/communication/utils.py,sha256=vV20EUjXqo5gWBtObbJBb4WL44N-EBBZsDiPBGL7tl0,874
|
|
235
236
|
metaflow/plugins/env_escape/configurations/emulate_test_lib/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
236
|
-
metaflow/plugins/env_escape/configurations/emulate_test_lib/overrides.py,sha256=
|
|
237
|
-
metaflow/plugins/env_escape/configurations/emulate_test_lib/server_mappings.py,sha256=
|
|
237
|
+
metaflow/plugins/env_escape/configurations/emulate_test_lib/overrides.py,sha256=qwB6PwhXLULYEdbhczHDVmNCcdMgS8tA57ibHqX8I6o,2054
|
|
238
|
+
metaflow/plugins/env_escape/configurations/emulate_test_lib/server_mappings.py,sha256=RQZlES3_wFPCqEuQj9EXraoROlhkm1idcUNf1ZXHr7k,989
|
|
238
239
|
metaflow/plugins/env_escape/configurations/test_lib_impl/__init__.py,sha256=5uuXrallL30TAFVwR0xG7Q3fPM8A3jx1909aSi-y-xU,156
|
|
239
|
-
metaflow/plugins/env_escape/configurations/test_lib_impl/test_lib.py,sha256=
|
|
240
|
+
metaflow/plugins/env_escape/configurations/test_lib_impl/test_lib.py,sha256=Dxp5aCnJd3p6xxahQIPzAiV7Qp1J7EYfIl5xDFBEpZQ,3570
|
|
240
241
|
metaflow/plugins/frameworks/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
241
242
|
metaflow/plugins/frameworks/pytorch.py,sha256=9MUecLwNt9p9N1HVUYfnJ_1nLgMU0Y14UNJZHZ2qCA4,1606
|
|
242
243
|
metaflow/plugins/gcp/__init__.py,sha256=iOyf5K7drkPdzumifenUnOczbIONyMu11nPI4r9prcY,54
|
|
243
|
-
metaflow/plugins/gcp/gcp_secret_manager_secrets_provider.py,sha256=
|
|
244
|
+
metaflow/plugins/gcp/gcp_secret_manager_secrets_provider.py,sha256=QYah23ST7Z-Jq8tc9u2uUC-fG6WMm8KM5vgy8vqakdU,7165
|
|
244
245
|
metaflow/plugins/gcp/gs_exceptions.py,sha256=NfqKmnPpNJ8nxA0CnPPjcO65SAQ2lhCrhM2dz5x9eCQ,184
|
|
245
246
|
metaflow/plugins/gcp/gs_storage_client_factory.py,sha256=LIzc5bAzIOmaMhoXUtRkYaEJPEEy2suMv8uuNViC5Ug,2110
|
|
246
247
|
metaflow/plugins/gcp/gs_tail.py,sha256=Jl_wvnzU7dub07A-DOAuP5FeccNIrPM-CeL1xKFs1nQ,3034
|
|
@@ -258,9 +259,9 @@ metaflow/plugins/metadata/service.py,sha256=ihq5F7KQZlxvYwzH_-jyP2aWN_I96i2vp92j
|
|
|
258
259
|
metaflow/plugins/pypi/__init__.py,sha256=0YFZpXvX7HCkyBFglatual7XGifdA1RwC3U4kcizyak,1037
|
|
259
260
|
metaflow/plugins/pypi/bootstrap.py,sha256=nCe8FadqfIM19yj64m4JWdv_QEnQEp01bzQZrxzo5bs,5087
|
|
260
261
|
metaflow/plugins/pypi/conda_decorator.py,sha256=-bPxNtZKjxqOo4sj89uIp8ZVrCIontWhAp7wwRFjYpg,14189
|
|
261
|
-
metaflow/plugins/pypi/conda_environment.py,sha256=
|
|
262
|
+
metaflow/plugins/pypi/conda_environment.py,sha256=UnqWnc7vNPWJCWgnqKDsrIIHg99M1T0SZc6B73Jaqms,19102
|
|
262
263
|
metaflow/plugins/pypi/micromamba.py,sha256=wlVN2fm4WXFh3jVNtpDfu4XEz6VJKbmFNp0QvqlMIuI,12179
|
|
263
|
-
metaflow/plugins/pypi/pip.py,sha256=
|
|
264
|
+
metaflow/plugins/pypi/pip.py,sha256=MAgdyP7wK7Cp6iusG6S-jeKKDCxlA9k-jMqIGvyi0Ng,12472
|
|
264
265
|
metaflow/plugins/pypi/pypi_decorator.py,sha256=syWk_oSQhIK9Y7OeOINMG2XVyxh9sj5uJhapwAXRBDw,5583
|
|
265
266
|
metaflow/plugins/pypi/pypi_environment.py,sha256=FYMg8kF3lXqcLfRYWD83a9zpVjcoo_TARqMGZ763rRk,230
|
|
266
267
|
metaflow/plugins/pypi/utils.py,sha256=ds1Mnv_DaxGnLAYp7ozg_K6oyguGyNhvHfE-75Ia1YA,2836
|
|
@@ -268,9 +269,9 @@ metaflow/plugins/secrets/__init__.py,sha256=mhJaN2eMS_ZZVewAMR2E-JdP5i0t3v9e6Dcw
|
|
|
268
269
|
metaflow/plugins/secrets/inline_secrets_provider.py,sha256=EChmoBGA1i7qM3jtYwPpLZDBybXLergiDlN63E0u3x8,294
|
|
269
270
|
metaflow/plugins/secrets/secrets_decorator.py,sha256=Y41XCOEGt7asxx6FEOBdKMqYFlU_jcA5u7erHN8DqJM,10514
|
|
270
271
|
metaflow/sidecar/__init__.py,sha256=1mmNpmQ5puZCpRmmYlCOeieZ4108Su9XQ4_EqF1FGOU,131
|
|
271
|
-
metaflow/sidecar/sidecar.py,sha256=
|
|
272
|
+
metaflow/sidecar/sidecar.py,sha256=EspKXvPPNiyRToaUZ51PS5TT_PzrBNAurn_wbFnmGr0,1334
|
|
272
273
|
metaflow/sidecar/sidecar_messages.py,sha256=zPsCoYgDIcDkkvdC9MEpJTJ3y6TSGm2JWkRc4vxjbFA,1071
|
|
273
|
-
metaflow/sidecar/sidecar_subprocess.py,sha256=
|
|
274
|
+
metaflow/sidecar/sidecar_subprocess.py,sha256=f72n5iJJAYfCIbz4D94-RxR37VvM7kVvE3c8E9dYHe8,9708
|
|
274
275
|
metaflow/sidecar/sidecar_worker.py,sha256=4DfpxtnuphngOnIehKjNR_Knhu1hY7DYBcHl4Svpe3Y,2050
|
|
275
276
|
metaflow/tracing/__init__.py,sha256=xYTOT5BS5jbwhjk6hskxqNSU9st2LYtfeLN2Hknm3EI,1551
|
|
276
277
|
metaflow/tracing/propagator.py,sha256=AdPeAqoeRauH82pTw01hLFNPRAzm29nlwM7C2iqKFFk,2502
|
|
@@ -299,9 +300,9 @@ metaflow/tutorials/07-worldview/README.md,sha256=5vQTrFqulJ7rWN6r20dhot9lI2sVj9W
|
|
|
299
300
|
metaflow/tutorials/07-worldview/worldview.ipynb,sha256=ztPZPI9BXxvW1QdS2Tfe7LBuVzvFvv0AToDnsDJhLdE,2237
|
|
300
301
|
metaflow/tutorials/08-autopilot/README.md,sha256=GnePFp_q76jPs991lMUqfIIh5zSorIeWznyiUxzeUVE,1039
|
|
301
302
|
metaflow/tutorials/08-autopilot/autopilot.ipynb,sha256=DQoJlILV7Mq9vfPBGW-QV_kNhWPjS5n6SJLqePjFYLY,3191
|
|
302
|
-
ob_metaflow-2.11.
|
|
303
|
-
ob_metaflow-2.11.
|
|
304
|
-
ob_metaflow-2.11.
|
|
305
|
-
ob_metaflow-2.11.
|
|
306
|
-
ob_metaflow-2.11.
|
|
307
|
-
ob_metaflow-2.11.
|
|
303
|
+
ob_metaflow-2.11.8.1.dist-info/LICENSE,sha256=nl_Lt5v9VvJ-5lWJDT4ddKAG-VZ-2IaLmbzpgYDz2hU,11343
|
|
304
|
+
ob_metaflow-2.11.8.1.dist-info/METADATA,sha256=3ERaiYqhM_la15cLYi3OF3Ea842Ham_ZM7hl8rp96mw,5146
|
|
305
|
+
ob_metaflow-2.11.8.1.dist-info/WHEEL,sha256=DZajD4pwLWue70CAfc7YaxT1wLUciNBvN_TTcvXpltE,110
|
|
306
|
+
ob_metaflow-2.11.8.1.dist-info/entry_points.txt,sha256=IKwTN1T3I5eJL3uo_vnkyxVffcgnRdFbKwlghZfn27k,57
|
|
307
|
+
ob_metaflow-2.11.8.1.dist-info/top_level.txt,sha256=v1pDHoWaSaKeuc5fKTRSfsXCKSdW1zvNVmvA-i0if3o,9
|
|
308
|
+
ob_metaflow-2.11.8.1.dist-info/RECORD,,
|
|
File without changes
|
|
File without changes
|
|
File without changes
|