MCPcopy
hub / github.com/dask/dask / _HLGExprSequence

Class _HLGExprSequence

dask/_expr.py:1086–1187  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

1084
1085
1086class _HLGExprSequence(Expr):
1087
1088 def __getitem__(self, other):
1089 return self.operands[other]
1090
1091 def _operands_for_repr(self):
1092 return [
1093 f"name={self.operand('name')!r}",
1094 f"dsk={self.operand('dsk')!r}",
1095 ]
1096
1097 def _tree_repr_lines(self, indent=0, recursive=True):
1098 return self._operands_for_repr()
1099
1100 def finalize_compute(self):
1101 return _HLGExprSequence(*[op.finalize_compute() for op in self.operands])
1102
1103 def _tune_down(self):
1104 if len(self.operands) == 1:
1105 return None
1106 from dask.highlevelgraph import HighLevelGraph
1107
1108 groups = toolz.groupby(
1109 lambda x: x.low_level_optimizer if isinstance(x, HLGExpr) else None,
1110 self.operands,
1111 )
1112 exprs = []
1113 changed = False
1114 for optimizer, group in groups.items():
1115 if len(group) > 1:
1116 graphs = [expr.hlg for expr in group]
1117
1118 changed = True
1119 dsk = HighLevelGraph.merge(*graphs)
1120 hlg_group = _HLGExprGroup(
1121 dsk=dsk,
1122 low_level_optimizer=optimizer,
1123 output_keys=[v.__dask_keys__() for v in group],
1124 postcompute=[g.postcompute for g in group],
1125 )
1126 exprs.append(hlg_group)
1127 else:
1128 exprs.append(group[0])
1129 if not changed:
1130 return None
1131 return _HLGExprSequence(*exprs)
1132
1133 @functools.cached_property
1134 def _optimized_dsk(self) -> HighLevelGraph:
1135 from dask.highlevelgraph import HighLevelGraph
1136
1137 hlgexpr: HLGExpr
1138 graphs = []
1139 # simplify_down ensure there are only one HLGExpr per optimizer/finalizer
1140 for hlgexpr in self.operands:
1141 keys = hlgexpr.__dask_keys__()
1142 dsk = hlgexpr.hlg
1143 if (optimizer := hlgexpr.low_level_optimizer) is not None:

Callers 3

finalize_computeMethod · 0.85
_tune_downMethod · 0.85
_simplify_downMethod · 0.85

Calls

no outgoing calls

Tested by

no test coverage detected

Used in the wild real call sites across dependent graphs

searching dependent graphs…