outerbounds 0.3.62__py3-none-any.whl → 0.3.64__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.
- outerbounds/command_groups/local_setup_cli.py +33 -15
- outerbounds/utils/metaflowconfig.py +0 -1
- {outerbounds-0.3.62.dist-info → outerbounds-0.3.64.dist-info}/METADATA +4 -4
- {outerbounds-0.3.62.dist-info → outerbounds-0.3.64.dist-info}/RECORD +6 -6
- {outerbounds-0.3.62.dist-info → outerbounds-0.3.64.dist-info}/WHEEL +0 -0
- {outerbounds-0.3.62.dist-info → outerbounds-0.3.64.dist-info}/entry_points.txt +0 -0
@@ -30,7 +30,8 @@ the Outerbounds platform.
|
|
30
30
|
To remove that package, please try `python -m pip uninstall metaflow -y` or reach out to Outerbounds support.
|
31
31
|
After uninstalling the Metaflow package, please reinstall the Outerbounds package using `python -m pip
|
32
32
|
install outerbounds --force`.
|
33
|
-
As always, please reach out to Outerbounds support for any questions.
|
33
|
+
As always, please reach out to Outerbounds support for any questions.
|
34
|
+
"""
|
34
35
|
|
35
36
|
MISSING_EXTENSIONS_MESSAGE = (
|
36
37
|
"The Outerbounds Platform extensions for Metaflow was not found."
|
@@ -55,11 +56,11 @@ class Narrator:
|
|
55
56
|
|
56
57
|
def section_ok(self):
|
57
58
|
if not self.verbose:
|
58
|
-
click.secho("\
|
59
|
+
click.secho("\U00002705", err=True)
|
59
60
|
|
60
61
|
def section_not_ok(self):
|
61
62
|
if not self.verbose:
|
62
|
-
click.secho("\
|
63
|
+
click.secho("\U0000274C", err=True)
|
63
64
|
|
64
65
|
def announce_check(self, name):
|
65
66
|
if self.verbose:
|
@@ -233,17 +234,9 @@ class ConfigEntrySpec:
|
|
233
234
|
self.expected = expected
|
234
235
|
|
235
236
|
|
236
|
-
def get_config_specs():
|
237
|
-
|
238
|
-
ConfigEntrySpec(
|
239
|
-
"METAFLOW_DATASTORE_SYSROOT_S3",
|
240
|
-
r"s3://[a-z0-9\-]+/metaflow(-[a-z0-9\-]+)?[/]?",
|
241
|
-
),
|
242
|
-
ConfigEntrySpec(
|
243
|
-
"METAFLOW_DATATOOLS_S3ROOT", r"s3://[a-z0-9\-]+/data(-[a-z0-9\-]+)?[/]?"
|
244
|
-
),
|
237
|
+
def get_config_specs(default_datastore: str):
|
238
|
+
spec = [
|
245
239
|
ConfigEntrySpec("METAFLOW_DEFAULT_AWS_CLIENT_PROVIDER", "obp", expected="obp"),
|
246
|
-
ConfigEntrySpec("METAFLOW_DEFAULT_DATASTORE", "s3", expected="s3"),
|
247
240
|
ConfigEntrySpec("METAFLOW_DEFAULT_METADATA", "service", expected="service"),
|
248
241
|
ConfigEntrySpec("METAFLOW_KUBERNETES_NAMESPACE", r"jobs-.*"),
|
249
242
|
ConfigEntrySpec("METAFLOW_KUBERNETES_SANDBOX_INIT_SCRIPT", r"eval \$\(.*"),
|
@@ -253,6 +246,21 @@ def get_config_specs():
|
|
253
246
|
ConfigEntrySpec("OBP_AUTH_SERVER", r"auth\..*"),
|
254
247
|
]
|
255
248
|
|
249
|
+
if default_datastore == "s3":
|
250
|
+
spec.extend(
|
251
|
+
[
|
252
|
+
ConfigEntrySpec(
|
253
|
+
"METAFLOW_DATASTORE_SYSROOT_S3",
|
254
|
+
r"s3://[a-z0-9\-]+/metaflow(-[a-z0-9\-]+)?[/]?",
|
255
|
+
),
|
256
|
+
ConfigEntrySpec(
|
257
|
+
"METAFLOW_DATATOOLS_S3ROOT",
|
258
|
+
r"s3://[a-z0-9\-]+/data(-[a-z0-9\-]+)?[/]?",
|
259
|
+
),
|
260
|
+
]
|
261
|
+
)
|
262
|
+
return spec
|
263
|
+
|
256
264
|
|
257
265
|
def check_metaflow_config(narrator: Narrator) -> CommandStatus:
|
258
266
|
narrator.announce_section("local Metaflow config")
|
@@ -269,7 +277,14 @@ def check_metaflow_config(narrator: Narrator) -> CommandStatus:
|
|
269
277
|
)
|
270
278
|
|
271
279
|
config = metaflowconfig.init_config(config_dir, profile)
|
272
|
-
|
280
|
+
|
281
|
+
if "OBP_METAFLOW_CONFIG_URL" in config:
|
282
|
+
# If the config is fetched from a remote source, not much to check
|
283
|
+
narrator.announce_check("config entry OBP_METAFLOW_CONFIG_URL")
|
284
|
+
narrator.ok()
|
285
|
+
return check_status
|
286
|
+
|
287
|
+
for spec in get_config_specs(config.get("METAFLOW_DEFAULT_DATASTORE", "")):
|
273
288
|
narrator.announce_check("config entry " + spec.name)
|
274
289
|
if spec.name not in config:
|
275
290
|
reason = "Missing"
|
@@ -621,6 +636,7 @@ class ConfigurationWriter:
|
|
621
636
|
self.decoded_config = deserialize(self.encoded_config)
|
622
637
|
|
623
638
|
def process_decoded_config(self):
|
639
|
+
assert self.decoded_config is not None
|
624
640
|
config_type = self.decoded_config.get("OB_CONFIG_TYPE", "inline")
|
625
641
|
if config_type == "inline":
|
626
642
|
if "OBP_PERIMETER" in self.decoded_config:
|
@@ -663,6 +679,7 @@ class ConfigurationWriter:
|
|
663
679
|
return path.join(self.out_dir, "config_{}.json".format(self.profile))
|
664
680
|
|
665
681
|
def display(self):
|
682
|
+
assert self.decoded_config is not None
|
666
683
|
# Create a copy so we can use the real config later, possibly
|
667
684
|
display_config = dict()
|
668
685
|
for k in self.decoded_config.keys():
|
@@ -677,6 +694,7 @@ class ConfigurationWriter:
|
|
677
694
|
return self.confirm_overwrite_config(self.path())
|
678
695
|
|
679
696
|
def write_config(self):
|
697
|
+
assert self.decoded_config is not None
|
680
698
|
config_path = self.path()
|
681
699
|
# TODO config contains auth token - restrict file/dir modes
|
682
700
|
os.makedirs(os.path.dirname(config_path), exist_ok=True)
|
@@ -861,7 +879,7 @@ def check(no_config, verbose, output, workstation=False):
|
|
861
879
|
)
|
862
880
|
@click.argument("encoded_config", required=True)
|
863
881
|
def configure(
|
864
|
-
encoded_config
|
882
|
+
encoded_config: str, config_dir=None, profile=None, echo=None, force=False
|
865
883
|
):
|
866
884
|
writer = ConfigurationWriter(encoded_config, config_dir, profile)
|
867
885
|
try:
|
@@ -1,6 +1,6 @@
|
|
1
1
|
Metadata-Version: 2.1
|
2
2
|
Name: outerbounds
|
3
|
-
Version: 0.3.
|
3
|
+
Version: 0.3.64
|
4
4
|
Summary: More Data Science, Less Administration
|
5
5
|
License: Proprietary
|
6
6
|
Keywords: data science,machine learning,MLOps
|
@@ -23,9 +23,9 @@ Requires-Dist: click (>=8.1.3,<9.0.0)
|
|
23
23
|
Requires-Dist: google-api-core (>=2.16.1,<3.0.0) ; extra == "gcp"
|
24
24
|
Requires-Dist: google-auth (>=2.27.0,<3.0.0) ; extra == "gcp"
|
25
25
|
Requires-Dist: google-cloud-storage (>=2.14.0,<3.0.0) ; extra == "gcp"
|
26
|
-
Requires-Dist: ob-metaflow (==2.11.
|
27
|
-
Requires-Dist: ob-metaflow-extensions (==1.1.
|
28
|
-
Requires-Dist: ob-metaflow-stubs (==2
|
26
|
+
Requires-Dist: ob-metaflow (==2.11.14.1)
|
27
|
+
Requires-Dist: ob-metaflow-extensions (==1.1.55)
|
28
|
+
Requires-Dist: ob-metaflow-stubs (==3.2)
|
29
29
|
Requires-Dist: opentelemetry-distro (==0.41b0)
|
30
30
|
Requires-Dist: opentelemetry-exporter-otlp-proto-http (==1.20.0)
|
31
31
|
Requires-Dist: opentelemetry-instrumentation-requests (==0.41b0)
|
@@ -2,14 +2,14 @@ outerbounds/__init__.py,sha256=GPdaubvAYF8pOFWJ3b-sPMKCpyfpteWVMZWkmaYhxRw,32
|
|
2
2
|
outerbounds/cli_main.py,sha256=e9UMnPysmc7gbrimq2I4KfltggyU7pw59Cn9aEguVcU,74
|
3
3
|
outerbounds/command_groups/__init__.py,sha256=QPWtj5wDRTINDxVUL7XPqG3HoxHNvYOg08EnuSZB2Hc,21
|
4
4
|
outerbounds/command_groups/cli.py,sha256=H4LxcYTmsY9DQUrReSRLjvbg9s9Ro7s-eUrcMqEJ_9A,261
|
5
|
-
outerbounds/command_groups/local_setup_cli.py,sha256=
|
5
|
+
outerbounds/command_groups/local_setup_cli.py,sha256=Xqb-tsAkYgc90duC_6COSR9MsDpMNiKigQxlXUUYfN0,36530
|
6
6
|
outerbounds/command_groups/perimeters_cli.py,sha256=OxbxYQnHZDLRb3SFaVpD2mjp8W8s1fvK1Wc4htyRuGw,12757
|
7
7
|
outerbounds/command_groups/workstations_cli.py,sha256=b5lt8_g2B0zCoUoNriTRv32IPB6E4mI2sUhubDT7Yjo,21966
|
8
8
|
outerbounds/utils/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
9
9
|
outerbounds/utils/kubeconfig.py,sha256=l1mUP1j9VIq3fsffi5bJ1Nk-hYlwd1dIqkpj7DvVS1E,7936
|
10
|
-
outerbounds/utils/metaflowconfig.py,sha256=
|
10
|
+
outerbounds/utils/metaflowconfig.py,sha256=JkhT2yOGpN7t2R2p9uaUJRDJU9fqFPwn4DcojjVnJMI,3513
|
11
11
|
outerbounds/utils/schema.py,sha256=cNlgjmteLPbDzSEUSQDsq8txdhMGyezSmM83jU3aa0w,2329
|
12
|
-
outerbounds-0.3.
|
13
|
-
outerbounds-0.3.
|
14
|
-
outerbounds-0.3.
|
15
|
-
outerbounds-0.3.
|
12
|
+
outerbounds-0.3.64.dist-info/METADATA,sha256=ieuv5QbPb1GefPElS_CIPUAvMO9t6cBPHtjDbr1FF6g,1403
|
13
|
+
outerbounds-0.3.64.dist-info/entry_points.txt,sha256=7ye0281PKlvqxu15rjw60zKg2pMsXI49_A8BmGqIqBw,47
|
14
|
+
outerbounds-0.3.64.dist-info/WHEEL,sha256=vVCvjcmxuUltf8cYhJ0sJMRDLr1XsPuxEId8YDzbyCY,88
|
15
|
+
outerbounds-0.3.64.dist-info/RECORD,,
|
File without changes
|
File without changes
|