Returns a tuple of partition lengths
| 2350 | |
| 2351 | |
| 2352 | class Lengths(Expr): |
| 2353 | """Returns a tuple of partition lengths""" |
| 2354 | |
| 2355 | _parameters = ["frame"] |
| 2356 | |
| 2357 | @functools.cached_property |
| 2358 | def _meta(self): |
| 2359 | return tuple() |
| 2360 | |
| 2361 | def _divisions(self): |
| 2362 | return (None, None) |
| 2363 | |
| 2364 | def _simplify_down(self): |
| 2365 | if isinstance(self.frame, Elemwise): |
| 2366 | child = max(self.frame.dependencies(), key=lambda expr: expr.npartitions) |
| 2367 | return Lengths(child) |
| 2368 | |
| 2369 | def _layer(self): |
| 2370 | name = f"part-{self._name}" |
| 2371 | dsk = { |
| 2372 | (name, i): (len, (self.frame._name, i)) |
| 2373 | for i in range(self.frame.npartitions) |
| 2374 | } |
| 2375 | dsk[(self._name, 0)] = (tuple, list(dsk.keys())) |
| 2376 | return dsk |
| 2377 | |
| 2378 | |
| 2379 | class ResetIndex(Elemwise): |
no outgoing calls