ob-metaflow-extensions 1.1.171rc1__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 (64) hide show
  1. metaflow_extensions/outerbounds/plugins/__init__.py +6 -3
  2. metaflow_extensions/outerbounds/plugins/apps/app_cli.py +0 -29
  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/docker_environment.py +6 -2
  37. metaflow_extensions/outerbounds/plugins/fast_bakery/fast_bakery.py +1 -0
  38. metaflow_extensions/outerbounds/plugins/nvct/nvct_decorator.py +8 -8
  39. metaflow_extensions/outerbounds/plugins/optuna/__init__.py +48 -0
  40. metaflow_extensions/outerbounds/plugins/profilers/simple_card_decorator.py +96 -0
  41. metaflow_extensions/outerbounds/plugins/s3_proxy/__init__.py +7 -0
  42. metaflow_extensions/outerbounds/plugins/s3_proxy/binary_caller.py +132 -0
  43. metaflow_extensions/outerbounds/plugins/s3_proxy/constants.py +11 -0
  44. metaflow_extensions/outerbounds/plugins/s3_proxy/exceptions.py +13 -0
  45. metaflow_extensions/outerbounds/plugins/s3_proxy/proxy_bootstrap.py +59 -0
  46. metaflow_extensions/outerbounds/plugins/s3_proxy/s3_proxy_api.py +93 -0
  47. metaflow_extensions/outerbounds/plugins/s3_proxy/s3_proxy_decorator.py +250 -0
  48. metaflow_extensions/outerbounds/plugins/s3_proxy/s3_proxy_manager.py +225 -0
  49. metaflow_extensions/outerbounds/plugins/snowpark/snowpark_client.py +6 -3
  50. metaflow_extensions/outerbounds/plugins/snowpark/snowpark_decorator.py +13 -7
  51. metaflow_extensions/outerbounds/plugins/snowpark/snowpark_job.py +8 -2
  52. metaflow_extensions/outerbounds/plugins/torchtune/__init__.py +4 -0
  53. metaflow_extensions/outerbounds/plugins/vllm/__init__.py +173 -95
  54. metaflow_extensions/outerbounds/plugins/vllm/status_card.py +9 -9
  55. metaflow_extensions/outerbounds/plugins/vllm/vllm_manager.py +159 -9
  56. metaflow_extensions/outerbounds/remote_config.py +8 -3
  57. metaflow_extensions/outerbounds/toplevel/global_aliases_for_metaflow_package.py +62 -1
  58. metaflow_extensions/outerbounds/toplevel/ob_internal.py +2 -0
  59. metaflow_extensions/outerbounds/toplevel/plugins/optuna/__init__.py +1 -0
  60. metaflow_extensions/outerbounds/toplevel/s3_proxy.py +88 -0
  61. {ob_metaflow_extensions-1.1.171rc1.dist-info → ob_metaflow_extensions-1.4.35.dist-info}/METADATA +2 -2
  62. {ob_metaflow_extensions-1.1.171rc1.dist-info → ob_metaflow_extensions-1.4.35.dist-info}/RECORD +64 -22
  63. {ob_metaflow_extensions-1.1.171rc1.dist-info → ob_metaflow_extensions-1.4.35.dist-info}/WHEEL +0 -0
  64. {ob_metaflow_extensions-1.1.171rc1.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,11 +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
78
138
  from . import ob_internal
139
+ from .ob_internal import AppDeployer
@@ -1,2 +1,4 @@
1
1
  from ..plugins.kubernetes.pod_killer import PodKiller
2
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.171rc1
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,29 +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=rWDE4k-KbsFsCoqct1Rw7w3bSV0jLunx6LMBKD2SYEA,13747
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=Uv9viEmQ0_6ogVHO8O_FGQyXR6rV5HR5agsP3gGnKm0,638
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
9
10
  metaflow_extensions/outerbounds/plugins/apps/app_utils.py,sha256=sw9whU17lAzlD2K2kEDNjlk1Ib-2xE2UNhJkmzD8Qv8,8543
10
11
  metaflow_extensions/outerbounds/plugins/apps/consts.py,sha256=iHsyqbUg9k-rgswCs1Jxf5QZIxR1V-peCDRjgr9kdBM,177
11
12
  metaflow_extensions/outerbounds/plugins/apps/deploy_decorator.py,sha256=VkmiMdNYHhNdt-Qm9AVv7aE2LWFsIFEc16YcOYjwF6Q,8568
12
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
13
42
  metaflow_extensions/outerbounds/plugins/aws/__init__.py,sha256=VBGdjNKeFLXGZuqh4jVk8cFtO1AWof73a6k_cnbAOYA,145
14
43
  metaflow_extensions/outerbounds/plugins/aws/assume_role.py,sha256=mBewNlnSYsR2rFXFkX-DUH6ku01h2yOcMcLHoCL7eyI,161
15
- 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
16
45
  metaflow_extensions/outerbounds/plugins/card_utilities/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
17
46
  metaflow_extensions/outerbounds/plugins/card_utilities/async_cards.py,sha256=6rQhtZXK5DenXPfCRS1ul0jvLJYd48jrJAlnodID21w,4347
18
47
  metaflow_extensions/outerbounds/plugins/card_utilities/extra_components.py,sha256=D8rgCaSc7PuLD0MHJjqsjN0g0PQMN1H-ySOJqi5uIOE,19111
19
48
  metaflow_extensions/outerbounds/plugins/card_utilities/injector.py,sha256=UQtHrviFs7Z5LBh0nbaIv8aEnHnyXFjs9TiGCjtcIWc,2452
20
49
  metaflow_extensions/outerbounds/plugins/checkpoint_datastores/__init__.py,sha256=H96Bdv2XKTewKIU587sjNbU538SKMZOYWQ2qCp1JaNU,84
21
- metaflow_extensions/outerbounds/plugins/checkpoint_datastores/coreweave.py,sha256=_WzoOROFjoFa8TzsMNFp-r_1Zz7NUp-5ljn_kKlczXA,4534
22
- 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
23
53
  metaflow_extensions/outerbounds/plugins/fast_bakery/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
24
54
  metaflow_extensions/outerbounds/plugins/fast_bakery/baker.py,sha256=ShE5omFBr83wkvEhL_ptRFvDNMs6wefg4BjaafQjTcM,3602
25
- metaflow_extensions/outerbounds/plugins/fast_bakery/docker_environment.py,sha256=nmp_INGIAiWyrhyJ71BH38eRLu1xCIEEKejmXNQ6RlA,15378
26
- metaflow_extensions/outerbounds/plugins/fast_bakery/fast_bakery.py,sha256=PE81ZB54OAMXkMGSB7JqgvgMg7N9kvoVclrWL-6jc2U,5626
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
27
57
  metaflow_extensions/outerbounds/plugins/fast_bakery/fast_bakery_cli.py,sha256=kqFyu2bJSnc9_9aYfBpz5xK6L6luWFZK_NMuh8f1eVk,1494
28
58
  metaflow_extensions/outerbounds/plugins/fast_bakery/fast_bakery_decorator.py,sha256=MXSIp05-jvt8Q2uGaLKjtuM_ToLeRLxhtMbfHc9Kcko,1515
29
59
  metaflow_extensions/outerbounds/plugins/kubernetes/__init__.py,sha256=5zG8gShSj8m7rgF4xgWBZFuY3GDP5n1T0ktjRpGJLHA,69
@@ -45,7 +75,7 @@ metaflow_extensions/outerbounds/plugins/nvct/__init__.py,sha256=47DEQpj8HBSa-_TI
45
75
  metaflow_extensions/outerbounds/plugins/nvct/exceptions.py,sha256=1PiV6FdH36CvkmHh5jtsfrsoe3Q_Fo1NomHw5wvgoDM,2886
46
76
  metaflow_extensions/outerbounds/plugins/nvct/nvct.py,sha256=Z2ZPWGuHe58au_d6GfHiw6Nl5d8INdLDI5exlsPEOSA,3564
47
77
  metaflow_extensions/outerbounds/plugins/nvct/nvct_cli.py,sha256=bB9AURhRep9PV_-b-qLHpgw_GPG_xFoq1PeHEgFP1mQ,10104
48
- 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
49
79
  metaflow_extensions/outerbounds/plugins/nvct/nvct_runner.py,sha256=8IPkdvuTZNIqgAAt75gVNn-ydr-Zz2sKC8UX_6pNEKI,7091
50
80
  metaflow_extensions/outerbounds/plugins/nvct/utils.py,sha256=U4_Fu8H94j_Bbox7mmMhNnlRhlYHqnK28R5w_TMWEFM,1029
51
81
  metaflow_extensions/outerbounds/plugins/ollama/__init__.py,sha256=4T8LQqAuh8flSMvYztw6-OPoDoAorcBWhC-vPuuQPbc,9234
@@ -53,8 +83,18 @@ metaflow_extensions/outerbounds/plugins/ollama/constants.py,sha256=hxkTpWEJp1pKH
53
83
  metaflow_extensions/outerbounds/plugins/ollama/exceptions.py,sha256=8Ss296_MGZl1wXAoDNwpH-hsPe6iYLe90Ji1pczNocU,668
54
84
  metaflow_extensions/outerbounds/plugins/ollama/ollama.py,sha256=C-6Hz8OxsJiB14AAxmunq3P4k7DrmVHsSOxE0xsP-nY,79780
55
85
  metaflow_extensions/outerbounds/plugins/ollama/status_card.py,sha256=F5e4McDl28lhtjeUyInkl03bqjr1lgLxWoau8Q9xwBE,10994
86
+ metaflow_extensions/outerbounds/plugins/optuna/__init__.py,sha256=iFNDFNtWOfqwXi8bhMoItM8it-bATETbx8PGK66UbHI,1615
56
87
  metaflow_extensions/outerbounds/plugins/profilers/deco_injector.py,sha256=oI_C3c64XBm7n88FILqHwn-Nnc5DeT_68I67lM9rXaI,2434
57
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
58
98
  metaflow_extensions/outerbounds/plugins/secrets/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
59
99
  metaflow_extensions/outerbounds/plugins/secrets/secrets.py,sha256=3s98hO_twKkM22tKyDdcUjGQNfYpSXW_jLKISV9ju_U,8433
60
100
  metaflow_extensions/outerbounds/plugins/snowflake/__init__.py,sha256=RG4ixt3jwqcK1_tt0QxLcUbNmf7wWAMnZhBx-ZMGgLk,114
@@ -62,31 +102,33 @@ metaflow_extensions/outerbounds/plugins/snowflake/snowflake.py,sha256=zoWSHM4CJS
62
102
  metaflow_extensions/outerbounds/plugins/snowpark/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
63
103
  metaflow_extensions/outerbounds/plugins/snowpark/snowpark.py,sha256=0R8aFN9MpgWraqiaI6ZF82YpLdFJ1f-3z_-BPRpZfxM,10674
64
104
  metaflow_extensions/outerbounds/plugins/snowpark/snowpark_cli.py,sha256=ezJ2Jr8JJ48SvTH0ET7pRUGaBuq3XTSfNxJVgXhZsnY,8756
65
- metaflow_extensions/outerbounds/plugins/snowpark/snowpark_client.py,sha256=JEW0EUxj_mNZXo9OFkJFmWfg-P7_CEgvNbgsMTCBTAE,4273
66
- 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
67
107
  metaflow_extensions/outerbounds/plugins/snowpark/snowpark_exceptions.py,sha256=FTfYlJu-sn9DkPOs2R1V1ChWb1vZthOgeq0BZdT1ucY,296
68
- 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
69
109
  metaflow_extensions/outerbounds/plugins/snowpark/snowpark_service_spec.py,sha256=AI_kcm1hZV3JRxJkookcH6twiGnAYjk9Dx-MeoYz60Y,8511
70
110
  metaflow_extensions/outerbounds/plugins/tensorboard/__init__.py,sha256=9lUM4Cqi5RjrHBRfG6AQMRz8-R96eZC8Ih0KD2lv22Y,1858
71
- metaflow_extensions/outerbounds/plugins/torchtune/__init__.py,sha256=TOXNeyhcgd8VxplXO_oEuryFEsbk0tikn5GL0-44SU8,5853
72
- 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
73
113
  metaflow_extensions/outerbounds/plugins/vllm/constants.py,sha256=ODX_uM5iYrzpVltsAdSf9Jo0DAOMiZ3647DcKdCnlS0,24
74
114
  metaflow_extensions/outerbounds/plugins/vllm/exceptions.py,sha256=8m65k2L17zXgSkgU299DWqxr1wGUMsZgSJw0hBRizJ0,49
75
- metaflow_extensions/outerbounds/plugins/vllm/status_card.py,sha256=ofTuBkhZgJq8cs-KwUOc85TB4hP9FT5qxagVEomY8jA,12931
76
- 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
77
117
  metaflow_extensions/outerbounds/profilers/__init__.py,sha256=wa_jhnCBr82TBxoS0e8b6_6sLyZX0fdHicuGJZNTqKw,29
78
118
  metaflow_extensions/outerbounds/profilers/gpu.py,sha256=3Er8uKQzfm_082uadg4yn_D4Y-iSCgzUfFmguYxZsz4,27485
79
119
  metaflow_extensions/outerbounds/toplevel/__init__.py,sha256=qWUJSv_r5hXJ7jV_On4nEasKIfUCm6_UjkjXWA_A1Ts,90
80
- metaflow_extensions/outerbounds/toplevel/global_aliases_for_metaflow_package.py,sha256=_fKWv_-O1k5Nk5A1q05Ioh-PSsFXGL-jiAt7zfl8pIE,2999
81
- metaflow_extensions/outerbounds/toplevel/ob_internal.py,sha256=VdoPHis20NUkasUiM8d6JEq-X8QVO4eMDaMBAJgKKLg,105
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
82
123
  metaflow_extensions/outerbounds/toplevel/plugins/azure/__init__.py,sha256=WUuhz2YQfI4fz7nIcipwwWq781eaoHEk7n4GAn1npDg,63
83
124
  metaflow_extensions/outerbounds/toplevel/plugins/gcp/__init__.py,sha256=BbZiaH3uILlEZ6ntBLKeNyqn3If8nIXZFq_Apd7Dhco,70
84
125
  metaflow_extensions/outerbounds/toplevel/plugins/kubernetes/__init__.py,sha256=5zG8gShSj8m7rgF4xgWBZFuY3GDP5n1T0ktjRpGJLHA,69
85
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
86
128
  metaflow_extensions/outerbounds/toplevel/plugins/snowflake/__init__.py,sha256=LptpH-ziXHrednMYUjIaosS1SXD3sOtF_9_eRqd8SJw,50
87
129
  metaflow_extensions/outerbounds/toplevel/plugins/torchtune/__init__.py,sha256=uTVkdSk3xZ7hEKYfdlyVteWj5KeDwaM1hU9WT-_YKfI,50
88
130
  metaflow_extensions/outerbounds/toplevel/plugins/vllm/__init__.py,sha256=ekcgD3KVydf-a0xMI60P4uy6ePkSEoFHiGnDq1JM940,45
89
- ob_metaflow_extensions-1.1.171rc1.dist-info/METADATA,sha256=ScWvbwRaG5a5c-EsnlwmjkDBmF3rlV5QonIg8JOkiJI,524
90
- ob_metaflow_extensions-1.1.171rc1.dist-info/WHEEL,sha256=bb2Ot9scclHKMOLDEHY6B2sicWOgugjFKaJsT7vwMQo,110
91
- ob_metaflow_extensions-1.1.171rc1.dist-info/top_level.txt,sha256=NwG0ukwjygtanDETyp_BUdtYtqIA_lOjzFFh1TsnxvI,20
92
- ob_metaflow_extensions-1.1.171rc1.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,,