ob-metaflow 2.18.7.4__py2.py3-none-any.whl → 2.18.9.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.

@@ -1385,6 +1385,9 @@ class S3(object):
1385
1385
  except OSError as e:
1386
1386
  if e.errno == errno.ENOSPC:
1387
1387
  raise MetaflowS3InsufficientDiskSpace(str(e))
1388
+ except MetaflowException as ex:
1389
+ # Re-raise Metaflow exceptions (including TimeoutException)
1390
+ raise
1388
1391
  except Exception as ex:
1389
1392
  error = str(ex)
1390
1393
  if tmp:
@@ -50,6 +50,7 @@ import metaflow.tracing as tracing
50
50
  from metaflow.metaflow_config import (
51
51
  S3_WORKER_COUNT,
52
52
  )
53
+ from metaflow.exception import MetaflowException
53
54
 
54
55
  DOWNLOAD_FILE_THRESHOLD = 2 * TransferConfig().multipart_threshold
55
56
  DOWNLOAD_MAX_CHUNK = 2 * 1024 * 1024 * 1024 - 1
@@ -287,6 +288,11 @@ def worker(result_file_name, queue, mode, s3config):
287
288
  result_file.write("%d %d\n" % (idx, -ERROR_TRANSIENT))
288
289
  result_file.flush()
289
290
  continue
291
+ except MetaflowException:
292
+ # Re-raise Metaflow exceptions (including TimeoutException)
293
+ tmp.close()
294
+ os.unlink(tmp.name)
295
+ raise
290
296
  except (SSLError, Exception) as e:
291
297
  tmp.close()
292
298
  os.unlink(tmp.name)
@@ -357,6 +363,9 @@ def worker(result_file_name, queue, mode, s3config):
357
363
  err = convert_to_client_error(e)
358
364
  handle_client_error(err, idx, result_file)
359
365
  continue
366
+ except MetaflowException:
367
+ # Re-raise Metaflow exceptions (including TimeoutException)
368
+ raise
360
369
  except (SSLError, Exception) as e:
361
370
  # assume anything else is transient
362
371
  result_file.write("%d %d\n" % (idx, -ERROR_TRANSIENT))
@@ -385,6 +394,10 @@ def convert_to_client_error(e):
385
394
 
386
395
 
387
396
  def handle_client_error(err, idx, result_file):
397
+ # Handle all MetaflowExceptions as fatal
398
+ if isinstance(err, MetaflowException):
399
+ raise err
400
+
388
401
  error_code = normalize_client_error(err)
389
402
  if error_code == 404:
390
403
  result_file.write("%d %d\n" % (idx, -ERROR_URL_NOT_FOUND))
@@ -0,0 +1,16 @@
1
+ from metaflow._vendor import yaml
2
+
3
+
4
+ def yaml_parser(content: str) -> dict:
5
+ """
6
+ Parse YAML content to a dictionary.
7
+
8
+ Parameters
9
+ ----------
10
+ content : str
11
+
12
+ Returns
13
+ -------
14
+ dict
15
+ """
16
+ return yaml.safe_load(content)
metaflow/version.py CHANGED
@@ -1 +1 @@
1
- metaflow_version = "2.18.7.4"
1
+ metaflow_version = "2.18.9.1"
@@ -14,6 +14,17 @@
14
14
  version_settings(constraint='>=0.22.2')
15
15
  allow_k8s_contexts('minikube')
16
16
 
