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
def _flag_vals(row): return [flag_util.decode_flag_val(s) for s in row]
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])
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]