MCPcopy Create free account
hub / github.com/caelan/pddlstream / parse_streams

Function parse_streams

pddlstream/algorithms/algorithm.py:112–139  ·  view source on GitHub ↗
(streams, rules, stream_pddl, procedure_map, procedure_info, use_functions=True)

Source from the content-addressed store, hash-verified

110##################################################
111
112def parse_streams(streams, rules, stream_pddl, procedure_map, procedure_info, use_functions=True):
113 stream_iter = iter(parse_lisp(stream_pddl))
114 assert('define' == next(stream_iter))
115 pddl_type, pddl_name = next(stream_iter)
116 assert('stream' == pddl_type)
117 for lisp_list in stream_iter:
118 name = lisp_list[0] # TODO: refactor at this point
119 if name == ':stream':
120 externals = [parse_stream(lisp_list, procedure_map, procedure_info)]
121 elif name == ':rule':
122 externals = [parse_rule(lisp_list, procedure_map, procedure_info)]
123 elif name == ':function':
124 if not use_functions:
125 continue
126 externals = [parse_function(lisp_list, procedure_map, procedure_info)]
127 elif name == ':predicate': # Cannot just use args if want a bound
128 externals = [parse_predicate(lisp_list, procedure_map, procedure_info)]
129 elif name == ':optimizer':
130 externals = parse_optimizer(lisp_list, procedure_map, procedure_info)
131 else:
132 raise ValueError(name)
133 for external in externals:
134 if any(e.name == external.name for e in streams):
135 raise ValueError('Stream [{}] is not unique'.format(external.name))
136 if name == ':rule':
137 rules.append(external)
138 external.pddl_name = pddl_name # TODO: move within constructors
139 streams.append(external)
140
141def set_unit_efforts(externals):
142 for external in externals:

Callers 1

parse_stream_pddlFunction · 0.85

Calls 6

parse_lispFunction · 0.90
parse_streamFunction · 0.90
parse_ruleFunction · 0.90
parse_functionFunction · 0.90
parse_predicateFunction · 0.90
parse_optimizerFunction · 0.90

Tested by

no test coverage detected