Traverse expression tree, collect layers Subclasses generally do not want to override this method unless custom logic is required to treat (e.g. ignore) specific operands during graph generation. See also -------- Expr._layer Expr._task
(self)
| 552 | return {} |
| 553 | |
| 554 | def __dask_graph__(self): |
| 555 | """Traverse expression tree, collect layers |
| 556 | |
| 557 | Subclasses generally do not want to override this method unless custom |
| 558 | logic is required to treat (e.g. ignore) specific operands during graph |
| 559 | generation. |
| 560 | |
| 561 | See also |
| 562 | -------- |
| 563 | Expr._layer |
| 564 | Expr._task |
| 565 | """ |
| 566 | stack = [self] |
| 567 | seen = set() |
| 568 | layers = [] |
| 569 | while stack: |
| 570 | expr = stack.pop() |
| 571 | |
| 572 | if expr._name in seen: |
| 573 | continue |
| 574 | seen.add(expr._name) |
| 575 | |
| 576 | layers.append(expr._layer()) |
| 577 | for operand in expr.dependencies(): |
| 578 | stack.append(operand) |
| 579 | |
| 580 | return toolz.merge(layers) |
| 581 | |
| 582 | @property |
| 583 | def dask(self): |
no test coverage detected