Add raw args then validate for duplicate flags

This commit is contained in:
Brett Williams
2023-05-22 15:54:56 -05:00
parent 81d5787fb0
commit 50ca036a5d
3 changed files with 22 additions and 13 deletions

View File

@@ -99,18 +99,22 @@ class BaseRenderWorker(object):
def generate_subprocess(self):
# Convert raw args from string if available and catch conflicts
cmd = self.generate_worker_subprocess()
raw_args = self.args.get('raw', None)
if raw_args:
generated_args = self.generate_worker_subprocess()
generated_args_flags = [x for x in generated_args if x.startswith('-')]
if len(generated_args_flags) != len(set(generated_args_flags)):
msg = "Cannot generate subprocess - Multiple arg conflicts detected"
logger.error(msg)
logger.debug(f"Generated args for subprocess: {generated_args}")
raise ValueError(msg)
return generated_args
def get_raw_args(self):
raw_args_string = self.args.get('raw', None)
raw_args = None
if raw_args_string:
import shlex
args_split = shlex.split(raw_args)
flags = [x for x in args_split if x.startswith('-')]
conflict = any(element in flags for element in args_split)
if conflict:
raise ValueError("Custom args conflicts set parameters")
else:
cmd.extend(args_split)
return cmd
raw_args = shlex.split(raw_args_string)
return raw_args
def generate_worker_subprocess(self):
raise NotImplementedError("generate_worker_subprocess not implemented")