ob-metaflow-extensions 1.1.170__py2.py3-none-any.whl → 1.4.35__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-extensions might be problematic. Click here for more details.

Files changed (65) hide show
  1. metaflow_extensions/outerbounds/plugins/__init__.py +6 -2
  2. metaflow_extensions/outerbounds/plugins/apps/app_cli.py +0 -0
  3. metaflow_extensions/outerbounds/plugins/apps/app_deploy_decorator.py +146 -0
  4. metaflow_extensions/outerbounds/plugins/apps/core/__init__.py +10 -0
  5. metaflow_extensions/outerbounds/plugins/apps/core/_state_machine.py +506 -0
  6. metaflow_extensions/outerbounds/plugins/apps/core/_vendor/__init__.py +0 -0
  7. metaflow_extensions/outerbounds/plugins/apps/core/_vendor/spinner/__init__.py +4 -0
  8. metaflow_extensions/outerbounds/plugins/apps/core/_vendor/spinner/spinners.py +478 -0
  9. metaflow_extensions/outerbounds/plugins/apps/core/app_cli.py +1200 -0
  10. metaflow_extensions/outerbounds/plugins/apps/core/app_config.py +146 -0
  11. metaflow_extensions/outerbounds/plugins/apps/core/artifacts.py +0 -0
  12. metaflow_extensions/outerbounds/plugins/apps/core/capsule.py +958 -0
  13. metaflow_extensions/outerbounds/plugins/apps/core/click_importer.py +24 -0
  14. metaflow_extensions/outerbounds/plugins/apps/core/code_package/__init__.py +3 -0
  15. metaflow_extensions/outerbounds/plugins/apps/core/code_package/code_packager.py +618 -0
  16. metaflow_extensions/outerbounds/plugins/apps/core/code_package/examples.py +125 -0
  17. metaflow_extensions/outerbounds/plugins/apps/core/config/__init__.py +12 -0
  18. metaflow_extensions/outerbounds/plugins/apps/core/config/cli_generator.py +161 -0
  19. metaflow_extensions/outerbounds/plugins/apps/core/config/config_utils.py +868 -0
  20. metaflow_extensions/outerbounds/plugins/apps/core/config/schema_export.py +288 -0
  21. metaflow_extensions/outerbounds/plugins/apps/core/config/typed_configs.py +139 -0
  22. metaflow_extensions/outerbounds/plugins/apps/core/config/typed_init_generator.py +398 -0
  23. metaflow_extensions/outerbounds/plugins/apps/core/config/unified_config.py +1088 -0
  24. metaflow_extensions/outerbounds/plugins/apps/core/config_schema.yaml +337 -0
  25. metaflow_extensions/outerbounds/plugins/apps/core/dependencies.py +115 -0
  26. metaflow_extensions/outerbounds/plugins/apps/core/deployer.py +303 -0
  27. metaflow_extensions/outerbounds/plugins/apps/core/experimental/__init__.py +89 -0
  28. metaflow_extensions/outerbounds/plugins/apps/core/perimeters.py +87 -0
  29. metaflow_extensions/outerbounds/plugins/apps/core/secrets.py +164 -0
  30. metaflow_extensions/outerbounds/plugins/apps/core/utils.py +233 -0
  31. metaflow_extensions/outerbounds/plugins/apps/core/validations.py +17 -0
  32. metaflow_extensions/outerbounds/plugins/aws/assume_role_decorator.py +25 -12
  33. metaflow_extensions/outerbounds/plugins/checkpoint_datastores/coreweave.py +9 -77
  34. metaflow_extensions/outerbounds/plugins/checkpoint_datastores/external_chckpt.py +85 -0
  35. metaflow_extensions/outerbounds/plugins/checkpoint_datastores/nebius.py +7 -78
  36. metaflow_extensions/outerbounds/plugins/fast_bakery/baker.py +110 -0
  37. metaflow_extensions/outerbounds/plugins/fast_bakery/docker_environment.py +6 -2
  38. metaflow_extensions/outerbounds/plugins/fast_bakery/fast_bakery.py +1 -0
  39. metaflow_extensions/outerbounds/plugins/nvct/nvct_decorator.py +8 -8
  40. metaflow_extensions/outerbounds/plugins/optuna/__init__.py +48 -0
  41. metaflow_extensions/outerbounds/plugins/profilers/simple_card_decorator.py +96 -0
  42. metaflow_extensions/outerbounds/plugins/s3_proxy/__init__.py +7 -0
  43. metaflow_extensions/outerbounds/plugins/s3_proxy/binary_caller.py +132 -0
  44. metaflow_extensions/outerbounds/plugins/s3_proxy/constants.py +11 -0
  45. metaflow_extensions/outerbounds/plugins/s3_proxy/exceptions.py +13 -0
  46. metaflow_extensions/outerbounds/plugins/s3_proxy/proxy_bootstrap.py +59 -0
  47. metaflow_extensions/outerbounds/plugins/s3_proxy/s3_proxy_api.py +93 -0
  48. metaflow_extensions/outerbounds/plugins/s3_proxy/s3_proxy_decorator.py +250 -0
  49. metaflow_extensions/outerbounds/plugins/s3_proxy/s3_proxy_manager.py +225 -0
  50. metaflow_extensions/outerbounds/plugins/snowpark/snowpark_client.py +6 -3
  51. metaflow_extensions/outerbounds/plugins/snowpark/snowpark_decorator.py +13 -7
  52. metaflow_extensions/outerbounds/plugins/snowpark/snowpark_job.py +8 -2
  53. metaflow_extensions/outerbounds/plugins/torchtune/__init__.py +4 -0
  54. metaflow_extensions/outerbounds/plugins/vllm/__init__.py +173 -95
  55. metaflow_extensions/outerbounds/plugins/vllm/status_card.py +9 -9
  56. metaflow_extensions/outerbounds/plugins/vllm/vllm_manager.py +159 -9
  57. metaflow_extensions/outerbounds/remote_config.py +8 -3
  58. metaflow_extensions/outerbounds/toplevel/global_aliases_for_metaflow_package.py +63 -1
  59. metaflow_extensions/outerbounds/toplevel/ob_internal.py +3 -0
  60. metaflow_extensions/outerbounds/toplevel/plugins/optuna/__init__.py +1 -0
  61. metaflow_extensions/outerbounds/toplevel/s3_proxy.py +88 -0
  62. {ob_metaflow_extensions-1.1.170.dist-info → ob_metaflow_extensions-1.4.35.dist-info}/METADATA +2 -2
  63. {ob_metaflow_extensions-1.1.170.dist-info → ob_metaflow_extensions-1.4.35.dist-info}/RECORD +65 -21
  64. {ob_metaflow_extensions-1.1.170.dist-info → ob_metaflow_extensions-1.4.35.dist-info}/WHEEL +0 -0
  65. {ob_metaflow_extensions-1.1.170.dist-info → ob_metaflow_extensions-1.4.35.dist-info}/top_level.txt +0 -0