17
+ # Version configuration for components
18
+ JOBSET_VERSION = os.getenv("JOBSET_VERSION", "v0.8.2")
19
+
20
+ # Argo Workflows versions
21
+ ARGO_WORKFLOWS_HELM_CHART_VERSION = os.getenv("ARGO_WORKFLOWS_HELM_CHART_VERSION", "0.45.2") # Helm chart version
22
+ ARGO_WORKFLOWS_IMAGE_TAG = os.getenv("ARGO_WORKFLOWS_IMAGE_TAG", "v3.6.0") # Argo Workflows application version
23
+
24
+ # Argo Events versions
25
+ ARGO_EVENTS_HELM_CHART_VERSION = os.getenv("ARGO_EVENTS_HELM_CHART_VERSION", "2.4.8") # Helm chart version
26
+ ARGO_EVENTS_IMAGE_TAG = os.getenv("ARGO_EVENTS_IMAGE_TAG", "v1.9.2") # Argo Events application version
27
+
17
28
  components = {
18
29
  "metadata-service": ["postgresql"],
19
30
  "ui": ["postgresql", "minio"],
@@ -21,9 +32,10 @@ components = {
21
32
  "postgresql": [],
22
33
  "argo-workflows": [],
23
34
  "argo-events": ["argo-workflows"],
35
+ "jobset": [],
24
36
  }
25
37
 
26
- services_env = os.getenv("SERVICES", "").strip().lower()
38
+ services_env = os.getenv("SERVICES", "all").strip().lower()
27
39
 
28
40
  if services_env:
29
41
  if services_env == "all":
@@ -205,6 +217,7 @@ if "postgresql" in enabled_components:
205
217
  if "argo-workflows" in enabled_components:
206
218
  helm_remote(
207
219
  'argo-workflows',
220
+ version=ARGO_WORKFLOWS_HELM_CHART_VERSION,
208
221
  repo_name='argo',
209
222
  repo_url='https://argoproj.github.io/argo-helm',
210
223
  set=[
@@ -220,7 +233,9 @@ if "argo-workflows" in enabled_components:
220
233
  'controller.resources.requests.memory=128Mi',
221
234
  'controller.resources.requests.cpu=50m',
222
235
  'controller.resources.limits.memory=256Mi',
223
- 'controller.resources.limits.cpu=100m'
236
+ 'controller.resources.limits.cpu=100m',
237
+ # Image version overrides
238
+ 'images.tag=%s' % ARGO_WORKFLOWS_IMAGE_TAG,
224
239
  ]
225
240
  )
226
241
 
@@ -307,6 +322,7 @@ if "argo-workflows" in enabled_components:
307
322
  if "argo-events" in enabled_components:
308
323
  helm_remote(
309
324
  'argo-events',
325
+ version=ARGO_EVENTS_HELM_CHART_VERSION,
310
326
  repo_name='argo',
311
327
  repo_url='https://argoproj.github.io/argo-helm',
312
328
  set=[
@@ -334,6 +350,8 @@ if "argo-events" in enabled_components:
334
350
  'configs.jetstream.versions[1].natsImage=nats:2.9.15',
335
351
  'configs.jetstream.versions[1].startCommand=/nats-server',
336
352
  'configs.jetstream.versions[1].version=2.9.15',
353
+ # Image version overrides
354
+ 'global.image.tag=%s' % ARGO_EVENTS_IMAGE_TAG,
337
355
  ]
338
356
  )
339
357
 
@@ -541,6 +559,62 @@ if "argo-events" in enabled_components:
541
559
  config_resources.append('argo-events-controller-manager')
542
560
  config_resources.append('argo-events-webhook-eventsource-svc')
543
561
 
562
+ #################################################
563
+ # JOBSET
564
+ #################################################
565
+ if "jobset" in enabled_components:
566
+ # Apply JobSet manifests directly from GitHub releases
567
+ jobset_manifest_url = "https://github.com/kubernetes-sigs/jobset/releases/download/%s/manifests.yaml" % JOBSET_VERSION
568
+
569
+ cmd = "curl -sSL %s" % (jobset_manifest_url)
570
+ k8s_yaml(
571
+ local(
572
+ cmd,
573
+ )
574
+ )
575
+
576
+ k8s_resource(
577
+ 'jobset-controller-manager',
578
+ labels=['jobset'],
579
+ )
580
+
581
+ metaflow_config["METAFLOW_KUBERNETES_JOBSET_ENABLED"] = "true"
582
+
583
+ config_resources.append('jobset-controller-manager')
584
+
585
+ # ClusterRole for jobset operations
586
+ k8s_yaml(encode_yaml({
587
+ 'apiVersion': 'rbac.authorization.k8s.io/v1',
588
+ 'kind': 'ClusterRole',
589
+ 'metadata': {
590
+ 'name': 'jobset-full-access'
591
+ },
592
+ 'rules': [{
593
+ 'apiGroups': ['jobset.x-k8s.io'],
594
+ 'resources': ['jobsets'],
595
+ 'verbs': ['*']
596
+ }]
597
+ }))
598
+
599
+ # ClusterRoleBinding for default service account to access jobsets
600
+ k8s_yaml(encode_yaml({
601
+ 'apiVersion': 'rbac.authorization.k8s.io/v1',
602
+ 'kind': 'ClusterRoleBinding',
603
+ 'metadata': {
604
+ 'name': 'default-jobset-binding'
605
+ },
606
+ 'subjects': [{
607
+ 'kind': 'ServiceAccount',
608
+ 'name': 'default',
609
+ 'namespace': 'default'
610
+ }],
611
+ 'roleRef': {
612
+ 'kind': 'ClusterRole',
613
+ 'name': 'jobset-full-access',
614
+ 'apiGroup': 'rbac.authorization.k8s.io'
615
+ }
616
+ }))
617
+
544
618
  #################################################
545
619
  # METADATA SERVICE
546
620
  #################################################
@@ -18,6 +18,7 @@ SERVICE_OPTIONS=(
18
18
  "ui"
19
19
  "argo-workflows"
20
20
  "argo-events"
21
+ "jobset"
21
22
  )
22
23
 
23
24
  gum style "$LOGO" \
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: ob-metaflow
3
- Version: 2.18.7.4
3
+ Version: 2.18.9.1
4
4
  Summary: Metaflow: More AI and ML, 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: metaflow-stubs==2.18.7.4; extra == "stubs"
15
+ Requires-Dist: metaflow-stubs==2.18.9.1; extra == "stubs"
16
16
  Dynamic: author
17
17
  Dynamic: author-email
18
18
  Dynamic: description
@@ -86,3 +86,4 @@ We'd love to hear from you. Join our community [Slack workspace](http://slack.ou
86
86
  ## Contributing
87
87
  We welcome contributions to Metaflow. Please see our [contribution guide](https://docs.metaflow.org/introduction/contributing-to-metaflow) for more details.
88
88
 
89
+
@@ -1,6 +1,6 @@
1
1
  metaflow/R.py,sha256=CqVfIatvmjciuICNnoyyNGrwE7Va9iXfLdFbQa52hwA,3958
2
2
  metaflow/__init__.py,sha256=bS5KESnJIVfDYZIYf_CEYsUOj49014PFuUWtA6KOCo8,6420
3
- metaflow/cards.py,sha256=IbRmredvmFEU0V6JL7DR8wCESwVmmZJubr6x24bo7U4,442
3
+ metaflow/cards.py,sha256=nAOf4FFnd4YUu39hIiH2CyyKKyku8n3ZfUNnQvNEFds,456
4
4
  metaflow/cli.py,sha256=uF1ACHw3aWCe6ypFP1SplMZWVA8dgtMYc2z6I4v5neA,22802
5
5
  metaflow/cli_args.py,sha256=hDsdWdRmfXYifVGq6b6FDfgoWxtIG2nr_lU6EBV0Pnk,3584
6
6
  metaflow/clone_util.py,sha256=LSuVbFpPUh92UW32DBcnZbL0FFw-4w3CLa0tpEbCkzk,2066
@@ -12,7 +12,7 @@ metaflow/events.py,sha256=ahjzkSbSnRCK9RZ-9vTfUviz_6gMvSO9DGkJ86X80-k,5300
12
12
  metaflow/exception.py,sha256=_m9ZBJM0cooHRslDqfxCPQmkChqaTh6fGxp7HvISnYI,5161
13
13
  metaflow/flowspec.py,sha256=9wsO2_QoO_VHKusKdpslfbwQREOwf0fAzF-DSEA0iZ8,41968
14
14
  metaflow/graph.py,sha256=UOeClj-JeORRlZWOQMI1CirkrCpTvVWvRcSwODCajMg,19263
15
- metaflow/includefile.py,sha256=RtISGl1V48qjkJBakUZ9yPpHV102h7pOIFiKP8PLHpc,20927
15
+ metaflow/includefile.py,sha256=NXERo_halboBCjvnS5iCjnBMyCMlQMnT2mRe6kxl2xU,21978
16
16
  metaflow/integrations.py,sha256=LlsaoePRg03DjENnmLxZDYto3NwWc9z_PtU6nJxLldg,1480
17
17
  metaflow/lint.py,sha256=A2NdUq_MnQal_RUCMC8ZOSR0VYZGyi2mSgwPQB0UzQo,15343
18
18
  metaflow/meta_files.py,sha256=vlgJHI8GJUKzXoxdrVoH8yyCF5bhFgwYemUgnyd1wgM,342
@@ -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=qKa8z5a0XX50l5Qim9CBOBaLj3-pFZeMnIH-ydCFmzI,30
39
+ metaflow/version.py,sha256=VXnTFv7difhCqOiu2Rrnc4LOaj3sTVQlAoY6KrPgrWQ,30
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
@@ -198,7 +198,7 @@ metaflow/packaging_sys/distribution_support.py,sha256=VvikZBCH8N1TBZZ2Twk8jH1brm
198
198
  metaflow/packaging_sys/tar_backend.py,sha256=nFWuXiwYjWQkFdV2KaZ6gazNVvtY84Eqsh9txhU3pNY,3010
199
199
  metaflow/packaging_sys/utils.py,sha256=x8SVglJvY5mIAilS7MqZi2PpMr6IEyi6RCg3l8hN3G0,2972
200
200
  metaflow/packaging_sys/v1.py,sha256=kbNK0-pDAv3QJPZ789TE0UirGXcHbXkVQiyNT815H7A,20631
201
- metaflow/plugins/__init__.py,sha256=yFxjJOlnfap7tQMNgSgaso2tl_zr1BcWL7KoUKk4c9Y,8617
201
+ metaflow/plugins/__init__.py,sha256=XBocLBSWEPAeeakhTb6HGuocykkVukmnUuQgg-gGWEk,8662
202
202
  metaflow/plugins/catch_decorator.py,sha256=vorlDA6MLB2yHSsEuBoNzAZbrJ6Vknj1qJO9vey2_AI,4523
203
203
  metaflow/plugins/debug_logger.py,sha256=mcF5HYzJ0NQmqCMjyVUk3iAP-heroHRIiVWQC6Ha2-I,879
204
204
  metaflow/plugins/debug_monitor.py,sha256=Md5X_sDOSssN9pt2D8YcaIjTK5JaQD55UAYTcF6xYF0,1099
@@ -207,6 +207,7 @@ metaflow/plugins/events_decorator.py,sha256=FULT_Iuue9KsLyNhHOL46uw8cdT-Viq8rmcg
207
207
  metaflow/plugins/logs_cli.py,sha256=77W5UNagU2mOKSMMvrQxQmBLRzvmjK-c8dWxd-Ygbqs,11410
208
208
  metaflow/plugins/package_cli.py,sha256=GOxKJs9Wt0x9VtcTJ2EG_wj6pWnlS0XBFAyHpCzzuvs,2000
209
209
  metaflow/plugins/parallel_decorator.py,sha256=wtR_3eRIP3eV7fBIm15oouRjmHBFZ9OklxdaNvttLEQ,9702
210
+ metaflow/plugins/parsers.py,sha256=y92kMEFmbBvzU7EjZSFgml3S6EOLwY5Qmb4Jwk7leUw,249
210
211
  metaflow/plugins/project_decorator.py,sha256=uhwsguEj7OM_E2OnY1ap3MoGocQHeywuJSa-qPuWn-U,7592
211
212
  metaflow/plugins/resources_decorator.py,sha256=AtoOwg4mHYHYthg-CAfbfam-QiT0ViuDLDoukoDvF6Q,1347
212
213
  metaflow/plugins/retry_decorator.py,sha256=tz_2Tq6GLg3vjDBZp0KKVTk3ADlCvqaWTSf7blmFdUw,1548
@@ -284,12 +285,12 @@ metaflow/plugins/cards/metadata.py,sha256=tACaw7_XNAICZ4A25celIbgxUF0CxHh7BBpFzK
284
285
  metaflow/plugins/cards/card_modules/__init__.py,sha256=WI2IAsFiKGyqPrHtO9S9-MbyVtUTgWJNL4xjJaBErRo,3437
285
286
  metaflow/plugins/cards/card_modules/base.html,sha256=Y208ZKIZqEWWUcoBFTLTdWKAG0C8xH5lmyCRSjaN2FY,21004
286
287
  metaflow/plugins/cards/card_modules/basic.py,sha256=b6aBg7800CjjkQb0J_TOd3JujVR10X2QoXYdwiXFbkE,25831
287
- metaflow/plugins/cards/card_modules/bundle.css,sha256=Ey_j7SHMYWFxUA0WOrz-hq1c-0KDolfGoIffay3yNsU,12144
288
+ metaflow/plugins/cards/card_modules/bundle.css,sha256=VHe87L_Neezo5FGaCEKeLsR_rC6N8O7Fk_OU85am3is,14566
288
289
  metaflow/plugins/cards/card_modules/card.py,sha256=6sbqP5mwf7QWvQvX2N_bC78H9ixuI5sQ8612Q5islys,4627
289
- metaflow/plugins/cards/card_modules/components.py,sha256=Y-Yo7UgSOyTB3zs-wDfUqUKl0PI_BzeY1QGcy2fqE2M,26752
290
+ metaflow/plugins/cards/card_modules/components.py,sha256=tlIwQEZIL0MzwtmcqociG1MgVq8QX-gLGk8Kxvyygg0,34946
290
291
  metaflow/plugins/cards/card_modules/convert_to_native_type.py,sha256=Vcjqn5rfC0kVMdhqDwsYEjknXTbkG_ppraQrQGaQY_E,16245
291
292
  metaflow/plugins/cards/card_modules/main.css,sha256=avu7BTB9qj0M8LvqNLUhikUFQhmAJhQQ7REcUgh9zMw,11725
292
- metaflow/plugins/cards/card_modules/main.js,sha256=mZkgYvl4mN_YlPZmGn7SqZAO8do_SbRjMFR8KmZUdJM,1045780
293
+ metaflow/plugins/cards/card_modules/main.js,sha256=m_8lgsLiAsZn89sNX9wozpTB0cwygdmph78VpMwCNoA,1047601
293
294
  metaflow/plugins/cards/card_modules/renderer_tools.py,sha256=uiTdKHWFInWgtfWArOUSQLnTwqVd4hAw49jfOfg8rGA,1642
294
295
  metaflow/plugins/cards/card_modules/test_cards.py,sha256=t2PZ3QnjCN_KUlDKxAt2FfK1BX2dp8rqK6TjtkCNyew,5876
295
296
  metaflow/plugins/cards/card_modules/chevron/__init__.py,sha256=SicpH_1eT76HUTA8aMuiGLRNKTqgYD1Qfutt2NdTL0E,156
@@ -306,8 +307,8 @@ metaflow/plugins/datastores/s3_storage.py,sha256=CZdNqaKtxDXQbEg2YHyphph3hWcLIE5
306
307
  metaflow/plugins/datatools/__init__.py,sha256=ge4L16OBQLy2J_MMvoHg3lMfdm-MluQgRWoyZ5GCRnk,1267
307
308
  metaflow/plugins/datatools/local.py,sha256=FJvMOBcjdyhSPHmdLocBSiIT0rmKkKBmsaclxH75x08,4233
308
309
  metaflow/plugins/datatools/s3/__init__.py,sha256=14tr9fPjN3ULW5IOfKHeG7Uhjmgm7LMtQHfz1SFv-h8,248
309
- metaflow/plugins/datatools/s3/s3.py,sha256=3xrWD6pXoVRpuAQHyLGVya79UIE0S8AqAqe2prg4yMw,67182
310
- metaflow/plugins/datatools/s3/s3op.py,sha256=nDFgc5m0ud-uK4D2_vyweGpGoMjESxu3TlX86zA1MdQ,47561
310
+ metaflow/plugins/datatools/s3/s3.py,sha256=b07QwYvfKvR1k0eZ_b5Hk4XQnQs3ORk6b0nvCwfZL8w,67324
311
+ metaflow/plugins/datatools/s3/s3op.py,sha256=3GOtIV08gmAo7XE6NNnsSUxTTRIsvgPJn7CC0U5E7XY,48129
311
312
  metaflow/plugins/datatools/s3/s3tail.py,sha256=boQjQGQMI-bvTqcMP2y7uSlSYLcvWOy7J3ZUaF78NAA,2597
312
313
  metaflow/plugins/datatools/s3/s3util.py,sha256=FgRgaVmEq7-i2dV7q8XK5w5PfFt-xJjZa8WrK8IJfdI,3769
313
314
  metaflow/plugins/env_escape/__init__.py,sha256=tGNUZnmPvk52eNs__VK443b3CZ7ogEFTT-s9_n_HF8Q,8837
@@ -428,12 +429,12 @@ metaflow/user_decorators/mutable_flow.py,sha256=EywKTN3cnXPQF_s62wQaC4a4aH14j8oe
428
429
  metaflow/user_decorators/mutable_step.py,sha256=-BY0UDXf_RCAEnC5JlLzEXGdiw1KD9oSrSxS_SWaB9Y,16791
429
430
  metaflow/user_decorators/user_flow_decorator.py,sha256=2yDwZq9QGv9W-7kEuKwa8o4ZkTvuHJ5ESz7VVrGViAI,9890
430
431
  metaflow/user_decorators/user_step_decorator.py,sha256=4558NR8RJtN22OyTwCXO80bAMhMTaRGMoX12b1GMcPc,27232
431
- ob_metaflow-2.18.7.4.data/data/share/metaflow/devtools/Makefile,sha256=TT4TCq8ALSfqYyGqDPocN5oPcZe2FqoCZxmGO1LmyCc,13760
432
- ob_metaflow-2.18.7.4.data/data/share/metaflow/devtools/Tiltfile,sha256=Ty5p6AD3MwJAcAnOGv4yMz8fExAsnNQ11r8whK6uzzw,21381
433
- ob_metaflow-2.18.7.4.data/data/share/metaflow/devtools/pick_services.sh,sha256=DCnrMXwtApfx3B4S-YiZESMyAFHbXa3VuNL0MxPLyiE,2196
434
- ob_metaflow-2.18.7.4.dist-info/licenses/LICENSE,sha256=nl_Lt5v9VvJ-5lWJDT4ddKAG-VZ-2IaLmbzpgYDz2hU,11343
435
- ob_metaflow-2.18.7.4.dist-info/METADATA,sha256=s3EbdIke2IxZre6FYZqcRT3zlBINRP4V34i7331S0Jc,5935
436
- ob_metaflow-2.18.7.4.dist-info/WHEEL,sha256=JNWh1Fm1UdwIQV075glCn4MVuCRs0sotJIq-J6rbxCU,109
437
- ob_metaflow-2.18.7.4.dist-info/entry_points.txt,sha256=RvEq8VFlgGe_FfqGOZi0D7ze1hLD0pAtXeNyGfzc_Yc,103
438
- ob_metaflow-2.18.7.4.dist-info/top_level.txt,sha256=v1pDHoWaSaKeuc5fKTRSfsXCKSdW1zvNVmvA-i0if3o,9
439
- ob_metaflow-2.18.7.4.dist-info/RECORD,,
432
+ ob_metaflow-2.18.9.1.data/data/share/metaflow/devtools/Makefile,sha256=TT4TCq8ALSfqYyGqDPocN5oPcZe2FqoCZxmGO1LmyCc,13760
433
+ ob_metaflow-2.18.9.1.data/data/share/metaflow/devtools/Tiltfile,sha256=8-VMYGdEBFp73Ur5BzQn7TxxkMBMhwJszsVhR_ftgBU,23892
434
+ ob_metaflow-2.18.9.1.data/data/share/metaflow/devtools/pick_services.sh,sha256=PGjQeDIigFHeoQ0asmYNdYDPIOdeYy1UYvkw2wdN4zg,2209
435
+ ob_metaflow-2.18.9.1.dist-info/licenses/LICENSE,sha256=nl_Lt5v9VvJ-5lWJDT4ddKAG-VZ-2IaLmbzpgYDz2hU,11343
436
+ ob_metaflow-2.18.9.1.dist-info/METADATA,sha256=nlw2RXeC4Si_MUdE4HsupPx9ujhkoFYlyobwPy-jt8M,5936
437
+ ob_metaflow-2.18.9.1.dist-info/WHEEL,sha256=JNWh1Fm1UdwIQV075glCn4MVuCRs0sotJIq-J6rbxCU,109
438
+ ob_metaflow-2.18.9.1.dist-info/entry_points.txt,sha256=RvEq8VFlgGe_FfqGOZi0D7ze1hLD0pAtXeNyGfzc_Yc,103
439
+ ob_metaflow-2.18.9.1.dist-info/top_level.txt,sha256=v1pDHoWaSaKeuc5fKTRSfsXCKSdW1zvNVmvA-i0if3o,9
440
+ ob_metaflow-2.18.9.1.dist-info/RECORD,,