MCPcopy Create free account
hub / github.com/dask/dask / lower_once

Method lower_once

dask/_expr.py:468–500  ·  view source on GitHub ↗
(self, lowered: dict)

Source from the content-addressed store, hash-verified

466 return
467
468 def lower_once(self, lowered: dict):
469 # Check for a cached result
470 try:
471 return lowered[self._name]
472 except KeyError:
473 pass
474
475 expr = self
476
477 # Lower this node
478 out = expr._lower()
479 if out is None:
480 out = expr
481 if not isinstance(out, Expr):
482 return out
483
484 # Lower all children
485 new_operands = []
486 changed = False
487 for operand in out.operands:
488 if isinstance(operand, Expr):
489 new = operand.lower_once(lowered)
490 if new._name != operand._name:
491 changed = True
492 else:
493 new = operand
494 new_operands.append(new)
495
496 if changed:
497 out = type(out)(*new_operands)
498
499 # Cache the result and return
500 return lowered.setdefault(self._name, out)
501
502 def lower_completely(self) -> Expr:
503 """Lower an expression completely

Callers 1

lower_completelyMethod · 0.45

Calls 1

_lowerMethod · 0.45

Tested by

no test coverage detected