示例#1
0
def args_to_flags(args):
    """Returns `flags, other_args` for `args`.

    `other_args` is a list of args that cannot be converted to flag
    values.

    If args contains `--` then all args before the last occuring `--`
    are included in `other_args`.
    """
    flags = {}
    args, other_args = split_args_for_flags(args)
    name = None
    for arg in args:
        if arg[:2] == "--":
            name = arg[2:]
            flags[name] = True
        elif arg[:1] == "-":
            val = flag_util.decode_flag_val(arg)
            if isinstance(val, (int, float)):
                flags[name] = val
            elif len(arg) == 2:
                name = arg[1]
                flags[name] = True
            elif len(arg) > 2:
                name = None
                flags[arg[1]] = arg[2:]
        elif name is not None:
            flags[name] = flag_util.decode_flag_val(arg)
            name = None
        else:
            other_args.append(arg)
    return flags, other_args
示例#2
0
def _flag_vals(row):
    return [flag_util.decode_flag_val(s) for s in row]
示例#3
0
def parse_flag_arg(arg):
    parts = arg.split("=", 1)
    if len(parts) == 1:
        raise ArgValueError(arg)
    else:
        return parts[0], flag_util.decode_flag_val(parts[1])
示例#4
0
    def _split_encoded_list(encoded, split_spec):
        from guild import flag_util

        split_val = flag_util.split_encoded_flag_val(encoded, split_spec)
        return [flag_util.decode_flag_val(part) for part in split_val]