@@ -5,6 +5,44 @@
5
5
  __version__ = "v1"
6
6
  __mf_extensions__ = "ob"
7
7
 
8
+ from metaflow_extensions.outerbounds.toplevel.s3_proxy import (
9
+ get_aws_client_with_s3_proxy,
10
+ get_S3_with_s3_proxy,
11
+ )
12
+
13
+ _S3_PROXY_CONFIG = None
14
+
15
+
16
+ def set_s3_proxy_config(config):
17
+ global _S3_PROXY_CONFIG
18
+ _S3_PROXY_CONFIG = config
19
+
20
+
21
+ def clear_s3_proxy_config():
22
+ global _S3_PROXY_CONFIG
23
+ _S3_PROXY_CONFIG = None
24
+
25
+
26
+ def get_s3_proxy_config():
27
+ global _S3_PROXY_CONFIG
28
+ if _S3_PROXY_CONFIG is None:
29
+ set_s3_proxy_config(get_s3_proxy_config_from_env())
30
+ return _S3_PROXY_CONFIG
31
+
32
+
33
+ # TODO: Refactor out the _S3_PROXY_CONFIG global variable and instead use the function that
34
+ # extracts it from the environment variables.
35
+
36
+ import os
37
+ import json
38
+
39
+
40
+ def get_s3_proxy_config_from_env():
41
+ env_conf = os.environ.get("METAFLOW_S3_PROXY_USER_CODE_CONFIG")
42
+ if env_conf:
43
+ return json.loads(env_conf)
44
+ return None
45
+
8
46
 
9
47
  # Must match the signature of metaflow.plugins.aws.aws_client.get_aws_client
10
48
  # This function is called by the "userland" code inside tasks. Metaflow internals
