예제 #1
0
def parse_stream_pddl(pddl_list,
                      stream_procedures,
                      stream_info={},
                      unit_costs=False,
                      unit_efforts=False):
    externals = []
    if pddl_list is None:
        return externals
    if isinstance(pddl_list, str):
        pddl_list = [pddl_list]
    #if all(isinstance(e, External) for e in stream_pddl):
    #    return stream_pddl
    if stream_procedures != DEBUG:
        stream_procedures = {
            k.lower(): v
            for k, v in stream_procedures.items()
        }
    stream_info = {k.lower(): v for k, v in stream_info.items()}
    rules = []
    for pddl in pddl_list:
        # TODO: check which functions are actually used and prune the rest
        parse_streams(externals,
                      rules,
                      pddl,
                      stream_procedures,
                      stream_info,
                      use_functions=not unit_costs)
    apply_rules_to_streams(rules, externals)
    if unit_efforts:
        set_unit_efforts(externals)
    return externals
예제 #2
0
def parse_stream_pddl(stream_pddl,
                      stream_map,
                      stream_info={},
                      unit_costs=False,
                      unit_efforts=False):
    externals = []
    if stream_pddl is None:
        return externals  # No streams
    if isinstance(stream_pddl, str):
        stream_pddl = [stream_pddl]
    if all(isinstance(e, External) for e in stream_pddl):
        return stream_pddl
    if stream_map != DEBUG:
        stream_map = {k.lower(): v for k, v in stream_map.items()}
    stream_info = {k.lower(): v for k, v in stream_info.items()}
    rules = []
    for pddl in stream_pddl:
        # TODO: check which functions are actually used and prune the rest
        parse_streams(externals,
                      rules,
                      pddl,
                      stream_map,
                      stream_info,
                      use_functions=not unit_costs)
    apply_rules_to_streams(rules, externals)
    if unit_efforts:
        set_unit_efforts(externals)
    return externals
예제 #3
0
def parse_stream_pddl(pddl_list, stream_procedures, stream_info={}, unit_efforts=False):
    externals = []
    if pddl_list is None:
        return externals
    if isinstance(pddl_list, str):
        pddl_list = [pddl_list]
    #if all(isinstance(e, External) for e in stream_pddl):
    #    return stream_pddl
    if stream_procedures != DEBUG:
        stream_procedures = {k.lower(): v for k, v in stream_procedures.items()}
    stream_info = {k.lower(): v for k, v in stream_info.items()}
    rules = []
    for pddl in pddl_list:
        parse_streams(externals, rules, pddl, stream_procedures, stream_info)
    apply_rules_to_streams(rules, externals)
    set_unit_efforts(externals, unit_efforts)
    return externals