MCPcopy
hub / github.com/dask/dask / add

Method add

dask/rewrite.py:256–281  ·  view source on GitHub ↗

Add a rule to the RuleSet. Parameters ---------- rule : RewriteRule

(self, rule)

Source from the content-addressed store, hash-verified

254 self.add(p)
255
256 def add(self, rule):
257 """Add a rule to the RuleSet.
258
259 Parameters
260 ----------
261 rule : RewriteRule
262 """
263
264 if not isinstance(rule, RewriteRule):
265 raise TypeError("rule must be instance of RewriteRule")
266 vars = rule.vars
267 curr_node = self._net
268 ind = len(self.rules)
269 # List of variables, in order they appear in the POT of the term
270 for t in Traverser(rule.lhs):
271 prev_node = curr_node
272 if t in vars:
273 t = VAR
274 if t in curr_node.edges:
275 curr_node = curr_node.edges[t]
276 else:
277 curr_node.edges[t] = Node()
278 curr_node = curr_node.edges[t]
279 # We've reached a leaf node. Add the term index to this leaf.
280 prev_node.edges[t].patterns.append(ind)
281 self.rules.append(rule)
282
283 def iter_matches(self, term):
284 """A generator that lazily finds matchings for term from the RuleSet.

Callers 15

__init__Method · 0.95
collectFunction · 0.45
to_graphvizFunction · 0.45
_to_cytoscape_jsonFunction · 0.45
_toposortFunction · 0.45
cullMethod · 0.45
from_collectionsMethod · 0.45
orderFunction · 0.45
add_to_resultFunction · 0.45
process_runnablesFunction · 0.45
_connecting_to_rootsFunction · 0.45

Calls 2

TraverserClass · 0.85
NodeClass · 0.85

Tested by

no test coverage detected