Skip to content
Snippets Groups Projects
Commit 8061e33a authored by Patrick Godwin's avatar Patrick Godwin
Browse files

address issue in accessing wrong property in Option/Argument for dependencies

parent 5caf6ace
No related branches found
No related tags found
No related merge requests found
......@@ -314,9 +314,7 @@ class Node:
"""
assert isinstance(self.inputs, list)
return list(
itertools.chain(
*[input_.argument for input_ in self.inputs if input_.track]
)
itertools.chain(*[input_.args() for input_ in self.inputs if input_.track])
)
@property
......@@ -330,7 +328,5 @@ class Node:
"""
assert isinstance(self.outputs, list)
return list(
itertools.chain(
*[output.argument for output in self.outputs if output.track]
)
itertools.chain(*[output.args() for output in self.outputs if output.track])
)
......@@ -82,34 +82,36 @@ class Argument:
self.suppress = True
@property
def arg_basename(self) -> List[str]:
def _arg_basename(self) -> List[str]:
return [os.path.basename(arg) for arg in self._args]
def args(self) -> List[str]:
return self._args
def vars(self, basename: Union[bool, Callable[[str], bool]] = False) -> str:
assert isinstance(self.argument, list)
if callable(basename):
# if basename is a function, determine whether the argument's
# basename should be used based on calling basename(argument)
args = []
for arg in self.argument:
for arg in self._args:
if basename(arg):
args.append(os.path.basename(arg))
else:
args.append(arg)
return " ".join(args)
elif basename:
return " ".join(self.arg_basename)
return " ".join(self._arg_basename)
else:
return " ".join(self.argument)
return " ".join(self._args)
def files(self, basename: bool = False) -> str:
return ",".join(self.arg_basename) if basename else ",".join(self._args)
return ",".join(self._arg_basename) if basename else ",".join(self._args)
def remaps(self) -> str:
return ";".join(
[
f"{base}={arg}"
for base, arg in zip(self.arg_basename, self._args)
for base, arg in zip(self._arg_basename, self._args)
if base != arg
]
)
......@@ -193,36 +195,38 @@ class Option:
self.suppress = True
@property
def arg_basename(self) -> List[str]:
def _arg_basename(self) -> List[str]:
return [os.path.basename(arg) for arg in self._args]
def args(self) -> List[str]:
return self._args
def vars(self, basename: Union[bool, Callable[[str], bool]] = False) -> str:
assert isinstance(self.argument, list)
if self.argument is None:
return f"--{self.name}"
elif callable(basename):
# if basename is a function, determine whether the argument's
# basename should be used based on calling basename(argument)
args = []
for arg in self.argument:
for arg in self._args:
if basename(arg):
args.append(f"--{self.name} {os.path.basename(arg)}")
else:
args.append(f"--{self.name} {arg}")
return " ".join(args)
elif basename:
return " ".join([f"--{self.name} {arg}" for arg in self.arg_basename])
return " ".join([f"--{self.name} {arg}" for arg in self._arg_basename])
else:
return " ".join([f"--{self.name} {arg}" for arg in self._args])
def files(self, basename: bool = False) -> str:
return ",".join(self.arg_basename) if basename else ",".join(self._args)
return ",".join(self._arg_basename) if basename else ",".join(self._args)
def remaps(self) -> str:
return ";".join(
[
f"{base}={arg}"
for base, arg in zip(self.arg_basename, self._args)
for base, arg in zip(self._arg_basename, self._args)
if base != arg
]
)
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