Skip to content
Snippets Groups Projects

Extended filenames as dict

Merged Rémi Cresson requested to merge 102-pythonic_ext_fname into develop
All threads resolved!
Compare and Show latest version
2 files
+ 15
15
Compare changes
  • Side-by-side
  • Inline
Files
2
+ 11
12
@@ -780,17 +780,14 @@ class App(OTBObject):
raise ValueError("Extended filename must be a str or a dict")
def _str2dict(ext_str):
"""Function that converts str to dict."""
return dict(
keyval for pair in ext_str.split("&")
if len(keyval := pair.split("=")) == 2
)
splits = [pair.split("=") for pair in ext_str.split("&")]
return dict(split for split in splits if len(split) == 2)
if isinstance(ext_fname, str):
# transform str to dict
ext_fname = _str2dict(ext_fname)
gen_ext_fname = _str2dict(ext_fname) \
if isinstance(ext_fname, str) else ext_fname
logger.debug("%s: extended filename for outputs:", self.name)
for key, ext in ext_fname.items():
logger.debug("%s: extended filename for all outputs:", self.name)
for key, ext in gen_ext_fname.items():
logger.debug("%s: %s", key, ext)
for key, filepath in kwargs.items():
@@ -798,12 +795,14 @@ class App(OTBObject):
# grab already set extended filename key/values
if "?&" in filepath:
filepath, already_set_ext = filepath.split("?&", 1)
# ext_fname prevail over extensions in filepath
ext_fname.update(_str2dict(already_set_ext))
# extensions in filepath prevail over `new_ext_fname`
new_ext_fname = gen_ext_fname.copy()
new_ext_fname.update(_str2dict(already_set_ext))
# transform dict to str
ext_fname_str = "&".join([
f"{key}={value}" for key, value in ext_fname.items()
f"{key}={value}"
for key, value in new_ext_fname.items()
])
parameters[key] = f"{filepath}?&{ext_fname_str}"
Loading