ob-metaflow-extensions 1.1.130__py2.py3-none-any.whl → 1.5.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-extensions might be problematic. Click here for more details.
- metaflow_extensions/outerbounds/__init__.py +1 -1
- metaflow_extensions/outerbounds/plugins/__init__.py +34 -4
- metaflow_extensions/outerbounds/plugins/apps/__init__.py +0 -0
- metaflow_extensions/outerbounds/plugins/apps/app_cli.py +0 -0
- metaflow_extensions/outerbounds/plugins/apps/app_utils.py +187 -0
- metaflow_extensions/outerbounds/plugins/apps/consts.py +3 -0
- metaflow_extensions/outerbounds/plugins/apps/core/__init__.py +15 -0
- metaflow_extensions/outerbounds/plugins/apps/core/_state_machine.py +506 -0
- metaflow_extensions/outerbounds/plugins/apps/core/_vendor/__init__.py +0 -0
- metaflow_extensions/outerbounds/plugins/apps/core/_vendor/spinner/__init__.py +4 -0
- metaflow_extensions/outerbounds/plugins/apps/core/_vendor/spinner/spinners.py +478 -0
- metaflow_extensions/outerbounds/plugins/apps/core/app_config.py +128 -0
- metaflow_extensions/outerbounds/plugins/apps/core/app_deploy_decorator.py +330 -0
- metaflow_extensions/outerbounds/plugins/apps/core/artifacts.py +0 -0
- metaflow_extensions/outerbounds/plugins/apps/core/capsule.py +958 -0
- metaflow_extensions/outerbounds/plugins/apps/core/click_importer.py +24 -0
- metaflow_extensions/outerbounds/plugins/apps/core/code_package/__init__.py +3 -0
- metaflow_extensions/outerbounds/plugins/apps/core/code_package/code_packager.py +618 -0
- metaflow_extensions/outerbounds/plugins/apps/core/code_package/examples.py +125 -0
- metaflow_extensions/outerbounds/plugins/apps/core/config/__init__.py +15 -0
- metaflow_extensions/outerbounds/plugins/apps/core/config/cli_generator.py +165 -0
- metaflow_extensions/outerbounds/plugins/apps/core/config/config_utils.py +966 -0
- metaflow_extensions/outerbounds/plugins/apps/core/config/schema_export.py +299 -0
- metaflow_extensions/outerbounds/plugins/apps/core/config/typed_configs.py +233 -0
- metaflow_extensions/outerbounds/plugins/apps/core/config/typed_init_generator.py +537 -0
- metaflow_extensions/outerbounds/plugins/apps/core/config/unified_config.py +1125 -0
- metaflow_extensions/outerbounds/plugins/apps/core/config_schema.yaml +337 -0
- metaflow_extensions/outerbounds/plugins/apps/core/dependencies.py +115 -0
- metaflow_extensions/outerbounds/plugins/apps/core/deployer.py +959 -0
- metaflow_extensions/outerbounds/plugins/apps/core/experimental/__init__.py +89 -0
- metaflow_extensions/outerbounds/plugins/apps/core/perimeters.py +87 -0
- metaflow_extensions/outerbounds/plugins/apps/core/secrets.py +164 -0
- metaflow_extensions/outerbounds/plugins/apps/core/utils.py +233 -0
- metaflow_extensions/outerbounds/plugins/apps/core/validations.py +17 -0
- metaflow_extensions/outerbounds/plugins/apps/deploy_decorator.py +201 -0
- metaflow_extensions/outerbounds/plugins/apps/supervisord_utils.py +243 -0
- metaflow_extensions/outerbounds/plugins/aws/__init__.py +4 -0
- metaflow_extensions/outerbounds/plugins/aws/assume_role.py +3 -0
- metaflow_extensions/outerbounds/plugins/aws/assume_role_decorator.py +118 -0
- metaflow_extensions/outerbounds/plugins/card_utilities/injector.py +1 -1
- metaflow_extensions/outerbounds/plugins/checkpoint_datastores/__init__.py +2 -0
- metaflow_extensions/outerbounds/plugins/checkpoint_datastores/coreweave.py +71 -0
- metaflow_extensions/outerbounds/plugins/checkpoint_datastores/external_chckpt.py +85 -0
- metaflow_extensions/outerbounds/plugins/checkpoint_datastores/nebius.py +73 -0
- metaflow_extensions/outerbounds/plugins/fast_bakery/baker.py +110 -0
- metaflow_extensions/outerbounds/plugins/fast_bakery/docker_environment.py +43 -9
- metaflow_extensions/outerbounds/plugins/fast_bakery/fast_bakery.py +12 -0
- metaflow_extensions/outerbounds/plugins/kubernetes/kubernetes_client.py +18 -44
- metaflow_extensions/outerbounds/plugins/kubernetes/pod_killer.py +374 -0
- metaflow_extensions/outerbounds/plugins/nim/card.py +2 -16
- metaflow_extensions/outerbounds/plugins/nim/{__init__.py → nim_decorator.py} +13 -49
- metaflow_extensions/outerbounds/plugins/nim/nim_manager.py +294 -233
- metaflow_extensions/outerbounds/plugins/nim/utils.py +36 -0
- metaflow_extensions/outerbounds/plugins/nvcf/constants.py +2 -2
- metaflow_extensions/outerbounds/plugins/nvcf/nvcf.py +100 -19
- metaflow_extensions/outerbounds/plugins/nvcf/nvcf_decorator.py +6 -1
- metaflow_extensions/outerbounds/plugins/nvct/__init__.py +0 -0
- metaflow_extensions/outerbounds/plugins/nvct/exceptions.py +71 -0
- metaflow_extensions/outerbounds/plugins/nvct/nvct.py +131 -0
- metaflow_extensions/outerbounds/plugins/nvct/nvct_cli.py +289 -0
- metaflow_extensions/outerbounds/plugins/nvct/nvct_decorator.py +286 -0
- metaflow_extensions/outerbounds/plugins/nvct/nvct_runner.py +218 -0
- metaflow_extensions/outerbounds/plugins/nvct/utils.py +29 -0
- metaflow_extensions/outerbounds/plugins/ollama/__init__.py +225 -0
- metaflow_extensions/outerbounds/plugins/ollama/constants.py +1 -0
- metaflow_extensions/outerbounds/plugins/ollama/exceptions.py +22 -0
- metaflow_extensions/outerbounds/plugins/ollama/ollama.py +1924 -0
- metaflow_extensions/outerbounds/plugins/ollama/status_card.py +292 -0
- metaflow_extensions/outerbounds/plugins/optuna/__init__.py +48 -0
- metaflow_extensions/outerbounds/plugins/profilers/simple_card_decorator.py +96 -0
- metaflow_extensions/outerbounds/plugins/s3_proxy/__init__.py +7 -0
- metaflow_extensions/outerbounds/plugins/s3_proxy/binary_caller.py +132 -0
- metaflow_extensions/outerbounds/plugins/s3_proxy/constants.py +11 -0
- metaflow_extensions/outerbounds/plugins/s3_proxy/exceptions.py +13 -0
- metaflow_extensions/outerbounds/plugins/s3_proxy/proxy_bootstrap.py +59 -0
- metaflow_extensions/outerbounds/plugins/s3_proxy/s3_proxy_api.py +93 -0
- metaflow_extensions/outerbounds/plugins/s3_proxy/s3_proxy_decorator.py +250 -0
- metaflow_extensions/outerbounds/plugins/s3_proxy/s3_proxy_manager.py +225 -0
- metaflow_extensions/outerbounds/plugins/secrets/secrets.py +38 -2
- metaflow_extensions/outerbounds/plugins/snowflake/snowflake.py +81 -11
- metaflow_extensions/outerbounds/plugins/snowpark/snowpark.py +18 -8
- metaflow_extensions/outerbounds/plugins/snowpark/snowpark_cli.py +6 -0
- metaflow_extensions/outerbounds/plugins/snowpark/snowpark_client.py +45 -18
- metaflow_extensions/outerbounds/plugins/snowpark/snowpark_decorator.py +18 -9
- metaflow_extensions/outerbounds/plugins/snowpark/snowpark_job.py +10 -4
- metaflow_extensions/outerbounds/plugins/torchtune/__init__.py +163 -0
- metaflow_extensions/outerbounds/plugins/vllm/__init__.py +255 -0
- metaflow_extensions/outerbounds/plugins/vllm/constants.py +1 -0
- metaflow_extensions/outerbounds/plugins/vllm/exceptions.py +1 -0
- metaflow_extensions/outerbounds/plugins/vllm/status_card.py +352 -0
- metaflow_extensions/outerbounds/plugins/vllm/vllm_manager.py +621 -0
- metaflow_extensions/outerbounds/remote_config.py +46 -9
- metaflow_extensions/outerbounds/toplevel/global_aliases_for_metaflow_package.py +94 -2
- metaflow_extensions/outerbounds/toplevel/ob_internal.py +4 -0
- metaflow_extensions/outerbounds/toplevel/plugins/ollama/__init__.py +1 -0
- metaflow_extensions/outerbounds/toplevel/plugins/optuna/__init__.py +1 -0
- metaflow_extensions/outerbounds/toplevel/plugins/torchtune/__init__.py +1 -0
- metaflow_extensions/outerbounds/toplevel/plugins/vllm/__init__.py +1 -0
- metaflow_extensions/outerbounds/toplevel/s3_proxy.py +88 -0
- {ob_metaflow_extensions-1.1.130.dist-info → ob_metaflow_extensions-1.5.1.dist-info}/METADATA +2 -2
- ob_metaflow_extensions-1.5.1.dist-info/RECORD +133 -0
- metaflow_extensions/outerbounds/plugins/nim/utilities.py +0 -5
- ob_metaflow_extensions-1.1.130.dist-info/RECORD +0 -56
- {ob_metaflow_extensions-1.1.130.dist-info → ob_metaflow_extensions-1.5.1.dist-info}/WHEEL +0 -0
- {ob_metaflow_extensions-1.1.130.dist-info → ob_metaflow_extensions-1.5.1.dist-info}/top_level.txt +0 -0
|
@@ -11,6 +11,11 @@ from metaflow_extensions.outerbounds.plugins.perimeters import (
|
|
|
11
11
|
get_perimeter_config_url_if_set_in_ob_config,
|
|
12
12
|
)
|
|
13
13
|
|
|
14
|
+
|
|
15
|
+
class OuterboundsConfigException(MetaflowException):
|
|
16
|
+
_OB_CONFIG_EXCEPTION = True
|
|
17
|
+
|
|
18
|
+
|
|
14
19
|
OBP_REMOTE_CONFIG_KEY = "OBP_METAFLOW_CONFIG_URL"
|
|
15
20
|
HOSTNAME_KEY = "OBP_API_SERVER"
|
|
16
21
|
AUTH_KEY = "METAFLOW_SERVICE_AUTH_KEY"
|
|
@@ -31,7 +36,7 @@ def read_config_from_local() -> Optional[Path]:
|
|
|
31
36
|
|
|
32
37
|
# we should error because the user wants a specific config
|
|
33
38
|
if profile:
|
|
34
|
-
raise
|
|
39
|
+
raise OuterboundsConfigException(
|
|
35
40
|
f"Unable to locate METAFLOW_PROFILE {profile} in {config_path}"
|
|
36
41
|
)
|
|
37
42
|
|
|
@@ -54,11 +59,24 @@ def resolve_config_from_remote(remote_url: str, auth_token: str) -> Dict[str, st
|
|
|
54
59
|
response.raise_for_status()
|
|
55
60
|
data = response.json()
|
|
56
61
|
return data["config"]
|
|
57
|
-
except HTTPError:
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
+
except HTTPError as e:
|
|
63
|
+
if e.response.status_code >= 500:
|
|
64
|
+
raise OuterboundsConfigException(
|
|
65
|
+
"Error resolving outerbounds configuration [status:%s]. Please reach out to "
|
|
66
|
+
"the outerbounds support team to help resolve this issue."
|
|
67
|
+
% e.response.status_code
|
|
68
|
+
)
|
|
69
|
+
elif e.response.status_code == 403:
|
|
70
|
+
raise OuterboundsConfigException(
|
|
71
|
+
"Outerbounds token validity expired [status:%s]. Please re-run the `outerbounds configure` "
|
|
72
|
+
"command with a new magic string from the UI." % e.response.status_code
|
|
73
|
+
)
|
|
74
|
+
else:
|
|
75
|
+
raise OuterboundsConfigException(
|
|
76
|
+
"Failed to fetch the outerbounds configuration string [status:%s]. Please reach out to "
|
|
77
|
+
"the outerbounds support team to help resolve this issue."
|
|
78
|
+
% e.response.status_code
|
|
79
|
+
)
|
|
62
80
|
|
|
63
81
|
|
|
64
82
|
def init_config() -> Dict[str, str]:
|
|
@@ -81,9 +99,9 @@ def init_config() -> Dict[str, str]:
|
|
|
81
99
|
try:
|
|
82
100
|
remote_config = json.loads(config_path.read_text())
|
|
83
101
|
except ValueError:
|
|
84
|
-
raise
|
|
85
|
-
"Error decoding your metaflow config. Please run the `outerbounds configure`
|
|
86
|
-
|
|
102
|
+
raise OuterboundsConfigException(
|
|
103
|
+
"Error decoding your metaflow config. Please re-run the `outerbounds configure` "
|
|
104
|
+
"command with a new magic string from the UI."
|
|
87
105
|
)
|
|
88
106
|
|
|
89
107
|
perimeter_config_url = get_perimeter_config_url_if_set_in_ob_config()
|
|
@@ -112,3 +130,22 @@ def _init_debug(*args, **kwargs):
|
|
|
112
130
|
init_str = "ob_extension_init:"
|
|
113
131
|
kwargs["file"] = sys.stderr
|
|
114
132
|
print(init_str, *args, **kwargs)
|
|
133
|
+
|
|
134
|
+
|
|
135
|
+
def reload_config():
|
|
136
|
+
"""
|
|
137
|
+
This function is used to reload the config. Currently its a best effort implementation
|
|
138
|
+
that will only reload auth token.
|
|
139
|
+
"""
|
|
140
|
+
_init_debug("reloading config")
|
|
141
|
+
if CONFIG_READ_ONCE_KEY in os.environ:
|
|
142
|
+
del os.environ[CONFIG_READ_ONCE_KEY]
|
|
143
|
+
config = init_config()
|
|
144
|
+
import metaflow.metaflow_config
|
|
145
|
+
|
|
146
|
+
metaflow.metaflow_config.SERVICE_AUTH_KEY = config.get(AUTH_KEY)
|
|
147
|
+
metaflow.metaflow_config.SERVICE_HEADERS["x-api-key"] = config.get(AUTH_KEY)
|
|
148
|
+
if config:
|
|
149
|
+
_init_debug("reloaded config")
|
|
150
|
+
else:
|
|
151
|
+
_init_debug("no config to reload")
|
|
@@ -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
|
|
@@ -20,10 +58,31 @@ def get_aws_client(
|
|
|
20
58
|
module, with_error=False, role_arn=None, session_vars=None, client_params=None
|
|
21
59
|
):
|
|
22
60
|
import metaflow.plugins.aws.aws_client
|
|
61
|
+
import os
|
|
23
62
|
|
|
24
63
|
from metaflow_extensions.outerbounds.plugins import USE_CSPR_ROLE_ARN_IF_SET
|
|
64
|
+
from metaflow_extensions.outerbounds.plugins.aws.assume_role import (
|
|
65
|
+
OBP_ASSUME_ROLE_ARN_ENV_VAR,
|
|
66
|
+
)
|
|
67
|
+
|
|
68
|
+
# Check if the assume_role decorator has set a role ARN via environment variable
|
|
69
|
+
# This takes precedence over CSPR but not over explicitly passed role_arn
|
|
70
|
+
if role_arn is None:
|
|
71
|
+
decorator_role_arn = os.environ.get(OBP_ASSUME_ROLE_ARN_ENV_VAR)
|
|
72
|
+
if decorator_role_arn:
|
|
73
|
+
role_arn = decorator_role_arn
|
|
74
|
+
|
|
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
|
+
)
|
|
25
84
|
|
|
26
|
-
|
|
85
|
+
client = metaflow.plugins.aws.aws_client.get_aws_client(
|
|
27
86
|
module,
|
|
28
87
|
with_error=with_error,
|
|
29
88
|
role_arn=role_arn or USE_CSPR_ROLE_ARN_IF_SET,
|
|
@@ -31,6 +90,8 @@ def get_aws_client(
|
|
|
31
90
|
client_params=client_params,
|
|
32
91
|
)
|
|
33
92
|
|
|
93
|
+
return client
|
|
94
|
+
|
|
34
95
|
|
|
35
96
|
# This should match the signature of metaflow.plugins.datatools.s3.S3.
|
|
36
97
|
#
|
|
@@ -42,13 +103,44 @@ def get_aws_client(
|
|
|
42
103
|
def S3(*args, **kwargs):
|
|
43
104
|
import sys
|
|
44
105
|
import metaflow.plugins.datatools.s3
|
|
106
|
+
import os
|
|
45
107
|
from metaflow_extensions.outerbounds.plugins import USE_CSPR_ROLE_ARN_IF_SET
|
|
108
|
+
from metaflow_extensions.outerbounds.plugins.aws.assume_role import (
|
|
109
|
+
OBP_ASSUME_ROLE_ARN_ENV_VAR,
|
|
110
|
+
)
|
|
46
111
|
|
|
112
|
+
# Check if the assume_role decorator has set a role ARN via environment variable
|
|
113
|
+
# This takes precedence over CSPR but not over explicitly passed role
|
|
47
114
|
if "role" not in kwargs or kwargs["role"] is None:
|
|
48
|
-
|
|
115
|
+
decorator_role_arn = os.environ.get(OBP_ASSUME_ROLE_ARN_ENV_VAR)
|
|
116
|
+
if decorator_role_arn:
|
|
117
|
+
kwargs["role"] = decorator_role_arn
|
|
118
|
+
else:
|
|
119
|
+
kwargs["role"] = USE_CSPR_ROLE_ARN_IF_SET
|
|
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)
|
|
49
124
|
|
|
50
125
|
return metaflow.plugins.datatools.s3.S3(*args, **kwargs)
|
|
51
126
|
|
|
52
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
|
+
|
|
53
134
|
from .. import profilers
|
|
54
135
|
from ..plugins.snowflake import Snowflake
|
|
136
|
+
from ..plugins.checkpoint_datastores import nebius_checkpoints, coreweave_checkpoints
|
|
137
|
+
from ..plugins.aws import assume_role
|
|
138
|
+
from . import ob_internal
|
|
139
|
+
from ..plugins.apps.core import (
|
|
140
|
+
AppDeployer,
|
|
141
|
+
DeployedApp,
|
|
142
|
+
bake_image,
|
|
143
|
+
BakedImage,
|
|
144
|
+
package_code,
|
|
145
|
+
PackagedCode,
|
|
146
|
+
)
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
__mf_promote_submodules__ = ["plugins.ollama"]
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
__mf_promote_submodules__ = ["plugins.optuna"]
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
__mf_promote_submodules__ = ["plugins.torchtune"]
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
__mf_promote_submodules__ = ["plugins.vllm"]
|
|
@@ -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
|
{ob_metaflow_extensions-1.1.130.dist-info → ob_metaflow_extensions-1.5.1.dist-info}/METADATA
RENAMED
|
@@ -1,13 +1,13 @@
|
|
|
1
1
|
Metadata-Version: 2.1
|
|
2
2
|
Name: ob-metaflow-extensions
|
|
3
|
-
Version: 1.1
|
|
3
|
+
Version: 1.5.1
|
|
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.
|
|
10
|
+
Requires-Dist: ob-metaflow (==2.19.15.3)
|
|
11
11
|
|
|
12
12
|
# Outerbounds platform package
|
|
13
13
|
|
|
@@ -0,0 +1,133 @@
|
|
|
1
|
+
metaflow_extensions/outerbounds/__init__.py,sha256=Gb8u06s9ClQsA_vzxmkCzuMnigPy7kKcDnLfb7eB-64,514
|
|
2
|
+
metaflow_extensions/outerbounds/remote_config.py,sha256=bP5GhDvnjf5nuKUgHsaImstFxrylzJksBqBWaPEME1s,5458
|
|
3
|
+
metaflow_extensions/outerbounds/config/__init__.py,sha256=JsQGRuGFz28fQWjUvxUgR8EKBLGRdLUIk_buPLJplJY,1225
|
|
4
|
+
metaflow_extensions/outerbounds/plugins/__init__.py,sha256=5sxtyUdh2KoeXvpMRspqdyf50_2v9FnHUynYxuSkDvo,14189
|
|
5
|
+
metaflow_extensions/outerbounds/plugins/auth_server.py,sha256=_Q9_2EL0Xy77bCRphkwT1aSu8gQXRDOH-Z-RxTUO8N4,2202
|
|
6
|
+
metaflow_extensions/outerbounds/plugins/perimeters.py,sha256=QXh3SFP7GQbS-RAIxUOPbhPzQ7KDFVxZkTdKqFKgXjI,2697
|
|
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_utils.py,sha256=sw9whU17lAzlD2K2kEDNjlk1Ib-2xE2UNhJkmzD8Qv8,8543
|
|
10
|
+
metaflow_extensions/outerbounds/plugins/apps/consts.py,sha256=iHsyqbUg9k-rgswCs1Jxf5QZIxR1V-peCDRjgr9kdBM,177
|
|
11
|
+
metaflow_extensions/outerbounds/plugins/apps/deploy_decorator.py,sha256=VkmiMdNYHhNdt-Qm9AVv7aE2LWFsIFEc16YcOYjwF6Q,8568
|
|
12
|
+
metaflow_extensions/outerbounds/plugins/apps/supervisord_utils.py,sha256=GQoN2gyPClcpR9cLldJmbCfqXnoAHxp8xUnY7vzaYtY,9026
|
|
13
|
+
metaflow_extensions/outerbounds/plugins/apps/core/__init__.py,sha256=E0FnGFciV1yrK1_2dDYWvEm0MHqQCgShJnsFs0wn8qo,414
|
|
14
|
+
metaflow_extensions/outerbounds/plugins/apps/core/_state_machine.py,sha256=OtM129BVCP2UXUL_kUPlG9OX0LJfOd45-b42hxO6A60,20350
|
|
15
|
+
metaflow_extensions/outerbounds/plugins/apps/core/app_config.py,sha256=9NfQe7DEaz_cG_3E7nGwLdlLDb-azcN4RW3l-jJXYPI,3863
|
|
16
|
+
metaflow_extensions/outerbounds/plugins/apps/core/app_deploy_decorator.py,sha256=bSzOxmU2fvPbtXBtC2iiFNdvvN64c_otDRC23CvCzaU,10018
|
|
17
|
+
metaflow_extensions/outerbounds/plugins/apps/core/artifacts.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
18
|
+
metaflow_extensions/outerbounds/plugins/apps/core/capsule.py,sha256=MneFa7qna90Gg_GVP7t5jUkQ_VLwT0jGJmLL9toevyk,37063
|
|
19
|
+
metaflow_extensions/outerbounds/plugins/apps/core/click_importer.py,sha256=kgoPQmK_-8PSSTc3QMSaynCLQ5VWTkKFOC69FPURyXA,998
|
|
20
|
+
metaflow_extensions/outerbounds/plugins/apps/core/config_schema.yaml,sha256=DoDD3kqlnqJMrEHEAnJd2ll9w9CT8Oq7dLlukAswHD8,10073
|
|
21
|
+
metaflow_extensions/outerbounds/plugins/apps/core/dependencies.py,sha256=k6moZjlU8V1eSMHFY22NW4k5j4SKNYhpFiX_f68hjwc,4024
|
|
22
|
+
metaflow_extensions/outerbounds/plugins/apps/core/deployer.py,sha256=ocHc_t73U2ih4_VLHmxBn2r39sJp8mZvLUW2T-yC2jc,31657
|
|
23
|
+
metaflow_extensions/outerbounds/plugins/apps/core/perimeters.py,sha256=vDLmon-yRyfXU4gVrAcaUn4Wmler4p0dCHmf8nUGS9g,3069
|
|
24
|
+
metaflow_extensions/outerbounds/plugins/apps/core/secrets.py,sha256=sgDiAmpSC8Y5xjlaOEp79F6m0S3x4RONf_vJ5PUAfu8,6127
|
|
25
|
+
metaflow_extensions/outerbounds/plugins/apps/core/utils.py,sha256=2M2zU8DhbAlJee8P0xKXINAku81PcUylS3sVCSb0TUs,7896
|
|
26
|
+
metaflow_extensions/outerbounds/plugins/apps/core/validations.py,sha256=Inr9AJDe-L3PMMMxcJPH1zulh9_SynqITb2BzGseLh4,471
|
|
27
|
+
metaflow_extensions/outerbounds/plugins/apps/core/_vendor/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
28
|
+
metaflow_extensions/outerbounds/plugins/apps/core/_vendor/spinner/__init__.py,sha256=gTm0NdQGTRxmghye1CYkhRtodji0MezsqAWs9OrLLRc,102
|
|
29
|
+
metaflow_extensions/outerbounds/plugins/apps/core/_vendor/spinner/spinners.py,sha256=0Hl1dskTzfibHPM5dfHV3no1maFduOCJ48r8mr3tgr0,15786
|
|
30
|
+
metaflow_extensions/outerbounds/plugins/apps/core/code_package/__init__.py,sha256=8McF7pgx8ghvjRnazp2Qktlxi9yYwNiwESSQrk-2oW8,68
|
|
31
|
+
metaflow_extensions/outerbounds/plugins/apps/core/code_package/code_packager.py,sha256=QHlF94T7ZGSOJH5Xeg4mI_CJvCrbaikiIOTnkFgE83g,23228
|
|
32
|
+
metaflow_extensions/outerbounds/plugins/apps/core/code_package/examples.py,sha256=aF8qKIJxCVv_ugcShQjqUsXKKKMsm1oMkQIl8w3QKuw,4016
|
|
33
|
+
metaflow_extensions/outerbounds/plugins/apps/core/config/__init__.py,sha256=iIHHyCuH7V3xbVvlS0uCJnboQx67NeA03y8kuKxyW1A,489
|
|
34
|
+
metaflow_extensions/outerbounds/plugins/apps/core/config/cli_generator.py,sha256=JGARTvKESPQbuSy3RdnIF4PHUDsT0W0liFB_jmuCark,5496
|
|
35
|
+
metaflow_extensions/outerbounds/plugins/apps/core/config/config_utils.py,sha256=tMj3belC7yBYV6DHjsWfFq2MNsZuIXnIAeEO8HQEFf4,37768
|
|
36
|
+
metaflow_extensions/outerbounds/plugins/apps/core/config/schema_export.py,sha256=gl3toISxzm297pehSBobdrFmdIpVCVgcYWJO_YYrvn0,9954
|
|
37
|
+
metaflow_extensions/outerbounds/plugins/apps/core/config/typed_configs.py,sha256=HYpc_RnvQmrP52mkn0G5HDNa6jUhc738Xrpklio1ytQ,8090
|
|
38
|
+
metaflow_extensions/outerbounds/plugins/apps/core/config/typed_init_generator.py,sha256=SCInjZFTubHNcbVgeXkLWuHir0X6DzwYqWR_LFDtejU,18138
|
|
39
|
+
metaflow_extensions/outerbounds/plugins/apps/core/config/unified_config.py,sha256=KnLQiLR_oKdv2LumBaSF6-IMcwzSV5SRoC25p6iEe3s,39924
|
|
40
|
+
metaflow_extensions/outerbounds/plugins/apps/core/experimental/__init__.py,sha256=_OT0RsbQdYerT-fjG_vcu85ava6sHbCsGBpLcGcrlX8,3043
|
|
41
|
+
metaflow_extensions/outerbounds/plugins/aws/__init__.py,sha256=VBGdjNKeFLXGZuqh4jVk8cFtO1AWof73a6k_cnbAOYA,145
|
|
42
|
+
metaflow_extensions/outerbounds/plugins/aws/assume_role.py,sha256=mBewNlnSYsR2rFXFkX-DUH6ku01h2yOcMcLHoCL7eyI,161
|
|
43
|
+
metaflow_extensions/outerbounds/plugins/aws/assume_role_decorator.py,sha256=cZg2zUcyvehpjE-a12HTP6vpwPG2MAJuK5KSywBk8xs,4638
|
|
44
|
+
metaflow_extensions/outerbounds/plugins/card_utilities/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
45
|
+
metaflow_extensions/outerbounds/plugins/card_utilities/async_cards.py,sha256=6rQhtZXK5DenXPfCRS1ul0jvLJYd48jrJAlnodID21w,4347
|
|
46
|
+
metaflow_extensions/outerbounds/plugins/card_utilities/extra_components.py,sha256=D8rgCaSc7PuLD0MHJjqsjN0g0PQMN1H-ySOJqi5uIOE,19111
|
|
47
|
+
metaflow_extensions/outerbounds/plugins/card_utilities/injector.py,sha256=UQtHrviFs7Z5LBh0nbaIv8aEnHnyXFjs9TiGCjtcIWc,2452
|
|
48
|
+
metaflow_extensions/outerbounds/plugins/checkpoint_datastores/__init__.py,sha256=H96Bdv2XKTewKIU587sjNbU538SKMZOYWQ2qCp1JaNU,84
|
|
49
|
+
metaflow_extensions/outerbounds/plugins/checkpoint_datastores/coreweave.py,sha256=_SKSs0qfRt864rmz3gcm87zEPEh16_ai-MJ-D47v15Y,2340
|
|
50
|
+
metaflow_extensions/outerbounds/plugins/checkpoint_datastores/external_chckpt.py,sha256=BRigyuyYYv5H1CxfifFJPPvgMdQeCNIT8Hm0j1xo-YA,3025
|
|
51
|
+
metaflow_extensions/outerbounds/plugins/checkpoint_datastores/nebius.py,sha256=xFGdSxlHcwZwgTSKj8efEv6ydCWYqRGrreGqXhf02ko,2321
|
|
52
|
+
metaflow_extensions/outerbounds/plugins/fast_bakery/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
53
|
+
metaflow_extensions/outerbounds/plugins/fast_bakery/baker.py,sha256=ShE5omFBr83wkvEhL_ptRFvDNMs6wefg4BjaafQjTcM,3602
|
|
54
|
+
metaflow_extensions/outerbounds/plugins/fast_bakery/docker_environment.py,sha256=vKN3Waz0SgbOALVTRcf_8MCGhxdRueRFZJ7JmWbRJRM,15487
|
|
55
|
+
metaflow_extensions/outerbounds/plugins/fast_bakery/fast_bakery.py,sha256=9iqIBowKk95vUYvnMrFNWmmSuK-whKnqJwcCmEcRjTU,5727
|
|
56
|
+
metaflow_extensions/outerbounds/plugins/fast_bakery/fast_bakery_cli.py,sha256=kqFyu2bJSnc9_9aYfBpz5xK6L6luWFZK_NMuh8f1eVk,1494
|
|
57
|
+
metaflow_extensions/outerbounds/plugins/fast_bakery/fast_bakery_decorator.py,sha256=MXSIp05-jvt8Q2uGaLKjtuM_ToLeRLxhtMbfHc9Kcko,1515
|
|
58
|
+
metaflow_extensions/outerbounds/plugins/kubernetes/__init__.py,sha256=5zG8gShSj8m7rgF4xgWBZFuY3GDP5n1T0ktjRpGJLHA,69
|
|
59
|
+
metaflow_extensions/outerbounds/plugins/kubernetes/kubernetes_client.py,sha256=sjBhQ4aa-i1UkKsJyTswdDLYOBAFIvHRco4r7wfs9Tc,5003
|
|
60
|
+
metaflow_extensions/outerbounds/plugins/kubernetes/pod_killer.py,sha256=3b9y6gYEqWkN-_-GOqcAV2pOJOeCjpVmfW-nOMCJ4Z0,14924
|
|
61
|
+
metaflow_extensions/outerbounds/plugins/nim/card.py,sha256=dXOJvsZed5NyYyxYLPDvtwg9z_X4azL9HTJGYaiNriY,4690
|
|
62
|
+
metaflow_extensions/outerbounds/plugins/nim/nim_decorator.py,sha256=50YVvC7mcZYlPluM0Wq1UtufhzlQb-RxzZkTOJJ3LkM,3439
|
|
63
|
+
metaflow_extensions/outerbounds/plugins/nim/nim_manager.py,sha256=y8U71106KJtrC6nlhsNnzX9Xkv3RnyZ1KEpRFwqZZFk,13686
|
|
64
|
+
metaflow_extensions/outerbounds/plugins/nim/utils.py,sha256=nU-v1sheBjmITXfHiJx2ucm_Tq_nGb5BcuAm5c235cQ,1164
|
|
65
|
+
metaflow_extensions/outerbounds/plugins/nvcf/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
66
|
+
metaflow_extensions/outerbounds/plugins/nvcf/constants.py,sha256=8Gcf5nKBVoE2v7_4hTW1EAf-hvXCzQoccaRBeKa_MNk,179
|
|
67
|
+
metaflow_extensions/outerbounds/plugins/nvcf/exceptions.py,sha256=-Pm9cOWUzpv94TvVUeq-FenAWdfLBJd5N7WPqIGZVqU,3671
|
|
68
|
+
metaflow_extensions/outerbounds/plugins/nvcf/heartbeat_store.py,sha256=pOWwm8LFQBbtku0zNBBwCyXxLK8U-hhC4naQcmU69nE,6217
|
|
69
|
+
metaflow_extensions/outerbounds/plugins/nvcf/nvcf.py,sha256=3ZFdYItVpFWnHMOeyV1nslUyelfvX5rknh2d2IWxVws,15591
|
|
70
|
+
metaflow_extensions/outerbounds/plugins/nvcf/nvcf_cli.py,sha256=3D-r5XO88Yh2k1EAZFJTe_PwdbhWp5qXflG8AgE4ZIU,9500
|
|
71
|
+
metaflow_extensions/outerbounds/plugins/nvcf/nvcf_decorator.py,sha256=pSWKaPyGXBEfxG35QA1FQljio8ADjwf-DnPgEsqXoUM,9251
|
|
72
|
+
metaflow_extensions/outerbounds/plugins/nvcf/utils.py,sha256=DxWSCayfa95e0HJkWacey1s1nxoTpaunGhrb_0Ayv28,133
|
|
73
|
+
metaflow_extensions/outerbounds/plugins/nvct/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
74
|
+
metaflow_extensions/outerbounds/plugins/nvct/exceptions.py,sha256=1PiV6FdH36CvkmHh5jtsfrsoe3Q_Fo1NomHw5wvgoDM,2886
|
|
75
|
+
metaflow_extensions/outerbounds/plugins/nvct/nvct.py,sha256=Z2ZPWGuHe58au_d6GfHiw6Nl5d8INdLDI5exlsPEOSA,3564
|
|
76
|
+
metaflow_extensions/outerbounds/plugins/nvct/nvct_cli.py,sha256=bB9AURhRep9PV_-b-qLHpgw_GPG_xFoq1PeHEgFP1mQ,10104
|
|
77
|
+
metaflow_extensions/outerbounds/plugins/nvct/nvct_decorator.py,sha256=RRGSDTziEA_wf8Ck8zePwAHTHc3VPbinnIU49PBM60c,9477
|
|
78
|
+
metaflow_extensions/outerbounds/plugins/nvct/nvct_runner.py,sha256=8IPkdvuTZNIqgAAt75gVNn-ydr-Zz2sKC8UX_6pNEKI,7091
|
|
79
|
+
metaflow_extensions/outerbounds/plugins/nvct/utils.py,sha256=U4_Fu8H94j_Bbox7mmMhNnlRhlYHqnK28R5w_TMWEFM,1029
|
|
80
|
+
metaflow_extensions/outerbounds/plugins/ollama/__init__.py,sha256=4T8LQqAuh8flSMvYztw6-OPoDoAorcBWhC-vPuuQPbc,9234
|
|
81
|
+
metaflow_extensions/outerbounds/plugins/ollama/constants.py,sha256=hxkTpWEJp1pKHwUcG4EE3-17M6x2CyeMfbeqgUzF9TA,28
|
|
82
|
+
metaflow_extensions/outerbounds/plugins/ollama/exceptions.py,sha256=8Ss296_MGZl1wXAoDNwpH-hsPe6iYLe90Ji1pczNocU,668
|
|
83
|
+
metaflow_extensions/outerbounds/plugins/ollama/ollama.py,sha256=C-6Hz8OxsJiB14AAxmunq3P4k7DrmVHsSOxE0xsP-nY,79780
|
|
84
|
+
metaflow_extensions/outerbounds/plugins/ollama/status_card.py,sha256=F5e4McDl28lhtjeUyInkl03bqjr1lgLxWoau8Q9xwBE,10994
|
|
85
|
+
metaflow_extensions/outerbounds/plugins/optuna/__init__.py,sha256=o_fmMZPtSMvGhMfZPAFOX9j0DZ5MRJ0JRsyDTvcymJY,1616
|
|
86
|
+
metaflow_extensions/outerbounds/plugins/profilers/deco_injector.py,sha256=oI_C3c64XBm7n88FILqHwn-Nnc5DeT_68I67lM9rXaI,2434
|
|
87
|
+
metaflow_extensions/outerbounds/plugins/profilers/gpu_profile_decorator.py,sha256=gDHQ2sMIp4NuZSzUspbSd8RGdFAoO5mgZAyFcZ2a51Y,2619
|
|
88
|
+
metaflow_extensions/outerbounds/plugins/profilers/simple_card_decorator.py,sha256=4W9tLGCmkFx-4XYLa1xF6qMiaWOBYYFx_RclZDKej30,3259
|
|
89
|
+
metaflow_extensions/outerbounds/plugins/s3_proxy/__init__.py,sha256=9Kw86B331pQJAzkfBMPIDoPrJsW0LVRHXBYikbcc2xk,204
|
|
90
|
+
metaflow_extensions/outerbounds/plugins/s3_proxy/binary_caller.py,sha256=NxgyDF6KBH7VB2-Lqg9XvLjcHHVBeNJaTw66GXe6q5I,4253
|
|
91
|
+
metaflow_extensions/outerbounds/plugins/s3_proxy/constants.py,sha256=ugjVUv_C2JW5Dy6hAunaivxS4rlOvCMiwVCe8gyQ_FI,321
|
|
92
|
+
metaflow_extensions/outerbounds/plugins/s3_proxy/exceptions.py,sha256=IkPqDvSeYQukNeu0aIVCmfQWTvUHsTs-qv7nvry2KjM,305
|
|
93
|
+
metaflow_extensions/outerbounds/plugins/s3_proxy/proxy_bootstrap.py,sha256=xtYoyydd-JV7l6YxR7UwrErXT9HvRSPGjJQAoV83rgE,1507
|
|
94
|
+
metaflow_extensions/outerbounds/plugins/s3_proxy/s3_proxy_api.py,sha256=WjpprW0tCICLOihFywEtgJbCnx-OFmwuT_hR27ACl2A,3007
|
|
95
|
+
metaflow_extensions/outerbounds/plugins/s3_proxy/s3_proxy_decorator.py,sha256=kbsAAY8gnE6F9kSzKCliUhw3h-ol-_v8qdv8meC4JBA,9206
|
|
96
|
+
metaflow_extensions/outerbounds/plugins/s3_proxy/s3_proxy_manager.py,sha256=Grl7eLqH5iV0RPgSUl7v0BMRLkTvYpMiwKhPHeZqJ3M,8600
|
|
97
|
+
metaflow_extensions/outerbounds/plugins/secrets/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
98
|
+
metaflow_extensions/outerbounds/plugins/secrets/secrets.py,sha256=3s98hO_twKkM22tKyDdcUjGQNfYpSXW_jLKISV9ju_U,8433
|
|
99
|
+
metaflow_extensions/outerbounds/plugins/snowflake/__init__.py,sha256=RG4ixt3jwqcK1_tt0QxLcUbNmf7wWAMnZhBx-ZMGgLk,114
|
|
100
|
+
metaflow_extensions/outerbounds/plugins/snowflake/snowflake.py,sha256=_ULhLrKZ4rOVcJFb_EmMGi7GFDN6Vtawz8o86mLBMq8,14756
|
|
101
|
+
metaflow_extensions/outerbounds/plugins/snowpark/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
102
|
+
metaflow_extensions/outerbounds/plugins/snowpark/snowpark.py,sha256=tVpSOizbVjoXp-iMWuzJgE41hUstMrPC8O_eCKY9Mg4,11083
|
|
103
|
+
metaflow_extensions/outerbounds/plugins/snowpark/snowpark_cli.py,sha256=aesXYZGoEF8UtAIvCDJNLTSc9pM62KuOqd9Za95HjZ4,8997
|
|
104
|
+
metaflow_extensions/outerbounds/plugins/snowpark/snowpark_client.py,sha256=6U1sdXx0pdhNdkGba8DaE7GabQTc5fyJI3LpPsPQt0s,5463
|
|
105
|
+
metaflow_extensions/outerbounds/plugins/snowpark/snowpark_decorator.py,sha256=EN-XQafl14uQ3oVGgrkNII5PCYq2lWOt3t2d-JGPeBk,10430
|
|
106
|
+
metaflow_extensions/outerbounds/plugins/snowpark/snowpark_exceptions.py,sha256=FTfYlJu-sn9DkPOs2R1V1ChWb1vZthOgeq0BZdT1ucY,296
|
|
107
|
+
metaflow_extensions/outerbounds/plugins/snowpark/snowpark_job.py,sha256=KcbAYZdInAlS10IAZWdqtWAJXY4I6N2ebCTXzAmT72o,7070
|
|
108
|
+
metaflow_extensions/outerbounds/plugins/snowpark/snowpark_service_spec.py,sha256=AI_kcm1hZV3JRxJkookcH6twiGnAYjk9Dx-MeoYz60Y,8511
|
|
109
|
+
metaflow_extensions/outerbounds/plugins/tensorboard/__init__.py,sha256=9lUM4Cqi5RjrHBRfG6AQMRz8-R96eZC8Ih0KD2lv22Y,1858
|
|
110
|
+
metaflow_extensions/outerbounds/plugins/torchtune/__init__.py,sha256=Psj2ybj_E1qp5KK2inon9e4ZecaRxnPtW3ngcirbO2g,6094
|
|
111
|
+
metaflow_extensions/outerbounds/plugins/vllm/__init__.py,sha256=H56xR3un5Ed39A-85ZzzVk9hmhEYBdzR5ydiDrtSAVc,9298
|
|
112
|
+
metaflow_extensions/outerbounds/plugins/vllm/constants.py,sha256=ODX_uM5iYrzpVltsAdSf9Jo0DAOMiZ3647DcKdCnlS0,24
|
|
113
|
+
metaflow_extensions/outerbounds/plugins/vllm/exceptions.py,sha256=8m65k2L17zXgSkgU299DWqxr1wGUMsZgSJw0hBRizJ0,49
|
|
114
|
+
metaflow_extensions/outerbounds/plugins/vllm/status_card.py,sha256=TkBbRcrwgW2RMwac-Vo3OUDofDQ05Qy4U1SGRvij2to,12949
|
|
115
|
+
metaflow_extensions/outerbounds/plugins/vllm/vllm_manager.py,sha256=sp_TX2SrImJGgu5kp0A458VhytC6F0PNM-vGN7Zsrf4,23921
|
|
116
|
+
metaflow_extensions/outerbounds/profilers/__init__.py,sha256=wa_jhnCBr82TBxoS0e8b6_6sLyZX0fdHicuGJZNTqKw,29
|
|
117
|
+
metaflow_extensions/outerbounds/profilers/gpu.py,sha256=3Er8uKQzfm_082uadg4yn_D4Y-iSCgzUfFmguYxZsz4,27485
|
|
118
|
+
metaflow_extensions/outerbounds/toplevel/__init__.py,sha256=qWUJSv_r5hXJ7jV_On4nEasKIfUCm6_UjkjXWA_A1Ts,90
|
|
119
|
+
metaflow_extensions/outerbounds/toplevel/global_aliases_for_metaflow_package.py,sha256=cDVcEHZ2tgGQkho1Scgci5LNQWBXka18LnOoqkpgqrI,4647
|
|
120
|
+
metaflow_extensions/outerbounds/toplevel/ob_internal.py,sha256=AS0rJ9_Cb_NAjQthirFVMfkQpe-1uS3lTPU1hP0DBIA,216
|
|
121
|
+
metaflow_extensions/outerbounds/toplevel/s3_proxy.py,sha256=zdqG7Z12cGuoYYCi2P4kqC3WsgL3xfdJGIb7ejecHH4,2862
|
|
122
|
+
metaflow_extensions/outerbounds/toplevel/plugins/azure/__init__.py,sha256=WUuhz2YQfI4fz7nIcipwwWq781eaoHEk7n4GAn1npDg,63
|
|
123
|
+
metaflow_extensions/outerbounds/toplevel/plugins/gcp/__init__.py,sha256=BbZiaH3uILlEZ6ntBLKeNyqn3If8nIXZFq_Apd7Dhco,70
|
|
124
|
+
metaflow_extensions/outerbounds/toplevel/plugins/kubernetes/__init__.py,sha256=5zG8gShSj8m7rgF4xgWBZFuY3GDP5n1T0ktjRpGJLHA,69
|
|
125
|
+
metaflow_extensions/outerbounds/toplevel/plugins/ollama/__init__.py,sha256=GRSz2zwqkvlmFS6bcfYD_CX6CMko9DHQokMaH1iBshA,47
|
|
126
|
+
metaflow_extensions/outerbounds/toplevel/plugins/optuna/__init__.py,sha256=6D1wLVSHvwEC_ed1r3VcvNGqOhKgyBt22AoDjVTkiFY,47
|
|
127
|
+
metaflow_extensions/outerbounds/toplevel/plugins/snowflake/__init__.py,sha256=LptpH-ziXHrednMYUjIaosS1SXD3sOtF_9_eRqd8SJw,50
|
|
128
|
+
metaflow_extensions/outerbounds/toplevel/plugins/torchtune/__init__.py,sha256=uTVkdSk3xZ7hEKYfdlyVteWj5KeDwaM1hU9WT-_YKfI,50
|
|
129
|
+
metaflow_extensions/outerbounds/toplevel/plugins/vllm/__init__.py,sha256=ekcgD3KVydf-a0xMI60P4uy6ePkSEoFHiGnDq1JM940,45
|
|
130
|
+
ob_metaflow_extensions-1.5.1.dist-info/METADATA,sha256=nUZqywlELUuD_viAZtjgWHTT_GGX5kurb8OAnx9c-74,519
|
|
131
|
+
ob_metaflow_extensions-1.5.1.dist-info/WHEEL,sha256=bb2Ot9scclHKMOLDEHY6B2sicWOgugjFKaJsT7vwMQo,110
|
|
132
|
+
ob_metaflow_extensions-1.5.1.dist-info/top_level.txt,sha256=NwG0ukwjygtanDETyp_BUdtYtqIA_lOjzFFh1TsnxvI,20
|
|
133
|
+
ob_metaflow_extensions-1.5.1.dist-info/RECORD,,
|
|
@@ -1,56 +0,0 @@
|
|
|
1
|
-
metaflow_extensions/outerbounds/__init__.py,sha256=TRGvIUMjkfneWtYUFSWoubu_Kf2ekAL4WLbV3IxOj9k,499
|
|
2
|
-
metaflow_extensions/outerbounds/remote_config.py,sha256=Zpfpjgz68_ZgxlXezjzlsDLo4840rkWuZgwDB_5H57U,4059
|
|
3
|
-
metaflow_extensions/outerbounds/config/__init__.py,sha256=JsQGRuGFz28fQWjUvxUgR8EKBLGRdLUIk_buPLJplJY,1225
|
|
4
|
-
metaflow_extensions/outerbounds/plugins/__init__.py,sha256=5BFqGhlS9M23WUCoTNQfnOu-mB4iO9z7yK0586IRHMI,12749
|
|
5
|
-
metaflow_extensions/outerbounds/plugins/auth_server.py,sha256=_Q9_2EL0Xy77bCRphkwT1aSu8gQXRDOH-Z-RxTUO8N4,2202
|
|
6
|
-
metaflow_extensions/outerbounds/plugins/perimeters.py,sha256=QXh3SFP7GQbS-RAIxUOPbhPzQ7KDFVxZkTdKqFKgXjI,2697
|
|
7
|
-
metaflow_extensions/outerbounds/plugins/card_utilities/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
8
|
-
metaflow_extensions/outerbounds/plugins/card_utilities/async_cards.py,sha256=6rQhtZXK5DenXPfCRS1ul0jvLJYd48jrJAlnodID21w,4347
|
|
9
|
-
metaflow_extensions/outerbounds/plugins/card_utilities/extra_components.py,sha256=D8rgCaSc7PuLD0MHJjqsjN0g0PQMN1H-ySOJqi5uIOE,19111
|
|
10
|
-
metaflow_extensions/outerbounds/plugins/card_utilities/injector.py,sha256=0jXsr_5nWzHK-qpBYyCSnDwCLzouYSvyJ7vMgRdtovg,2452
|
|
11
|
-
metaflow_extensions/outerbounds/plugins/fast_bakery/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
12
|
-
metaflow_extensions/outerbounds/plugins/fast_bakery/docker_environment.py,sha256=i6F3FXwvEhkmUCTHDJ4VmSoL6vKyQhC_YRCtY6F4EkA,14209
|
|
13
|
-
metaflow_extensions/outerbounds/plugins/fast_bakery/fast_bakery.py,sha256=cj63FrdioggipQFP8GwgxU3FYe6IyzjGSUGYxLQZ4nQ,5189
|
|
14
|
-
metaflow_extensions/outerbounds/plugins/fast_bakery/fast_bakery_cli.py,sha256=kqFyu2bJSnc9_9aYfBpz5xK6L6luWFZK_NMuh8f1eVk,1494
|
|
15
|
-
metaflow_extensions/outerbounds/plugins/fast_bakery/fast_bakery_decorator.py,sha256=MXSIp05-jvt8Q2uGaLKjtuM_ToLeRLxhtMbfHc9Kcko,1515
|
|
16
|
-
metaflow_extensions/outerbounds/plugins/kubernetes/__init__.py,sha256=5zG8gShSj8m7rgF4xgWBZFuY3GDP5n1T0ktjRpGJLHA,69
|
|
17
|
-
metaflow_extensions/outerbounds/plugins/kubernetes/kubernetes_client.py,sha256=fx_XUkgR4r6hF2ilDfT5LubRyVrYMVIv5f6clHkCaEk,5988
|
|
18
|
-
metaflow_extensions/outerbounds/plugins/nim/__init__.py,sha256=MEdX6TPdY9POflCiaYbVmwT-nUNeqwregZBzBZ5CNz0,4487
|
|
19
|
-
metaflow_extensions/outerbounds/plugins/nim/card.py,sha256=EfV8x2XNZkhdOqlNPAGRY_YhahPYxcbFKQAjrXwZTvI,4941
|
|
20
|
-
metaflow_extensions/outerbounds/plugins/nim/nim_manager.py,sha256=fCFdRuvagzgPSVQfhy5bzbxfVBeO562h-cDz6CCLQLw,12118
|
|
21
|
-
metaflow_extensions/outerbounds/plugins/nim/utilities.py,sha256=jSdNP3tSCrDjxD2E9bIzxVqDDu6S14femlxSjsMv57o,151
|
|
22
|
-
metaflow_extensions/outerbounds/plugins/nvcf/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
23
|
-
metaflow_extensions/outerbounds/plugins/nvcf/constants.py,sha256=aGHdNw_hqBu8i0zWXcatQM6e769wUXox0l8g0f6fNZ8,146
|
|
24
|
-
metaflow_extensions/outerbounds/plugins/nvcf/exceptions.py,sha256=-Pm9cOWUzpv94TvVUeq-FenAWdfLBJd5N7WPqIGZVqU,3671
|
|
25
|
-
metaflow_extensions/outerbounds/plugins/nvcf/heartbeat_store.py,sha256=pOWwm8LFQBbtku0zNBBwCyXxLK8U-hhC4naQcmU69nE,6217
|
|
26
|
-
metaflow_extensions/outerbounds/plugins/nvcf/nvcf.py,sha256=zhHgoE76WOpCJnoMvSNekliy0p4YVzcwcoIKlXXXzlE,11529
|
|
27
|
-
metaflow_extensions/outerbounds/plugins/nvcf/nvcf_cli.py,sha256=3D-r5XO88Yh2k1EAZFJTe_PwdbhWp5qXflG8AgE4ZIU,9500
|
|
28
|
-
metaflow_extensions/outerbounds/plugins/nvcf/nvcf_decorator.py,sha256=pxxNxW4bW3kbB6ybRam657GyKIhvIkMuidB94iFfCD8,9116
|
|
29
|
-
metaflow_extensions/outerbounds/plugins/nvcf/utils.py,sha256=DxWSCayfa95e0HJkWacey1s1nxoTpaunGhrb_0Ayv28,133
|
|
30
|
-
metaflow_extensions/outerbounds/plugins/profilers/deco_injector.py,sha256=oI_C3c64XBm7n88FILqHwn-Nnc5DeT_68I67lM9rXaI,2434
|
|
31
|
-
metaflow_extensions/outerbounds/plugins/profilers/gpu_profile_decorator.py,sha256=gDHQ2sMIp4NuZSzUspbSd8RGdFAoO5mgZAyFcZ2a51Y,2619
|
|
32
|
-
metaflow_extensions/outerbounds/plugins/secrets/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
33
|
-
metaflow_extensions/outerbounds/plugins/secrets/secrets.py,sha256=2bLrrzcZdIX8RYTnO6f0GszQS36Wc1IvtpenX-K3qls,6623
|
|
34
|
-
metaflow_extensions/outerbounds/plugins/snowflake/__init__.py,sha256=RG4ixt3jwqcK1_tt0QxLcUbNmf7wWAMnZhBx-ZMGgLk,114
|
|
35
|
-
metaflow_extensions/outerbounds/plugins/snowflake/snowflake.py,sha256=ie13QCQaJOQJH4xU2PyCU0H4XsfRA9voa6paq67jOfY,11691
|
|
36
|
-
metaflow_extensions/outerbounds/plugins/snowpark/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
37
|
-
metaflow_extensions/outerbounds/plugins/snowpark/snowpark.py,sha256=0R8aFN9MpgWraqiaI6ZF82YpLdFJ1f-3z_-BPRpZfxM,10674
|
|
38
|
-
metaflow_extensions/outerbounds/plugins/snowpark/snowpark_cli.py,sha256=ezJ2Jr8JJ48SvTH0ET7pRUGaBuq3XTSfNxJVgXhZsnY,8756
|
|
39
|
-
metaflow_extensions/outerbounds/plugins/snowpark/snowpark_client.py,sha256=JEW0EUxj_mNZXo9OFkJFmWfg-P7_CEgvNbgsMTCBTAE,4273
|
|
40
|
-
metaflow_extensions/outerbounds/plugins/snowpark/snowpark_decorator.py,sha256=a7LqSKULVh8IrR1StrVPbemHOLojR0nEqh-mMX-M1i4,9904
|
|
41
|
-
metaflow_extensions/outerbounds/plugins/snowpark/snowpark_exceptions.py,sha256=FTfYlJu-sn9DkPOs2R1V1ChWb1vZthOgeq0BZdT1ucY,296
|
|
42
|
-
metaflow_extensions/outerbounds/plugins/snowpark/snowpark_job.py,sha256=aQphxX6jqYgfa83w387pEWl0keuLm38V53I8P8UL2ck,6887
|
|
43
|
-
metaflow_extensions/outerbounds/plugins/snowpark/snowpark_service_spec.py,sha256=AI_kcm1hZV3JRxJkookcH6twiGnAYjk9Dx-MeoYz60Y,8511
|
|
44
|
-
metaflow_extensions/outerbounds/plugins/tensorboard/__init__.py,sha256=9lUM4Cqi5RjrHBRfG6AQMRz8-R96eZC8Ih0KD2lv22Y,1858
|
|
45
|
-
metaflow_extensions/outerbounds/profilers/__init__.py,sha256=wa_jhnCBr82TBxoS0e8b6_6sLyZX0fdHicuGJZNTqKw,29
|
|
46
|
-
metaflow_extensions/outerbounds/profilers/gpu.py,sha256=3Er8uKQzfm_082uadg4yn_D4Y-iSCgzUfFmguYxZsz4,27485
|
|
47
|
-
metaflow_extensions/outerbounds/toplevel/__init__.py,sha256=qWUJSv_r5hXJ7jV_On4nEasKIfUCm6_UjkjXWA_A1Ts,90
|
|
48
|
-
metaflow_extensions/outerbounds/toplevel/global_aliases_for_metaflow_package.py,sha256=2CNRACc2EO-d_OtN7Ob-DlZAhD1ryYKhltB-4dVndAQ,1923
|
|
49
|
-
metaflow_extensions/outerbounds/toplevel/plugins/azure/__init__.py,sha256=WUuhz2YQfI4fz7nIcipwwWq781eaoHEk7n4GAn1npDg,63
|
|
50
|
-
metaflow_extensions/outerbounds/toplevel/plugins/gcp/__init__.py,sha256=BbZiaH3uILlEZ6ntBLKeNyqn3If8nIXZFq_Apd7Dhco,70
|
|
51
|
-
metaflow_extensions/outerbounds/toplevel/plugins/kubernetes/__init__.py,sha256=5zG8gShSj8m7rgF4xgWBZFuY3GDP5n1T0ktjRpGJLHA,69
|
|
52
|
-
metaflow_extensions/outerbounds/toplevel/plugins/snowflake/__init__.py,sha256=LptpH-ziXHrednMYUjIaosS1SXD3sOtF_9_eRqd8SJw,50
|
|
53
|
-
ob_metaflow_extensions-1.1.130.dist-info/METADATA,sha256=kWqn73QKYmuFL-pK23q9XXkyc0LCoPJjxrys45y__PU,520
|
|
54
|
-
ob_metaflow_extensions-1.1.130.dist-info/WHEEL,sha256=bb2Ot9scclHKMOLDEHY6B2sicWOgugjFKaJsT7vwMQo,110
|
|
55
|
-
ob_metaflow_extensions-1.1.130.dist-info/top_level.txt,sha256=NwG0ukwjygtanDETyp_BUdtYtqIA_lOjzFFh1TsnxvI,20
|
|
56
|
-
ob_metaflow_extensions-1.1.130.dist-info/RECORD,,
|
|
File without changes
|
{ob_metaflow_extensions-1.1.130.dist-info → ob_metaflow_extensions-1.5.1.dist-info}/top_level.txt
RENAMED
|
File without changes
|