@@ -34,7 +72,17 @@ def get_aws_client(
34
72
  if decorator_role_arn:
35
73
  role_arn = decorator_role_arn
36
74
 
37
- return metaflow.plugins.aws.aws_client.get_aws_client(
75
+ if module == "s3" and get_s3_proxy_config() is not None:
76
+ return get_aws_client_with_s3_proxy(
77
+ module,
78
+ with_error,
79
+ role_arn,
80
+ session_vars,
81
+ client_params,
82
+ get_s3_proxy_config(),
83
+ )
84
+
85
+ client = metaflow.plugins.aws.aws_client.get_aws_client(
38
86
  module,
39
87
  with_error=with_error,
40
88
  role_arn=role_arn or USE_CSPR_ROLE_ARN_IF_SET,
@@ -42,6 +90,8 @@ def get_aws_client(
42
90
  client_params=client_params,
43
91
  )
44
92
 
93
+ return client
94
+
45
95
 
46
96
  # This should match the signature of metaflow.plugins.datatools.s3.S3.
47
97
  #
@@ -68,10 +118,22 @@ def S3(*args, **kwargs):
68
118
  else:
69
119
  kwargs["role"] = USE_CSPR_ROLE_ARN_IF_SET
70
120
 
121
+ # Check if S3 proxy is active using module variable (like CSPR)
122
+ if get_s3_proxy_config() is not None:
123
+ return get_S3_with_s3_proxy(get_s3_proxy_config(), *args, **kwargs)
124
+
71
125
  return metaflow.plugins.datatools.s3.S3(*args, **kwargs)
72
126
 
73
127
 
128
+ # Setting the S3 client docstring in order to ensure that
129
+ # stubs get generated properly.
130
+ import metaflow.plugins.datatools.s3
131
+
132
+ S3.__doc__ = metaflow.plugins.datatools.s3.S3.__doc__
133
+
74
134
  from .. import profilers
75
135
  from ..plugins.snowflake import Snowflake
76
136
  from ..plugins.checkpoint_datastores import nebius_checkpoints, coreweave_checkpoints
77
137
  from ..plugins.aws import assume_role
138
+ from . import ob_internal
139
+ from .ob_internal import AppDeployer
@@ -1 +1,4 @@
1
1
  from ..plugins.kubernetes.pod_killer import PodKiller
2
+ from ..plugins.fast_bakery.baker import bake_image
3
+ from ..plugins.apps import core as app_core
4
+ from ..plugins.apps.core import AppDeployer
@@ -0,0 +1 @@
1
+ __mf_promote_submodules__ = ["plugins.optuna"]
@@ -0,0 +1,88 @@
1
+ from metaflow_extensions.outerbounds.plugins import USE_CSPR_ROLE_ARN_IF_SET
2
+ from metaflow.metaflow_config import AWS_SECRETS_MANAGER_DEFAULT_REGION
3
+ from metaflow_extensions.outerbounds.plugins.s3_proxy.constants import (
4
+ DEFAULT_PROXY_HOST,
5
+ DEFAULT_PROXY_PORT,
6
+ )
7
+
8
+
9
+ def get_aws_client_with_s3_proxy(
10
+ module,
11
+ with_error=False,
12
+ role_arn=None,
13
+ session_vars=None,
14
+ client_params=None,
15
+ s3_config=None,
16
+ ):
17
+ if not client_params:
18
+ client_params = {}
19
+
20
+ client_params["region_name"] = client_params.get(
21
+ "region_name", s3_config.get("region")
22
+ )
23
+ client_params["endpoint_url"] = s3_config.get(
24
+ "endpoint_url", f"http://{DEFAULT_PROXY_HOST}:{DEFAULT_PROXY_PORT}"
25
+ )
26
+
27
+ import metaflow.plugins.aws.aws_client
28
+
29
+ client = metaflow.plugins.aws.aws_client.get_aws_client(
30
+ module,
31
+ with_error=with_error,
32
+ role_arn=role_arn or USE_CSPR_ROLE_ARN_IF_SET,
33
+ session_vars=session_vars,
34
+ client_params=client_params,
35
+ )
36
+
37
+ def override_s3_proxy_host_header(request, **kwargs):
38
+ region = kwargs["region_name"]
39
+ request.headers["Host"] = f"s3.{region}.amazonaws.com"
40
+ if "x-ob-write-to" not in request.headers and "write_mode" in s3_config:
41
+ request.headers["x-ob-write-to"] = s3_config.get("write_mode")
42
+
43
+ client.meta.events.register("before-sign", override_s3_proxy_host_header)
44
+
45
+ return client
46
+
47
+
48
+ def get_S3_with_s3_proxy(s3_config, *args, **kwargs):
49
+ if "region_name" not in kwargs:
50
+ kwargs["region_name"] = s3_config.get(
51
+ "region", AWS_SECRETS_MANAGER_DEFAULT_REGION
52
+ )
53
+
54
+ kwargs["endpoint_url"] = s3_config.get(
55
+ "endpoint_url", f"http://{DEFAULT_PROXY_HOST}:{DEFAULT_PROXY_PORT}"
56
+ )
57
+
58
+ import metaflow.plugins.datatools.s3
59
+
60
+ mf_s3 = metaflow.plugins.datatools.s3.S3(*args, **kwargs)
61
+
62
+ # Override reset_client to ensure proxy endpoint is preserved
63
+ original_reset_client = mf_s3._s3_client.reset_client
64
+
65
+ def proxy_reset_client():
66
+ original_reset_client()
67
+ import boto3
68
+
69
+ proxy_client = boto3.client(
70
+ "s3",
71
+ region_name=kwargs.get("region_name", s3_config.get("region")),
72
+ endpoint_url=s3_config.get("endpoint_url"),
73
+ )
74
+ mf_s3._s3_client._s3_client = proxy_client
75
+
76
+ mf_s3._s3_client.reset_client = proxy_reset_client
77
+ mf_s3._s3_client.reset_client()
78
+
79
+ def override_s3_proxy_host_header(request, **kwargs):
80
+ region = kwargs["region_name"]
81
+ request.headers["Host"] = f"s3.{region}.amazonaws.com"
82
+ if "x-ob-write-to" not in request.headers and "write_mode" in s3_config:
83
+ request.headers["x-ob-write-to"] = s3_config.get("write_mode")
84
+
85
+ mf_s3._s3_client._s3_client.meta.events.register(
86
+ "before-sign", override_s3_proxy_host_header
87
+ )
88
+ return mf_s3
@@ -1,13 +1,13 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: ob-metaflow-extensions
3
- Version: 1.1.170
3
+ Version: 1.4.35
4
4
  Summary: Outerbounds Platform Extensions for Metaflow
5
5
  Author: Outerbounds, Inc.
6
6
  License: Commercial
7
7
  Description-Content-Type: text/markdown
8
8
  Requires-Dist: boto3
9
9
  Requires-Dist: kubernetes
10
- Requires-Dist: ob-metaflow (==2.15.18.1)
10
+ Requires-Dist: ob-metaflow (==2.19.12.3)
11
11
 
12
12
  # Outerbounds platform package
13
13
 
@@ -1,27 +1,59 @@
1
1
  metaflow_extensions/outerbounds/__init__.py,sha256=Gb8u06s9ClQsA_vzxmkCzuMnigPy7kKcDnLfb7eB-64,514
2
- metaflow_extensions/outerbounds/remote_config.py,sha256=pEFJuKDYs98eoB_-ryPjVi9b_c4gpHMdBHE14ltoxIU,4672
2
+ metaflow_extensions/outerbounds/remote_config.py,sha256=NIKiq-hrThOll7RLw2JfSN7K5Wz0QtjtRb5AVlHZ1vA,4787
3
3
  metaflow_extensions/outerbounds/config/__init__.py,sha256=JsQGRuGFz28fQWjUvxUgR8EKBLGRdLUIk_buPLJplJY,1225
4
- metaflow_extensions/outerbounds/plugins/__init__.py,sha256=qaGCEa_QFWgGURABv-ss0TYbC1RJTLlckogTA5tc3Bk,13713
4
+ metaflow_extensions/outerbounds/plugins/__init__.py,sha256=nrsobix6XPIn5Uyg6yTSOtNwr6yaV2-gGbU83hjnbIM,14038
5
5
  metaflow_extensions/outerbounds/plugins/auth_server.py,sha256=_Q9_2EL0Xy77bCRphkwT1aSu8gQXRDOH-Z-RxTUO8N4,2202
6
6
  metaflow_extensions/outerbounds/plugins/perimeters.py,sha256=QXh3SFP7GQbS-RAIxUOPbhPzQ7KDFVxZkTdKqFKgXjI,2697
7
7
  metaflow_extensions/outerbounds/plugins/apps/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
8
+ metaflow_extensions/outerbounds/plugins/apps/app_cli.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
9
+ metaflow_extensions/outerbounds/plugins/apps/app_deploy_decorator.py,sha256=WWFvyl0EDUbp_UwmWjXBqlLfPEZ-lq98NJ5F5skBDKU,4901
8
10
  metaflow_extensions/outerbounds/plugins/apps/app_utils.py,sha256=sw9whU17lAzlD2K2kEDNjlk1Ib-2xE2UNhJkmzD8Qv8,8543
9
11
  metaflow_extensions/outerbounds/plugins/apps/consts.py,sha256=iHsyqbUg9k-rgswCs1Jxf5QZIxR1V-peCDRjgr9kdBM,177
10
12
  metaflow_extensions/outerbounds/plugins/apps/deploy_decorator.py,sha256=VkmiMdNYHhNdt-Qm9AVv7aE2LWFsIFEc16YcOYjwF6Q,8568
11
13
  metaflow_extensions/outerbounds/plugins/apps/supervisord_utils.py,sha256=GQoN2gyPClcpR9cLldJmbCfqXnoAHxp8xUnY7vzaYtY,9026
14
+ metaflow_extensions/outerbounds/plugins/apps/core/__init__.py,sha256=c6uCgKlgEkTmM9BVdAO-m3vZvUpK2KW_AZZ2236now4,237
15
+ metaflow_extensions/outerbounds/plugins/apps/core/_state_machine.py,sha256=al907t2C86BPf4V1V03PLTJRJMOc8gdl1CxLLbklnDU,20281
16
+ metaflow_extensions/outerbounds/plugins/apps/core/app_cli.py,sha256=rD7oimnkEm___K2Ttiwe12B-Xzqi76tk4_HyFQArBQs,42736
17
+ metaflow_extensions/outerbounds/plugins/apps/core/app_config.py,sha256=MDOWrLuLK3CsbO6SRuidRmoB_g0SGrdC-8sTdE5kWLs,4226
18
+ metaflow_extensions/outerbounds/plugins/apps/core/artifacts.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
19
+ metaflow_extensions/outerbounds/plugins/apps/core/capsule.py,sha256=MneFa7qna90Gg_GVP7t5jUkQ_VLwT0jGJmLL9toevyk,37063
20
+ metaflow_extensions/outerbounds/plugins/apps/core/click_importer.py,sha256=kgoPQmK_-8PSSTc3QMSaynCLQ5VWTkKFOC69FPURyXA,998
21
+ metaflow_extensions/outerbounds/plugins/apps/core/config_schema.yaml,sha256=vpvhpZOiPvqu-9mSoYk38vZ5wnFdeSA5DAPGVxFSoWA,10176
22
+ metaflow_extensions/outerbounds/plugins/apps/core/dependencies.py,sha256=JlWT9f27yzZeJPlqTQk134WDfQgOdyxC5iaw3pLlhqY,4006
23
+ metaflow_extensions/outerbounds/plugins/apps/core/deployer.py,sha256=dNKlDu6n8SufEd5NKmsErl1RYhQXuEe_DgtA0mk7awg,9472
24
+ metaflow_extensions/outerbounds/plugins/apps/core/perimeters.py,sha256=ETlqTkHDvVaWusrbNncFf7pcGJarj0r-5qodC4gZWQM,3068
25
+ metaflow_extensions/outerbounds/plugins/apps/core/secrets.py,sha256=sgDiAmpSC8Y5xjlaOEp79F6m0S3x4RONf_vJ5PUAfu8,6127
26
+ metaflow_extensions/outerbounds/plugins/apps/core/utils.py,sha256=2M2zU8DhbAlJee8P0xKXINAku81PcUylS3sVCSb0TUs,7896
27
+ metaflow_extensions/outerbounds/plugins/apps/core/validations.py,sha256=Inr9AJDe-L3PMMMxcJPH1zulh9_SynqITb2BzGseLh4,471
28
+ metaflow_extensions/outerbounds/plugins/apps/core/_vendor/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
29
+ metaflow_extensions/outerbounds/plugins/apps/core/_vendor/spinner/__init__.py,sha256=gTm0NdQGTRxmghye1CYkhRtodji0MezsqAWs9OrLLRc,102
30
+ metaflow_extensions/outerbounds/plugins/apps/core/_vendor/spinner/spinners.py,sha256=0Hl1dskTzfibHPM5dfHV3no1maFduOCJ48r8mr3tgr0,15786
31
+ metaflow_extensions/outerbounds/plugins/apps/core/code_package/__init__.py,sha256=8McF7pgx8ghvjRnazp2Qktlxi9yYwNiwESSQrk-2oW8,68
32
+ metaflow_extensions/outerbounds/plugins/apps/core/code_package/code_packager.py,sha256=QHlF94T7ZGSOJH5Xeg4mI_CJvCrbaikiIOTnkFgE83g,23228
33
+ metaflow_extensions/outerbounds/plugins/apps/core/code_package/examples.py,sha256=aF8qKIJxCVv_ugcShQjqUsXKKKMsm1oMkQIl8w3QKuw,4016
34
+ metaflow_extensions/outerbounds/plugins/apps/core/config/__init__.py,sha256=ZgC9U4NFu7TNngUuUMzt69PmjMENXb6eUK2HCSroIDo,393
35
+ metaflow_extensions/outerbounds/plugins/apps/core/config/cli_generator.py,sha256=0R0-wy7RxAMR9doVRvuluRYxAYgyjZXlTIkOeYGyz7M,5350
36
+ metaflow_extensions/outerbounds/plugins/apps/core/config/config_utils.py,sha256=bozzUR8rbfOnb5M532RZxB5QNvVgEC1gnVjfCvQ82Yk,34053
37
+ metaflow_extensions/outerbounds/plugins/apps/core/config/schema_export.py,sha256=vfmoSXGRocXryOQOGHbh-zIboEP3ty0BVucOza6uzXU,9614
38
+ metaflow_extensions/outerbounds/plugins/apps/core/config/typed_configs.py,sha256=9FWdp_F_jBsoxxQf40sRcNgvba8RBYkn2Q5HjXHg_6Y,4733
39
+ metaflow_extensions/outerbounds/plugins/apps/core/config/typed_init_generator.py,sha256=KiJ1eiwtBR5eWdBzWqvO6KlqJ2qzjJvl3w4c1uJ3g0Y,13419
40
+ metaflow_extensions/outerbounds/plugins/apps/core/config/unified_config.py,sha256=gqf8p2OYvUWtslEDPsvgZKl13RMhfKeIaq3bGrIjGqs,38990
41
+ metaflow_extensions/outerbounds/plugins/apps/core/experimental/__init__.py,sha256=_OT0RsbQdYerT-fjG_vcu85ava6sHbCsGBpLcGcrlX8,3043
12
42
  metaflow_extensions/outerbounds/plugins/aws/__init__.py,sha256=VBGdjNKeFLXGZuqh4jVk8cFtO1AWof73a6k_cnbAOYA,145
13
43
  metaflow_extensions/outerbounds/plugins/aws/assume_role.py,sha256=mBewNlnSYsR2rFXFkX-DUH6ku01h2yOcMcLHoCL7eyI,161
14
- metaflow_extensions/outerbounds/plugins/aws/assume_role_decorator.py,sha256=b3te8-RJxsj5cqXbQTFxxeIfnqTERAFInzLgXLVLyYA,2391
44
+ metaflow_extensions/outerbounds/plugins/aws/assume_role_decorator.py,sha256=MrExIdwnQ4ZVKbrWqEQAIuZO4lWEy1rE0ihGUx7GMJA,2976
15
45
  metaflow_extensions/outerbounds/plugins/card_utilities/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
16
46
  metaflow_extensions/outerbounds/plugins/card_utilities/async_cards.py,sha256=6rQhtZXK5DenXPfCRS1ul0jvLJYd48jrJAlnodID21w,4347
17
47
  metaflow_extensions/outerbounds/plugins/card_utilities/extra_components.py,sha256=D8rgCaSc7PuLD0MHJjqsjN0g0PQMN1H-ySOJqi5uIOE,19111
18
48
  metaflow_extensions/outerbounds/plugins/card_utilities/injector.py,sha256=UQtHrviFs7Z5LBh0nbaIv8aEnHnyXFjs9TiGCjtcIWc,2452
19
49
  metaflow_extensions/outerbounds/plugins/checkpoint_datastores/__init__.py,sha256=H96Bdv2XKTewKIU587sjNbU538SKMZOYWQ2qCp1JaNU,84
20
- metaflow_extensions/outerbounds/plugins/checkpoint_datastores/coreweave.py,sha256=_WzoOROFjoFa8TzsMNFp-r_1Zz7NUp-5ljn_kKlczXA,4534
21
- metaflow_extensions/outerbounds/plugins/checkpoint_datastores/nebius.py,sha256=zgqDLFewCeF5jqh-hUNKmC_OAjld09ln0bb8Lkeqapc,4659
50
+ metaflow_extensions/outerbounds/plugins/checkpoint_datastores/coreweave.py,sha256=_SKSs0qfRt864rmz3gcm87zEPEh16_ai-MJ-D47v15Y,2340
51
+ metaflow_extensions/outerbounds/plugins/checkpoint_datastores/external_chckpt.py,sha256=BRigyuyYYv5H1CxfifFJPPvgMdQeCNIT8Hm0j1xo-YA,3025
52
+ metaflow_extensions/outerbounds/plugins/checkpoint_datastores/nebius.py,sha256=xFGdSxlHcwZwgTSKj8efEv6ydCWYqRGrreGqXhf02ko,2321
22
53
  metaflow_extensions/outerbounds/plugins/fast_bakery/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
23
- metaflow_extensions/outerbounds/plugins/fast_bakery/docker_environment.py,sha256=nmp_INGIAiWyrhyJ71BH38eRLu1xCIEEKejmXNQ6RlA,15378
24
- metaflow_extensions/outerbounds/plugins/fast_bakery/fast_bakery.py,sha256=PE81ZB54OAMXkMGSB7JqgvgMg7N9kvoVclrWL-6jc2U,5626
54
+ metaflow_extensions/outerbounds/plugins/fast_bakery/baker.py,sha256=ShE5omFBr83wkvEhL_ptRFvDNMs6wefg4BjaafQjTcM,3602
55
+ metaflow_extensions/outerbounds/plugins/fast_bakery/docker_environment.py,sha256=vKN3Waz0SgbOALVTRcf_8MCGhxdRueRFZJ7JmWbRJRM,15487
56
+ metaflow_extensions/outerbounds/plugins/fast_bakery/fast_bakery.py,sha256=9iqIBowKk95vUYvnMrFNWmmSuK-whKnqJwcCmEcRjTU,5727
25
57
  metaflow_extensions/outerbounds/plugins/fast_bakery/fast_bakery_cli.py,sha256=kqFyu2bJSnc9_9aYfBpz5xK6L6luWFZK_NMuh8f1eVk,1494
26
58
  metaflow_extensions/outerbounds/plugins/fast_bakery/fast_bakery_decorator.py,sha256=MXSIp05-jvt8Q2uGaLKjtuM_ToLeRLxhtMbfHc9Kcko,1515
27
59
  metaflow_extensions/outerbounds/plugins/kubernetes/__init__.py,sha256=5zG8gShSj8m7rgF4xgWBZFuY3GDP5n1T0ktjRpGJLHA,69
@@ -43,7 +75,7 @@ metaflow_extensions/outerbounds/plugins/nvct/__init__.py,sha256=47DEQpj8HBSa-_TI
43
75
  metaflow_extensions/outerbounds/plugins/nvct/exceptions.py,sha256=1PiV6FdH36CvkmHh5jtsfrsoe3Q_Fo1NomHw5wvgoDM,2886
44
76
  metaflow_extensions/outerbounds/plugins/nvct/nvct.py,sha256=Z2ZPWGuHe58au_d6GfHiw6Nl5d8INdLDI5exlsPEOSA,3564
45
77
  metaflow_extensions/outerbounds/plugins/nvct/nvct_cli.py,sha256=bB9AURhRep9PV_-b-qLHpgw_GPG_xFoq1PeHEgFP1mQ,10104
46
- metaflow_extensions/outerbounds/plugins/nvct/nvct_decorator.py,sha256=HKCvYn1Jh8uwLXeUqPNhxgBatq3mXNG5YIUl-zjNlHE,9429
78
+ metaflow_extensions/outerbounds/plugins/nvct/nvct_decorator.py,sha256=RRGSDTziEA_wf8Ck8zePwAHTHc3VPbinnIU49PBM60c,9477
47
79
  metaflow_extensions/outerbounds/plugins/nvct/nvct_runner.py,sha256=8IPkdvuTZNIqgAAt75gVNn-ydr-Zz2sKC8UX_6pNEKI,7091
48
80
  metaflow_extensions/outerbounds/plugins/nvct/utils.py,sha256=U4_Fu8H94j_Bbox7mmMhNnlRhlYHqnK28R5w_TMWEFM,1029
49
81
  metaflow_extensions/outerbounds/plugins/ollama/__init__.py,sha256=4T8LQqAuh8flSMvYztw6-OPoDoAorcBWhC-vPuuQPbc,9234
@@ -51,8 +83,18 @@ metaflow_extensions/outerbounds/plugins/ollama/constants.py,sha256=hxkTpWEJp1pKH
51
83
  metaflow_extensions/outerbounds/plugins/ollama/exceptions.py,sha256=8Ss296_MGZl1wXAoDNwpH-hsPe6iYLe90Ji1pczNocU,668
52
84
  metaflow_extensions/outerbounds/plugins/ollama/ollama.py,sha256=C-6Hz8OxsJiB14AAxmunq3P4k7DrmVHsSOxE0xsP-nY,79780
53
85
  metaflow_extensions/outerbounds/plugins/ollama/status_card.py,sha256=F5e4McDl28lhtjeUyInkl03bqjr1lgLxWoau8Q9xwBE,10994
86
+ metaflow_extensions/outerbounds/plugins/optuna/__init__.py,sha256=iFNDFNtWOfqwXi8bhMoItM8it-bATETbx8PGK66UbHI,1615
54
87
  metaflow_extensions/outerbounds/plugins/profilers/deco_injector.py,sha256=oI_C3c64XBm7n88FILqHwn-Nnc5DeT_68I67lM9rXaI,2434
55
88
  metaflow_extensions/outerbounds/plugins/profilers/gpu_profile_decorator.py,sha256=gDHQ2sMIp4NuZSzUspbSd8RGdFAoO5mgZAyFcZ2a51Y,2619
89
+ metaflow_extensions/outerbounds/plugins/profilers/simple_card_decorator.py,sha256=4W9tLGCmkFx-4XYLa1xF6qMiaWOBYYFx_RclZDKej30,3259
90
+ metaflow_extensions/outerbounds/plugins/s3_proxy/__init__.py,sha256=9Kw86B331pQJAzkfBMPIDoPrJsW0LVRHXBYikbcc2xk,204
91
+ metaflow_extensions/outerbounds/plugins/s3_proxy/binary_caller.py,sha256=NxgyDF6KBH7VB2-Lqg9XvLjcHHVBeNJaTw66GXe6q5I,4253
92
+ metaflow_extensions/outerbounds/plugins/s3_proxy/constants.py,sha256=ugjVUv_C2JW5Dy6hAunaivxS4rlOvCMiwVCe8gyQ_FI,321
93
+ metaflow_extensions/outerbounds/plugins/s3_proxy/exceptions.py,sha256=IkPqDvSeYQukNeu0aIVCmfQWTvUHsTs-qv7nvry2KjM,305
94
+ metaflow_extensions/outerbounds/plugins/s3_proxy/proxy_bootstrap.py,sha256=xtYoyydd-JV7l6YxR7UwrErXT9HvRSPGjJQAoV83rgE,1507
95
+ metaflow_extensions/outerbounds/plugins/s3_proxy/s3_proxy_api.py,sha256=WjpprW0tCICLOihFywEtgJbCnx-OFmwuT_hR27ACl2A,3007
96
+ metaflow_extensions/outerbounds/plugins/s3_proxy/s3_proxy_decorator.py,sha256=kbsAAY8gnE6F9kSzKCliUhw3h-ol-_v8qdv8meC4JBA,9206
97
+ metaflow_extensions/outerbounds/plugins/s3_proxy/s3_proxy_manager.py,sha256=Grl7eLqH5iV0RPgSUl7v0BMRLkTvYpMiwKhPHeZqJ3M,8600
56
98
  metaflow_extensions/outerbounds/plugins/secrets/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
57
99
  metaflow_extensions/outerbounds/plugins/secrets/secrets.py,sha256=3s98hO_twKkM22tKyDdcUjGQNfYpSXW_jLKISV9ju_U,8433
58
100
  metaflow_extensions/outerbounds/plugins/snowflake/__init__.py,sha256=RG4ixt3jwqcK1_tt0QxLcUbNmf7wWAMnZhBx-ZMGgLk,114
@@ -60,31 +102,33 @@ metaflow_extensions/outerbounds/plugins/snowflake/snowflake.py,sha256=zoWSHM4CJS
60
102
  metaflow_extensions/outerbounds/plugins/snowpark/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
61
103
  metaflow_extensions/outerbounds/plugins/snowpark/snowpark.py,sha256=0R8aFN9MpgWraqiaI6ZF82YpLdFJ1f-3z_-BPRpZfxM,10674
62
104
  metaflow_extensions/outerbounds/plugins/snowpark/snowpark_cli.py,sha256=ezJ2Jr8JJ48SvTH0ET7pRUGaBuq3XTSfNxJVgXhZsnY,8756
63
- metaflow_extensions/outerbounds/plugins/snowpark/snowpark_client.py,sha256=JEW0EUxj_mNZXo9OFkJFmWfg-P7_CEgvNbgsMTCBTAE,4273
64
- metaflow_extensions/outerbounds/plugins/snowpark/snowpark_decorator.py,sha256=a7LqSKULVh8IrR1StrVPbemHOLojR0nEqh-mMX-M1i4,9904
105
+ metaflow_extensions/outerbounds/plugins/snowpark/snowpark_client.py,sha256=JWA0n3imeMP3HoDw9_9Ge9UPMAwY_TnPKaETHDN8qjA,4460
106
+ metaflow_extensions/outerbounds/plugins/snowpark/snowpark_decorator.py,sha256=SMND-1BJoqMkYFfFa3B_OT6Xu6HH07degq3qXWOrJ2w,10167
65
107
  metaflow_extensions/outerbounds/plugins/snowpark/snowpark_exceptions.py,sha256=FTfYlJu-sn9DkPOs2R1V1ChWb1vZthOgeq0BZdT1ucY,296
66
- metaflow_extensions/outerbounds/plugins/snowpark/snowpark_job.py,sha256=aQphxX6jqYgfa83w387pEWl0keuLm38V53I8P8UL2ck,6887
108
+ metaflow_extensions/outerbounds/plugins/snowpark/snowpark_job.py,sha256=k0OLbsExQOcLbU3_qBd-p2-HCgzcWqXUHxj6L5b6FOk,7075
67
109
  metaflow_extensions/outerbounds/plugins/snowpark/snowpark_service_spec.py,sha256=AI_kcm1hZV3JRxJkookcH6twiGnAYjk9Dx-MeoYz60Y,8511
68
110
  metaflow_extensions/outerbounds/plugins/tensorboard/__init__.py,sha256=9lUM4Cqi5RjrHBRfG6AQMRz8-R96eZC8Ih0KD2lv22Y,1858
69
- metaflow_extensions/outerbounds/plugins/torchtune/__init__.py,sha256=TOXNeyhcgd8VxplXO_oEuryFEsbk0tikn5GL0-44SU8,5853
70
- metaflow_extensions/outerbounds/plugins/vllm/__init__.py,sha256=O04DPVoEdCZhPbvdldaE4ztoAxJNXU-ExosBCqe43v8,6463
111
+ metaflow_extensions/outerbounds/plugins/torchtune/__init__.py,sha256=Psj2ybj_E1qp5KK2inon9e4ZecaRxnPtW3ngcirbO2g,6094
112
+ metaflow_extensions/outerbounds/plugins/vllm/__init__.py,sha256=H56xR3un5Ed39A-85ZzzVk9hmhEYBdzR5ydiDrtSAVc,9298
71
113
  metaflow_extensions/outerbounds/plugins/vllm/constants.py,sha256=ODX_uM5iYrzpVltsAdSf9Jo0DAOMiZ3647DcKdCnlS0,24
72
114
  metaflow_extensions/outerbounds/plugins/vllm/exceptions.py,sha256=8m65k2L17zXgSkgU299DWqxr1wGUMsZgSJw0hBRizJ0,49
73
- metaflow_extensions/outerbounds/plugins/vllm/status_card.py,sha256=ofTuBkhZgJq8cs-KwUOc85TB4hP9FT5qxagVEomY8jA,12931
74
- metaflow_extensions/outerbounds/plugins/vllm/vllm_manager.py,sha256=E6SCBoanNNsFjm-IGGGf4VMVe1mueDiRWw0ZvCXizDQ,18496
115
+ metaflow_extensions/outerbounds/plugins/vllm/status_card.py,sha256=TkBbRcrwgW2RMwac-Vo3OUDofDQ05Qy4U1SGRvij2to,12949
116
+ metaflow_extensions/outerbounds/plugins/vllm/vllm_manager.py,sha256=sp_TX2SrImJGgu5kp0A458VhytC6F0PNM-vGN7Zsrf4,23921
75
117
  metaflow_extensions/outerbounds/profilers/__init__.py,sha256=wa_jhnCBr82TBxoS0e8b6_6sLyZX0fdHicuGJZNTqKw,29
76
118
  metaflow_extensions/outerbounds/profilers/gpu.py,sha256=3Er8uKQzfm_082uadg4yn_D4Y-iSCgzUfFmguYxZsz4,27485
77
119
  metaflow_extensions/outerbounds/toplevel/__init__.py,sha256=qWUJSv_r5hXJ7jV_On4nEasKIfUCm6_UjkjXWA_A1Ts,90
78
- metaflow_extensions/outerbounds/toplevel/global_aliases_for_metaflow_package.py,sha256=FS0ZKQJsJKlw9PgtLqVV4kH9o7_qwYcIVtyu2Kqwa_U,2973
79
- metaflow_extensions/outerbounds/toplevel/ob_internal.py,sha256=RtF7t9EIyGjWi36jAHbRaLo_MNOxF5Jo8X9QWzOr0co,54
120
+ metaflow_extensions/outerbounds/toplevel/global_aliases_for_metaflow_package.py,sha256=EQbWEatFfsJah7kEiUVrCC2rNTj2UeISJB9N7gtGitc,4546
121
+ metaflow_extensions/outerbounds/toplevel/ob_internal.py,sha256=DXCaAtLzlE-bFIiVWEv-iV2JKIWsoSGaUeH4jIQZ9gs,193
122
+ metaflow_extensions/outerbounds/toplevel/s3_proxy.py,sha256=zdqG7Z12cGuoYYCi2P4kqC3WsgL3xfdJGIb7ejecHH4,2862
80
123
  metaflow_extensions/outerbounds/toplevel/plugins/azure/__init__.py,sha256=WUuhz2YQfI4fz7nIcipwwWq781eaoHEk7n4GAn1npDg,63
81
124
  metaflow_extensions/outerbounds/toplevel/plugins/gcp/__init__.py,sha256=BbZiaH3uILlEZ6ntBLKeNyqn3If8nIXZFq_Apd7Dhco,70
82
125
  metaflow_extensions/outerbounds/toplevel/plugins/kubernetes/__init__.py,sha256=5zG8gShSj8m7rgF4xgWBZFuY3GDP5n1T0ktjRpGJLHA,69
83
126
  metaflow_extensions/outerbounds/toplevel/plugins/ollama/__init__.py,sha256=GRSz2zwqkvlmFS6bcfYD_CX6CMko9DHQokMaH1iBshA,47
127
+ metaflow_extensions/outerbounds/toplevel/plugins/optuna/__init__.py,sha256=6D1wLVSHvwEC_ed1r3VcvNGqOhKgyBt22AoDjVTkiFY,47
84
128
  metaflow_extensions/outerbounds/toplevel/plugins/snowflake/__init__.py,sha256=LptpH-ziXHrednMYUjIaosS1SXD3sOtF_9_eRqd8SJw,50
85
129
  metaflow_extensions/outerbounds/toplevel/plugins/torchtune/__init__.py,sha256=uTVkdSk3xZ7hEKYfdlyVteWj5KeDwaM1hU9WT-_YKfI,50
86
130
  metaflow_extensions/outerbounds/toplevel/plugins/vllm/__init__.py,sha256=ekcgD3KVydf-a0xMI60P4uy6ePkSEoFHiGnDq1JM940,45
87
- ob_metaflow_extensions-1.1.170.dist-info/METADATA,sha256=1wG03fowsX-nQaJbPyG2D9LdZKeNDZp08DMRS7A4re4,521
88
- ob_metaflow_extensions-1.1.170.dist-info/WHEEL,sha256=bb2Ot9scclHKMOLDEHY6B2sicWOgugjFKaJsT7vwMQo,110
89
- ob_metaflow_extensions-1.1.170.dist-info/top_level.txt,sha256=NwG0ukwjygtanDETyp_BUdtYtqIA_lOjzFFh1TsnxvI,20
90
- ob_metaflow_extensions-1.1.170.dist-info/RECORD,,
131
+ ob_metaflow_extensions-1.4.35.dist-info/METADATA,sha256=DVnCm-4Hom7YA49NHtsBa1P04fIuv9rECbUpVhRY0Nc,520
132
+ ob_metaflow_extensions-1.4.35.dist-info/WHEEL,sha256=bb2Ot9scclHKMOLDEHY6B2sicWOgugjFKaJsT7vwMQo,110
133
+ ob_metaflow_extensions-1.4.35.dist-info/top_level.txt,sha256=NwG0ukwjygtanDETyp_BUdtYtqIA_lOjzFFh1TsnxvI,20
134
+ ob_metaflow_extensions-1.4.35.dist-info/RECORD,,