Returns a tuple of partition lengths
| 2366 | |
| 2367 | |
| 2368 | class Lengths(Expr): |
| 2369 | """Returns a tuple of partition lengths""" |
| 2370 | |
| 2371 | _parameters = ["frame"] |
| 2372 | |
| 2373 | @functools.cached_property |
| 2374 | def _meta(self): |
| 2375 | return tuple() |
| 2376 | |
| 2377 | def _divisions(self): |
| 2378 | return (None, None) |
| 2379 | |
| 2380 | def _simplify_down(self): |
| 2381 | if isinstance(self.frame, Elemwise): |
| 2382 | child = max(self.frame.dependencies(), key=lambda expr: expr.npartitions) |
| 2383 | return Lengths(child) |
| 2384 | |
| 2385 | def _layer(self): |
| 2386 | name = f"part-{self._name}" |
| 2387 | dsk = { |
| 2388 | (name, i): (len, (self.frame._name, i)) |
| 2389 | for i in range(self.frame.npartitions) |
| 2390 | } |
| 2391 | dsk[(self._name, 0)] = (tuple, list(dsk.keys())) |
| 2392 | return dsk |
| 2393 | |
| 2394 | |
| 2395 | class ResetIndex(Elemwise): |
no outgoing calls