(stream_pddl, stream_map, stream_info={}, unit_costs=False, unit_efforts=False)
| 148 | STATISTICS_INFO = 'statistics_info' |
| 149 | |
| 150 | def parse_stream_pddl(stream_pddl, stream_map, stream_info={}, unit_costs=False, unit_efforts=False): |
| 151 | if stream_info is None: # NO_INFO |
| 152 | stream_info = {} |
| 153 | externals = [] |
| 154 | if stream_pddl is None: |
| 155 | return externals # No streams |
| 156 | if isinstance(stream_pddl, str): |
| 157 | stream_pddl = [stream_pddl] |
| 158 | if all(isinstance(e, External) for e in stream_pddl): |
| 159 | return stream_pddl |
| 160 | if isinstance(stream_map, dict): # DEBUG_MODES |
| 161 | stream_map = {k.lower(): v for k, v in stream_map.items()} |
| 162 | stream_info = {k.lower(): v for k, v in stream_info.items()} |
| 163 | rules = [] |
| 164 | for pddl in stream_pddl: |
| 165 | # TODO: check which functions are actually used and prune the rest |
| 166 | parse_streams(externals, rules, pddl, stream_map, stream_info, use_functions=not unit_costs) |
| 167 | apply_rules_to_streams(rules, externals) |
| 168 | if unit_efforts: |
| 169 | set_unit_efforts(externals) |
| 170 | return externals |
| 171 | |
| 172 | ################################################## |
| 173 |
no test coverage detected