mirror of
https://github.com/blw1138/Zordon.git
synced 2025-12-17 16:58:12 +00:00
Add raw args then validate for duplicate flags
This commit is contained in:
@@ -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")
|
||||
|
||||
Reference in New Issue
Block a user