Skip to content
Snippets Groups Projects
Commit 6009d214 authored by Thomas Kluyver's avatar Thomas Kluyver
Browse files

Use string.Formatter.parse to get variables from path template

parent 7e4e9250
No related branches found
No related tags found
1 merge request!554Simplify handling of user notebook paths
...@@ -9,6 +9,7 @@ import os ...@@ -9,6 +9,7 @@ import os
import pprint import pprint
import re import re
import stat import stat
import string
import sys import sys
import textwrap import textwrap
import warnings import warnings
...@@ -402,10 +403,8 @@ def make_extended_parser() -> argparse.ArgumentParser: ...@@ -402,10 +403,8 @@ def make_extended_parser() -> argparse.ArgumentParser:
# Pulls out the variables in the templated path string, so that they # Pulls out the variables in the templated path string, so that they
# can be added to the argument parser # can be added to the argument parser
user_notebook_variables = [ user_notebook_variables = [
k.value.id name for (_, name, _, _) in string.Formatter().parse(user_notebook_path)
for k if name is not None
in ast.walk(ast.parse(f"f'{user_notebook_path}'"))
if isinstance(k, ast.FormattedValue)
] ]
user_notebook_parser = argparse.ArgumentParser() user_notebook_parser = argparse.ArgumentParser()
...@@ -417,7 +416,7 @@ def make_extended_parser() -> argparse.ArgumentParser: ...@@ -417,7 +416,7 @@ def make_extended_parser() -> argparse.ArgumentParser:
args=list(filter(lambda x: x != "-h", _)) # Drop help from args args=list(filter(lambda x: x != "-h", _)) # Drop help from args
) )
nb_info["notebook"] = nb_info["user"]["notebook"].format(**vars(user_notebook_args)) nb_info["notebook"] = user_notebook_path.format(**vars(user_notebook_args))
notebook = nb_info["notebook"] notebook = nb_info["notebook"]
cvar = nb_info.get("concurrency", {}).get("parameter", None) cvar = nb_info.get("concurrency", {}).get("parameter", None)
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment