Skip to content

Commit f9bbc2e

Browse files
committed
override spec parser
1 parent e49b7b2 commit f9bbc2e

File tree

1 file changed

+16
-0
lines changed

1 file changed

+16
-0
lines changed

metaflow/plugins/kubernetes/kubernetes_decorator.py

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -400,6 +400,22 @@ def _save_package_once(cls, flow_datastore, package):
400400
[package.blob], len_hint=1
401401
)[0]
402402

403+
@classmethod
404+
def _parse_decorator_spec(cls, deco_spec: str):
405+
if not deco_spec:
406+
return cls()
407+
408+
valid_options = "|".join(cls.defaults.keys())
409+
deco_spec_parts = []
410+
for part in re.split(f""",(?=[\s\w]+[{valid_options}]=)""", deco_spec):
411+
name, val = part.split("=", 1)
412+
if name in {"labels", "node_selector"}:
413+
both = name == "node_selector"
414+
val = json.dumps(cls.parse_kube_keyvalue_list(val.split(","), both))
415+
deco_spec_parts.append("=".join([name, val]))
416+
deco_spec_parsed = ",".join(deco_spec_parts)
417+
return super()._parse_decorator_spec(deco_spec_parsed)
418+
403419
@staticmethod
404420
def parse_kube_keyvalue_list(items: List[str], requires_both: bool = True):
405421
try:

0 commit comments

Comments
 (0)