ob-metaflow-extensions 1.1.170rc1__tar.gz → 1.1.171__tar.gz
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.
- {ob_metaflow_extensions-1.1.170rc1 → ob_metaflow_extensions-1.1.171}/PKG-INFO +1 -1
- {ob_metaflow_extensions-1.1.170rc1 → ob_metaflow_extensions-1.1.171}/metaflow_extensions/outerbounds/plugins/__init__.py +0 -1
- {ob_metaflow_extensions-1.1.170rc1 → ob_metaflow_extensions-1.1.171}/metaflow_extensions/outerbounds/plugins/fast_bakery/docker_environment.py +11 -1
- {ob_metaflow_extensions-1.1.170rc1 → ob_metaflow_extensions-1.1.171}/metaflow_extensions/outerbounds/toplevel/ob_internal.py +0 -1
- {ob_metaflow_extensions-1.1.170rc1 → ob_metaflow_extensions-1.1.171}/ob_metaflow_extensions.egg-info/PKG-INFO +1 -1
- {ob_metaflow_extensions-1.1.170rc1 → ob_metaflow_extensions-1.1.171}/ob_metaflow_extensions.egg-info/SOURCES.txt +0 -2
- ob_metaflow_extensions-1.1.171/ob_metaflow_extensions.egg-info/requires.txt +3 -0
- {ob_metaflow_extensions-1.1.170rc1 → ob_metaflow_extensions-1.1.171}/setup.py +2 -2
- ob_metaflow_extensions-1.1.170rc1/metaflow_extensions/outerbounds/plugins/apps/app_cli.py +0 -29
- ob_metaflow_extensions-1.1.170rc1/metaflow_extensions/outerbounds/plugins/fast_bakery/baker.py +0 -110
- ob_metaflow_extensions-1.1.170rc1/ob_metaflow_extensions.egg-info/requires.txt +0 -3
- {ob_metaflow_extensions-1.1.170rc1 → ob_metaflow_extensions-1.1.171}/README.md +0 -0
- {ob_metaflow_extensions-1.1.170rc1 → ob_metaflow_extensions-1.1.171}/metaflow_extensions/outerbounds/__init__.py +0 -0
- {ob_metaflow_extensions-1.1.170rc1 → ob_metaflow_extensions-1.1.171}/metaflow_extensions/outerbounds/config/__init__.py +0 -0
- {ob_metaflow_extensions-1.1.170rc1 → ob_metaflow_extensions-1.1.171}/metaflow_extensions/outerbounds/plugins/apps/__init__.py +0 -0
- {ob_metaflow_extensions-1.1.170rc1 → ob_metaflow_extensions-1.1.171}/metaflow_extensions/outerbounds/plugins/apps/app_utils.py +0 -0
- {ob_metaflow_extensions-1.1.170rc1 → ob_metaflow_extensions-1.1.171}/metaflow_extensions/outerbounds/plugins/apps/consts.py +0 -0
- {ob_metaflow_extensions-1.1.170rc1 → ob_metaflow_extensions-1.1.171}/metaflow_extensions/outerbounds/plugins/apps/deploy_decorator.py +0 -0
- {ob_metaflow_extensions-1.1.170rc1 → ob_metaflow_extensions-1.1.171}/metaflow_extensions/outerbounds/plugins/apps/supervisord_utils.py +0 -0
- {ob_metaflow_extensions-1.1.170rc1 → ob_metaflow_extensions-1.1.171}/metaflow_extensions/outerbounds/plugins/auth_server.py +0 -0
- {ob_metaflow_extensions-1.1.170rc1 → ob_metaflow_extensions-1.1.171}/metaflow_extensions/outerbounds/plugins/aws/__init__.py +0 -0
- {ob_metaflow_extensions-1.1.170rc1 → ob_metaflow_extensions-1.1.171}/metaflow_extensions/outerbounds/plugins/aws/assume_role.py +0 -0
- {ob_metaflow_extensions-1.1.170rc1 → ob_metaflow_extensions-1.1.171}/metaflow_extensions/outerbounds/plugins/aws/assume_role_decorator.py +0 -0
- {ob_metaflow_extensions-1.1.170rc1 → ob_metaflow_extensions-1.1.171}/metaflow_extensions/outerbounds/plugins/card_utilities/__init__.py +0 -0
- {ob_metaflow_extensions-1.1.170rc1 → ob_metaflow_extensions-1.1.171}/metaflow_extensions/outerbounds/plugins/card_utilities/async_cards.py +0 -0
- {ob_metaflow_extensions-1.1.170rc1 → ob_metaflow_extensions-1.1.171}/metaflow_extensions/outerbounds/plugins/card_utilities/extra_components.py +0 -0
- {ob_metaflow_extensions-1.1.170rc1 → ob_metaflow_extensions-1.1.171}/metaflow_extensions/outerbounds/plugins/card_utilities/injector.py +0 -0
- {ob_metaflow_extensions-1.1.170rc1 → ob_metaflow_extensions-1.1.171}/metaflow_extensions/outerbounds/plugins/checkpoint_datastores/__init__.py +0 -0
- {ob_metaflow_extensions-1.1.170rc1 → ob_metaflow_extensions-1.1.171}/metaflow_extensions/outerbounds/plugins/checkpoint_datastores/coreweave.py +0 -0
- {ob_metaflow_extensions-1.1.170rc1 → ob_metaflow_extensions-1.1.171}/metaflow_extensions/outerbounds/plugins/checkpoint_datastores/nebius.py +0 -0
- {ob_metaflow_extensions-1.1.170rc1 → ob_metaflow_extensions-1.1.171}/metaflow_extensions/outerbounds/plugins/fast_bakery/__init__.py +0 -0
- {ob_metaflow_extensions-1.1.170rc1 → ob_metaflow_extensions-1.1.171}/metaflow_extensions/outerbounds/plugins/fast_bakery/fast_bakery.py +0 -0
- {ob_metaflow_extensions-1.1.170rc1 → ob_metaflow_extensions-1.1.171}/metaflow_extensions/outerbounds/plugins/fast_bakery/fast_bakery_cli.py +0 -0
- {ob_metaflow_extensions-1.1.170rc1 → ob_metaflow_extensions-1.1.171}/metaflow_extensions/outerbounds/plugins/fast_bakery/fast_bakery_decorator.py +0 -0
- {ob_metaflow_extensions-1.1.170rc1 → ob_metaflow_extensions-1.1.171}/metaflow_extensions/outerbounds/plugins/kubernetes/__init__.py +0 -0
- {ob_metaflow_extensions-1.1.170rc1 → ob_metaflow_extensions-1.1.171}/metaflow_extensions/outerbounds/plugins/kubernetes/kubernetes_client.py +0 -0
- {ob_metaflow_extensions-1.1.170rc1 → ob_metaflow_extensions-1.1.171}/metaflow_extensions/outerbounds/plugins/kubernetes/pod_killer.py +0 -0
- {ob_metaflow_extensions-1.1.170rc1 → ob_metaflow_extensions-1.1.171}/metaflow_extensions/outerbounds/plugins/nim/card.py +0 -0
- {ob_metaflow_extensions-1.1.170rc1 → ob_metaflow_extensions-1.1.171}/metaflow_extensions/outerbounds/plugins/nim/nim_decorator.py +0 -0
- {ob_metaflow_extensions-1.1.170rc1 → ob_metaflow_extensions-1.1.171}/metaflow_extensions/outerbounds/plugins/nim/nim_manager.py +0 -0
- {ob_metaflow_extensions-1.1.170rc1 → ob_metaflow_extensions-1.1.171}/metaflow_extensions/outerbounds/plugins/nim/utils.py +0 -0
- {ob_metaflow_extensions-1.1.170rc1 → ob_metaflow_extensions-1.1.171}/metaflow_extensions/outerbounds/plugins/nvcf/__init__.py +0 -0
- {ob_metaflow_extensions-1.1.170rc1 → ob_metaflow_extensions-1.1.171}/metaflow_extensions/outerbounds/plugins/nvcf/constants.py +0 -0
- {ob_metaflow_extensions-1.1.170rc1 → ob_metaflow_extensions-1.1.171}/metaflow_extensions/outerbounds/plugins/nvcf/exceptions.py +0 -0
- {ob_metaflow_extensions-1.1.170rc1 → ob_metaflow_extensions-1.1.171}/metaflow_extensions/outerbounds/plugins/nvcf/heartbeat_store.py +0 -0
- {ob_metaflow_extensions-1.1.170rc1 → ob_metaflow_extensions-1.1.171}/metaflow_extensions/outerbounds/plugins/nvcf/nvcf.py +0 -0
- {ob_metaflow_extensions-1.1.170rc1 → ob_metaflow_extensions-1.1.171}/metaflow_extensions/outerbounds/plugins/nvcf/nvcf_cli.py +0 -0
- {ob_metaflow_extensions-1.1.170rc1 → ob_metaflow_extensions-1.1.171}/metaflow_extensions/outerbounds/plugins/nvcf/nvcf_decorator.py +0 -0
- {ob_metaflow_extensions-1.1.170rc1 → ob_metaflow_extensions-1.1.171}/metaflow_extensions/outerbounds/plugins/nvcf/utils.py +0 -0
- {ob_metaflow_extensions-1.1.170rc1 → ob_metaflow_extensions-1.1.171}/metaflow_extensions/outerbounds/plugins/nvct/__init__.py +0 -0
- {ob_metaflow_extensions-1.1.170rc1 → ob_metaflow_extensions-1.1.171}/metaflow_extensions/outerbounds/plugins/nvct/exceptions.py +0 -0
- {ob_metaflow_extensions-1.1.170rc1 → ob_metaflow_extensions-1.1.171}/metaflow_extensions/outerbounds/plugins/nvct/nvct.py +0 -0
- {ob_metaflow_extensions-1.1.170rc1 → ob_metaflow_extensions-1.1.171}/metaflow_extensions/outerbounds/plugins/nvct/nvct_cli.py +0 -0
- {ob_metaflow_extensions-1.1.170rc1 → ob_metaflow_extensions-1.1.171}/metaflow_extensions/outerbounds/plugins/nvct/nvct_decorator.py +0 -0
- {ob_metaflow_extensions-1.1.170rc1 → ob_metaflow_extensions-1.1.171}/metaflow_extensions/outerbounds/plugins/nvct/nvct_runner.py +0 -0
- {ob_metaflow_extensions-1.1.170rc1 → ob_metaflow_extensions-1.1.171}/metaflow_extensions/outerbounds/plugins/nvct/utils.py +0 -0
- {ob_metaflow_extensions-1.1.170rc1 → ob_metaflow_extensions-1.1.171}/metaflow_extensions/outerbounds/plugins/ollama/__init__.py +0 -0
- {ob_metaflow_extensions-1.1.170rc1 → ob_metaflow_extensions-1.1.171}/metaflow_extensions/outerbounds/plugins/ollama/constants.py +0 -0
- {ob_metaflow_extensions-1.1.170rc1 → ob_metaflow_extensions-1.1.171}/metaflow_extensions/outerbounds/plugins/ollama/exceptions.py +0 -0
- {ob_metaflow_extensions-1.1.170rc1 → ob_metaflow_extensions-1.1.171}/metaflow_extensions/outerbounds/plugins/ollama/ollama.py +0 -0
- {ob_metaflow_extensions-1.1.170rc1 → ob_metaflow_extensions-1.1.171}/metaflow_extensions/outerbounds/plugins/ollama/status_card.py +0 -0
- {ob_metaflow_extensions-1.1.170rc1 → ob_metaflow_extensions-1.1.171}/metaflow_extensions/outerbounds/plugins/perimeters.py +0 -0
- {ob_metaflow_extensions-1.1.170rc1 → ob_metaflow_extensions-1.1.171}/metaflow_extensions/outerbounds/plugins/profilers/deco_injector.py +0 -0
- {ob_metaflow_extensions-1.1.170rc1 → ob_metaflow_extensions-1.1.171}/metaflow_extensions/outerbounds/plugins/profilers/gpu_profile_decorator.py +0 -0
- {ob_metaflow_extensions-1.1.170rc1 → ob_metaflow_extensions-1.1.171}/metaflow_extensions/outerbounds/plugins/secrets/__init__.py +0 -0
- {ob_metaflow_extensions-1.1.170rc1 → ob_metaflow_extensions-1.1.171}/metaflow_extensions/outerbounds/plugins/secrets/secrets.py +0 -0
- {ob_metaflow_extensions-1.1.170rc1 → ob_metaflow_extensions-1.1.171}/metaflow_extensions/outerbounds/plugins/snowflake/__init__.py +0 -0
- {ob_metaflow_extensions-1.1.170rc1 → ob_metaflow_extensions-1.1.171}/metaflow_extensions/outerbounds/plugins/snowflake/snowflake.py +0 -0
- {ob_metaflow_extensions-1.1.170rc1 → ob_metaflow_extensions-1.1.171}/metaflow_extensions/outerbounds/plugins/snowpark/__init__.py +0 -0
- {ob_metaflow_extensions-1.1.170rc1 → ob_metaflow_extensions-1.1.171}/metaflow_extensions/outerbounds/plugins/snowpark/snowpark.py +0 -0
- {ob_metaflow_extensions-1.1.170rc1 → ob_metaflow_extensions-1.1.171}/metaflow_extensions/outerbounds/plugins/snowpark/snowpark_cli.py +0 -0
- {ob_metaflow_extensions-1.1.170rc1 → ob_metaflow_extensions-1.1.171}/metaflow_extensions/outerbounds/plugins/snowpark/snowpark_client.py +0 -0
- {ob_metaflow_extensions-1.1.170rc1 → ob_metaflow_extensions-1.1.171}/metaflow_extensions/outerbounds/plugins/snowpark/snowpark_decorator.py +0 -0
- {ob_metaflow_extensions-1.1.170rc1 → ob_metaflow_extensions-1.1.171}/metaflow_extensions/outerbounds/plugins/snowpark/snowpark_exceptions.py +0 -0
- {ob_metaflow_extensions-1.1.170rc1 → ob_metaflow_extensions-1.1.171}/metaflow_extensions/outerbounds/plugins/snowpark/snowpark_job.py +0 -0
- {ob_metaflow_extensions-1.1.170rc1 → ob_metaflow_extensions-1.1.171}/metaflow_extensions/outerbounds/plugins/snowpark/snowpark_service_spec.py +0 -0
- {ob_metaflow_extensions-1.1.170rc1 → ob_metaflow_extensions-1.1.171}/metaflow_extensions/outerbounds/plugins/tensorboard/__init__.py +0 -0
- {ob_metaflow_extensions-1.1.170rc1 → ob_metaflow_extensions-1.1.171}/metaflow_extensions/outerbounds/plugins/torchtune/__init__.py +0 -0
- {ob_metaflow_extensions-1.1.170rc1 → ob_metaflow_extensions-1.1.171}/metaflow_extensions/outerbounds/plugins/vllm/__init__.py +0 -0
- {ob_metaflow_extensions-1.1.170rc1 → ob_metaflow_extensions-1.1.171}/metaflow_extensions/outerbounds/plugins/vllm/constants.py +0 -0
- {ob_metaflow_extensions-1.1.170rc1 → ob_metaflow_extensions-1.1.171}/metaflow_extensions/outerbounds/plugins/vllm/exceptions.py +0 -0
- {ob_metaflow_extensions-1.1.170rc1 → ob_metaflow_extensions-1.1.171}/metaflow_extensions/outerbounds/plugins/vllm/status_card.py +0 -0
- {ob_metaflow_extensions-1.1.170rc1 → ob_metaflow_extensions-1.1.171}/metaflow_extensions/outerbounds/plugins/vllm/vllm_manager.py +0 -0
- {ob_metaflow_extensions-1.1.170rc1 → ob_metaflow_extensions-1.1.171}/metaflow_extensions/outerbounds/profilers/__init__.py +0 -0
- {ob_metaflow_extensions-1.1.170rc1 → ob_metaflow_extensions-1.1.171}/metaflow_extensions/outerbounds/profilers/gpu.py +0 -0
- {ob_metaflow_extensions-1.1.170rc1 → ob_metaflow_extensions-1.1.171}/metaflow_extensions/outerbounds/remote_config.py +0 -0
- {ob_metaflow_extensions-1.1.170rc1 → ob_metaflow_extensions-1.1.171}/metaflow_extensions/outerbounds/toplevel/__init__.py +0 -0
- {ob_metaflow_extensions-1.1.170rc1 → ob_metaflow_extensions-1.1.171}/metaflow_extensions/outerbounds/toplevel/global_aliases_for_metaflow_package.py +0 -0
- {ob_metaflow_extensions-1.1.170rc1 → ob_metaflow_extensions-1.1.171}/metaflow_extensions/outerbounds/toplevel/plugins/azure/__init__.py +0 -0
- {ob_metaflow_extensions-1.1.170rc1 → ob_metaflow_extensions-1.1.171}/metaflow_extensions/outerbounds/toplevel/plugins/gcp/__init__.py +0 -0
- {ob_metaflow_extensions-1.1.170rc1 → ob_metaflow_extensions-1.1.171}/metaflow_extensions/outerbounds/toplevel/plugins/kubernetes/__init__.py +0 -0
- {ob_metaflow_extensions-1.1.170rc1 → ob_metaflow_extensions-1.1.171}/metaflow_extensions/outerbounds/toplevel/plugins/ollama/__init__.py +0 -0
- {ob_metaflow_extensions-1.1.170rc1 → ob_metaflow_extensions-1.1.171}/metaflow_extensions/outerbounds/toplevel/plugins/snowflake/__init__.py +0 -0
- {ob_metaflow_extensions-1.1.170rc1 → ob_metaflow_extensions-1.1.171}/metaflow_extensions/outerbounds/toplevel/plugins/torchtune/__init__.py +0 -0
- {ob_metaflow_extensions-1.1.170rc1 → ob_metaflow_extensions-1.1.171}/metaflow_extensions/outerbounds/toplevel/plugins/vllm/__init__.py +0 -0
- {ob_metaflow_extensions-1.1.170rc1 → ob_metaflow_extensions-1.1.171}/ob_metaflow_extensions.egg-info/dependency_links.txt +0 -0
- {ob_metaflow_extensions-1.1.170rc1 → ob_metaflow_extensions-1.1.171}/ob_metaflow_extensions.egg-info/top_level.txt +0 -0
- {ob_metaflow_extensions-1.1.170rc1 → ob_metaflow_extensions-1.1.171}/setup.cfg +0 -0
|
@@ -324,7 +324,6 @@ CLIS_DESC = [
|
|
|
324
324
|
("nvct", ".nvct.nvct_cli.cli"),
|
|
325
325
|
("fast-bakery", ".fast_bakery.fast_bakery_cli.cli"),
|
|
326
326
|
("snowpark", ".snowpark.snowpark_cli.cli"),
|
|
327
|
-
("app", ".apps.app_cli.cli"),
|
|
328
327
|
]
|
|
329
328
|
STEP_DECORATORS_DESC = [
|
|
330
329
|
("nvidia", ".nvcf.nvcf_decorator.NvcfDecorator"),
|
|
@@ -90,6 +90,7 @@ class DockerEnvironmentException(MetaflowException):
|
|
|
90
90
|
class DockerEnvironment(MetaflowEnvironment):
|
|
91
91
|
TYPE = "fast-bakery"
|
|
92
92
|
_filecache = None
|
|
93
|
+
_force_rebuild = False
|
|
93
94
|
|
|
94
95
|
def __init__(self, flow):
|
|
95
96
|
self.skipped_steps = set()
|
|
@@ -178,12 +179,20 @@ class DockerEnvironment(MetaflowEnvironment):
|
|
|
178
179
|
|
|
179
180
|
if self.skipped_steps:
|
|
180
181
|
self.delegate = CondaEnvironment(self.flow)
|
|
182
|
+
self.delegate._force_rebuild = self._force_rebuild
|
|
181
183
|
self.delegate.set_local_root(self.local_root)
|
|
182
184
|
self.delegate.validate_environment(echo, self.datastore_type)
|
|
183
185
|
self.delegate.init_environment(echo, self.skipped_steps)
|
|
184
186
|
|
|
185
187
|
def _bake(self, steps) -> Dict[str, FastBakeryApiResponse]:
|
|
186
188
|
metafile_path = get_fastbakery_metafile_path(self.local_root, self.flow.name)
|
|
189
|
+
if self._force_rebuild:
|
|
190
|
+
# clear the metafile if force rebuilding, effectively skipping the cache.
|
|
191
|
+
try:
|
|
192
|
+
os.remove(metafile_path)
|
|
193
|
+
except Exception:
|
|
194
|
+
pass
|
|
195
|
+
|
|
187
196
|
logger_lock = threading.Lock()
|
|
188
197
|
|
|
189
198
|
@cache_request(metafile_path)
|
|
@@ -201,7 +210,8 @@ class DockerEnvironment(MetaflowEnvironment):
|
|
|
201
210
|
bakery.pypi_packages(pypi_packages)
|
|
202
211
|
bakery.conda_packages(conda_packages)
|
|
203
212
|
bakery.base_image(base_image)
|
|
204
|
-
|
|
213
|
+
if self._force_rebuild:
|
|
214
|
+
bakery.ignore_cache()
|
|
205
215
|
|
|
206
216
|
with logger_lock:
|
|
207
217
|
self.logger(f"🍳 Baking [{ref}] ...")
|
|
@@ -7,7 +7,6 @@ metaflow_extensions/outerbounds/plugins/__init__.py
|
|
|
7
7
|
metaflow_extensions/outerbounds/plugins/auth_server.py
|
|
8
8
|
metaflow_extensions/outerbounds/plugins/perimeters.py
|
|
9
9
|
metaflow_extensions/outerbounds/plugins/apps/__init__.py
|
|
10
|
-
metaflow_extensions/outerbounds/plugins/apps/app_cli.py
|
|
11
10
|
metaflow_extensions/outerbounds/plugins/apps/app_utils.py
|
|
12
11
|
metaflow_extensions/outerbounds/plugins/apps/consts.py
|
|
13
12
|
metaflow_extensions/outerbounds/plugins/apps/deploy_decorator.py
|
|
@@ -23,7 +22,6 @@ metaflow_extensions/outerbounds/plugins/checkpoint_datastores/__init__.py
|
|
|
23
22
|
metaflow_extensions/outerbounds/plugins/checkpoint_datastores/coreweave.py
|
|
24
23
|
metaflow_extensions/outerbounds/plugins/checkpoint_datastores/nebius.py
|
|
25
24
|
metaflow_extensions/outerbounds/plugins/fast_bakery/__init__.py
|
|
26
|
-
metaflow_extensions/outerbounds/plugins/fast_bakery/baker.py
|
|
27
25
|
metaflow_extensions/outerbounds/plugins/fast_bakery/docker_environment.py
|
|
28
26
|
metaflow_extensions/outerbounds/plugins/fast_bakery/fast_bakery.py
|
|
29
27
|
metaflow_extensions/outerbounds/plugins/fast_bakery/fast_bakery_cli.py
|
|
@@ -2,7 +2,7 @@ from setuptools import setup, find_namespace_packages
|
|
|
2
2
|
from pathlib import Path
|
|
3
3
|
|
|
4
4
|
|
|
5
|
-
version = "1.1.
|
|
5
|
+
version = "1.1.171"
|
|
6
6
|
this_directory = Path(__file__).parent
|
|
7
7
|
long_description = (this_directory / "README.md").read_text()
|
|
8
8
|
|
|
@@ -18,6 +18,6 @@ setup(
|
|
|
18
18
|
install_requires=[
|
|
19
19
|
"boto3",
|
|
20
20
|
"kubernetes",
|
|
21
|
-
"ob-metaflow == 2.15.
|
|
21
|
+
"ob-metaflow == 2.15.18.1",
|
|
22
22
|
],
|
|
23
23
|
)
|
|
@@ -1,29 +0,0 @@
|
|
|
1
|
-
from metaflow._vendor import click
|
|
2
|
-
import os
|
|
3
|
-
|
|
4
|
-
os.environ["APPS_CLI_LOADING_IN_METAFLOW"] = "true"
|
|
5
|
-
OUTERBOUNDS_APP_CLI_AVAILABLE = True
|
|
6
|
-
|
|
7
|
-
try:
|
|
8
|
-
import outerbounds.apps.app_cli as ob_apps_cli
|
|
9
|
-
except ImportError:
|
|
10
|
-
OUTERBOUNDS_APP_CLI_AVAILABLE = False
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
if not OUTERBOUNDS_APP_CLI_AVAILABLE:
|
|
14
|
-
|
|
15
|
-
@click.group()
|
|
16
|
-
def _cli():
|
|
17
|
-
pass
|
|
18
|
-
|
|
19
|
-
@_cli.group(help="Dummy Group to append to CLI for Safety")
|
|
20
|
-
def app():
|
|
21
|
-
pass
|
|
22
|
-
|
|
23
|
-
@app.command(help="Dummy Command to append to CLI for Safety")
|
|
24
|
-
def cannot_deploy():
|
|
25
|
-
raise Exception("Outerbounds App CLI not available")
|
|
26
|
-
|
|
27
|
-
cli = _cli
|
|
28
|
-
else:
|
|
29
|
-
cli = ob_apps_cli.cli
|
ob_metaflow_extensions-1.1.170rc1/metaflow_extensions/outerbounds/plugins/fast_bakery/baker.py
DELETED
|
@@ -1,110 +0,0 @@
|
|
|
1
|
-
import threading
|
|
2
|
-
import time
|
|
3
|
-
import sys
|
|
4
|
-
from typing import Dict, Optional, Any, Callable
|
|
5
|
-
from functools import partial
|
|
6
|
-
from metaflow.exception import MetaflowException
|
|
7
|
-
from metaflow.metaflow_config import FAST_BAKERY_URL
|
|
8
|
-
|
|
9
|
-
from .fast_bakery import FastBakery, FastBakeryApiResponse, FastBakeryException
|
|
10
|
-
from .docker_environment import cache_request
|
|
11
|
-
|
|
12
|
-
BAKERY_METAFILE = ".imagebakery-cache"
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
class BakerException(MetaflowException):
|
|
16
|
-
headline = "Ran into an error while baking image"
|
|
17
|
-
|
|
18
|
-
def __init__(self, msg):
|
|
19
|
-
super(BakerException, self).__init__(msg)
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
def bake_image(
|
|
23
|
-
cache_file_path: str,
|
|
24
|
-
ref: Optional[str] = None,
|
|
25
|
-
python: Optional[str] = None,
|
|
26
|
-
pypi_packages: Optional[Dict[str, str]] = None,
|
|
27
|
-
conda_packages: Optional[Dict[str, str]] = None,
|
|
28
|
-
base_image: Optional[str] = None,
|
|
29
|
-
logger: Optional[Callable[[str], Any]] = None,
|
|
30
|
-
) -> FastBakeryApiResponse:
|
|
31
|
-
"""
|
|
32
|
-
Bakes a Docker image with the specified dependencies.
|
|
33
|
-
|
|
34
|
-
Args:
|
|
35
|
-
cache_file_path: Path to the cache file
|
|
36
|
-
ref: Reference identifier for this bake (for logging purposes)
|
|
37
|
-
python: Python version to use
|
|
38
|
-
pypi_packages: Dictionary of PyPI packages and versions
|
|
39
|
-
conda_packages: Dictionary of Conda packages and versions
|
|
40
|
-
base_image: Base Docker image to use
|
|
41
|
-
logger: Optional logger function to output progress
|
|
42
|
-
|
|
43
|
-
Returns:
|
|
44
|
-
FastBakeryApiResponse: The response from the bakery service
|
|
45
|
-
|
|
46
|
-
Raises:
|
|
47
|
-
BakerException: If the baking process fails
|
|
48
|
-
"""
|
|
49
|
-
# Default logger if none provided
|
|
50
|
-
if logger is None:
|
|
51
|
-
logger = partial(print, file=sys.stderr)
|
|
52
|
-
|
|
53
|
-
# Thread lock for logging
|
|
54
|
-
logger_lock = threading.Lock()
|
|
55
|
-
images_baked = 0
|
|
56
|
-
|
|
57
|
-
@cache_request(cache_file_path)
|
|
58
|
-
def _cached_bake(
|
|
59
|
-
ref=None,
|
|
60
|
-
python=None,
|
|
61
|
-
pypi_packages=None,
|
|
62
|
-
conda_packages=None,
|
|
63
|
-
base_image=None,
|
|
64
|
-
):
|
|
65
|
-
try:
|
|
66
|
-
bakery = FastBakery(url=FAST_BAKERY_URL)
|
|
67
|
-
bakery._reset_payload()
|
|
68
|
-
bakery.python_version(python)
|
|
69
|
-
bakery.pypi_packages(pypi_packages)
|
|
70
|
-
bakery.conda_packages(conda_packages)
|
|
71
|
-
bakery.base_image(base_image)
|
|
72
|
-
# bakery.ignore_cache()
|
|
73
|
-
|
|
74
|
-
with logger_lock:
|
|
75
|
-
logger(f"🍳 Baking [{ref}] ...")
|
|
76
|
-
logger(f" 🐍 Python: {python}")
|
|
77
|
-
|
|
78
|
-
if pypi_packages:
|
|
79
|
-
logger(f" 📦 PyPI packages:")
|
|
80
|
-
for package, version in pypi_packages.items():
|
|
81
|
-
logger(f" 🔧 {package}: {version}")
|
|
82
|
-
|
|
83
|
-
if conda_packages:
|
|
84
|
-
logger(f" 📦 Conda packages:")
|
|
85
|
-
for package, version in conda_packages.items():
|
|
86
|
-
logger(f" 🔧 {package}: {version}")
|
|
87
|
-
|
|
88
|
-
logger(f" 🏗️ Base image: {base_image}")
|
|
89
|
-
|
|
90
|
-
start_time = time.time()
|
|
91
|
-
res = bakery.bake()
|
|
92
|
-
# TODO: Get actual bake time from bakery
|
|
93
|
-
bake_time = time.time() - start_time
|
|
94
|
-
|
|
95
|
-
with logger_lock:
|
|
96
|
-
logger(f"🏁 Baked [{ref}] in {bake_time:.2f} seconds!")
|
|
97
|
-
nonlocal images_baked
|
|
98
|
-
images_baked += 1
|
|
99
|
-
return res
|
|
100
|
-
except FastBakeryException as ex:
|
|
101
|
-
raise BakerException(f"Bake [{ref}] failed: {str(ex)}")
|
|
102
|
-
|
|
103
|
-
# Call the cached bake function with the provided parameters
|
|
104
|
-
return _cached_bake(
|
|
105
|
-
ref=ref,
|
|
106
|
-
python=python,
|
|
107
|
-
pypi_packages=pypi_packages,
|
|
108
|
-
conda_packages=conda_packages,
|
|
109
|
-
base_image=base_image,
|
|
110
|
-
)
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|