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