def _parse()

in cstar/command.py [0:0]


def _parse(command_name, filename, definition):
    """Parses a command"""
    cluster_parallel = None
    dc_parallel = None
    description = None
    strategy = "topology"
    arguments = []

    truth_lookup = {"true": True, "false": False}

    for line in definition.split('\n'):

        if not line or line[0] != "#":
            break

        match = _property_re.match(line)
        if match:
            name = match.group(1)
            value = match.group(2)
            if name == "cluster-parallel":
                cluster_parallel = truth_lookup[value.lower()]
            elif name == "dc-parallel":
                dc_parallel = truth_lookup[value.lower()]
            elif name == "description":
                description = value
            elif name == "strategy":
                strategy = value
            elif name == "argument":
                arguments.append(Argument(**json.loads(value)))
            else:
                warn("Ignoring unknown property %s while parsing %s" % (name, filename))

    return Command(name=command_name, file=filename,
                   cluster_parallel=cluster_parallel,
                   dc_parallel=dc_parallel,
                   description=description,
                   strategy=strategy,
                   arguments=arguments)