예제 #1
0
파일: state.py 프로젝트: fakegit/Gooey
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
    )
예제 #2
0
파일: state.py 프로젝트: fakegit/Gooey
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]))
예제 #3
0
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)
예제 #4
0
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
        ]))
예제 #5
0
파일: state.py 프로젝트: fakegit/Gooey
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]))
예제 #6
0
파일: state.py 프로젝트: fakegit/Gooey
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]))
예제 #7
0
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)
예제 #8
0
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
        ]))
예제 #9
0
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)
예제 #10
0
 def isValid(self):
     states = [widget.getValue() for widget in self.reifiedWidgets]
     return not any(compact([state['error'] for state in states]))
예제 #11
0
파일: config.py 프로젝트: arunkgupta/Gooey
 def isValid(self):
     states = [widget.getValue() for widget in self.reifiedWidgets]
     return not any(compact([state['error'] for state in states]))