def cli_pieces(state: FullGooeyState, formatter=formatArgument) -> CommandPieces: parserName = state['subcommands'][state['activeSelection']] parserSpec = state['widgets'][parserName] formState = state['forms'][parserName] subcommand = parserSpec['command'] if parserSpec['command'] != '::gooey/default' else '' items = enrichValue(formState, widgets(parserSpec)) positional_args = [formatter(item) for item in positional(items)] # type: ignore optional_args = [formatter(item) for item in optional(items)] # type: ignore ignoreFlag = '' if state['suppress_gooey_flag'] else '--ignore-gooey' return CommandPieces( target=state['target'], subcommand=subcommand, positionals=compact(positional_args), optionals=compact(optional_args), ignoreFlag=ignoreFlag )
def buildInvocationCmd(state: FullGooeyState): pieces = cli_pieces(state) return u' '.join(compact([ pieces.target, pieces.subcommand, *pieces.optionals, pieces.ignoreFlag, '--' if pieces.positionals else '', *pieces.positionals]))
def buildCliString(target, cmd, positional, optional): positionals = deepcopy(positional) if positionals: positionals.insert(0, "--") cmd_string = ' '.join(compact(chain(optional, positionals))) if cmd != '::gooey/default': cmd_string = u'{} {}'.format(cmd, cmd_string) return u'{} --ignore-gooey {}'.format(target, cmd_string)
def formValidationCmd(target: str, subCommand: str, positionals: List[FieldValue], optionals: List[FieldValue]) -> str: positional_args = [cmdOrPlaceholderOrNone(x) for x in positionals] optional_args = [cmdOrPlaceholderOrNone(x) for x in optionals] command = subCommand if not subCommand == '::gooey/default' else '' return u' '.join( compact([ target, command, *optional_args, '--gooey-validate-form', '--' if positional_args else '', *positional_args ]))
def buildOnCompleteCmd(state: FullGooeyState, was_success: bool): pieces = cli_pieces(state) serializedForm = json.dumps({'active_form': activeFormState(state)}) b64ecoded = b64encode(serializedForm.encode('utf-8')) return u' '.join(compact([ pieces.target, pieces.subcommand, *pieces.optionals, '--gooey-state ' + b64ecoded.decode('utf-8'), '--gooey-run-is-success' if was_success else '--gooey-run-is-failure', '--' if pieces.positionals else '', *pieces.positionals]))
def buildFormValidationCmd(state: FullGooeyState): pieces = cli_pieces(state, formatter=cmdOrPlaceholderOrNone) serializedForm = json.dumps({'active_form': activeFormState(state)}) b64ecoded = b64encode(serializedForm.encode('utf-8')) return ' '.join(compact([ pieces.target, pieces.subcommand, *pieces.optionals, '--gooey-validate-form', '--gooey-state ' + b64ecoded.decode('utf-8'), '--' if pieces.positionals else '', *pieces.positionals]))
def buildCliString(target, cmd, positional, optional, suppress_gooey_flag=False): positionals = deepcopy(positional) if positionals: positionals.insert(0, "--") cmd_string = ' '.join(compact(chain(optional, positionals))) if cmd != '::gooey/default': cmd_string = u'{} {}'.format(cmd, cmd_string) ignore_flag = '' if suppress_gooey_flag else '--ignore-gooey' return u'{} {} {}'.format(target, ignore_flag, cmd_string)
def cliCmd(target: str, subCommand: str, positionals: List[FieldValue], optionals: List[FieldValue], suppress_gooey_flag=False) -> str: positional_args = [arg['cmd'] for arg in positionals] optional_args = [arg['cmd'] for arg in optionals] command = subCommand if not subCommand == '::gooey/default' else '' ignore_flag = '' if suppress_gooey_flag else '--ignore-gooey' return u' '.join( compact([ target, command, *optional_args, ignore_flag, '--' if positional_args else '', *positional_args ]))
def buildCliString(target, subCommand, positional, optional, suppress_gooey_flag=False): positionals = deepcopy(positional) if positionals: positionals.insert(0, "--") arguments = ' '.join(compact(chain(optional, positionals))) if subCommand != '::gooey/default': arguments = u'{} {}'.format(subCommand, arguments) ignore_flag = '' if suppress_gooey_flag else '--ignore-gooey' return u'{} {} {}'.format(target, ignore_flag, arguments)
def isValid(self): states = [widget.getValue() for widget in self.reifiedWidgets] return not any(compact([state['error'] for state in states]))
def isValid(self): states = [widget.getValue() for widget in self.reifiedWidgets] return not any(compact([state['error'] for state in states]))