src/graph_notebook/magics/parsing/replace_namespace_vars.py (18 lines of code) (raw):
import argparse
def str_to_namespace_var(key: str, local_ns: dict) -> any:
if local_ns is None:
return key
if type(key) is not str:
return key
tmp_key = key.strip()
if not (tmp_key.startswith('${') and tmp_key.endswith('}')):
return key
else:
tmp_key = tmp_key[2:-1].strip()
return key if tmp_key not in local_ns else local_ns[tmp_key]
def replace_namespace_vars(args: argparse.Namespace, local_ns: dict):
if local_ns is None or local_ns == {}:
return
for key in list(args.__dict__.keys()):
new_value = str_to_namespace_var(args.__dict__[key], local_ns)
args.__dict__[key] = new_value