MCPcopy Index your code
hub / github.com/dask/dask / Shift

Class Shift

dask/dataframe/dask_expr/_expr.py:3454–3495  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

3452
3453
3454class Shift(MapOverlap):
3455 _parameters = ["frame", "periods", "freq"]
3456 _defaults = {"periods": 1, "freq": None}
3457
3458 func = M.shift
3459 enforce_metadata = True
3460 transform_divisions = False
3461 align_dataframes = True
3462
3463 @functools.cached_property
3464 def clear_divisions(self):
3465 # TODO We can do better if freq is given, but this needs adjustments in
3466 # map_partitions
3467 return True if self._divisions()[0] is None or self.freq is not None else False
3468
3469 def _divisions(self):
3470 if self.freq is None:
3471 return self.frame.divisions
3472 divisions = _calc_maybe_new_divisions(self.frame, self.periods, self.freq)
3473 if divisions is None:
3474 divisions = (None,) * (self.frame.npartitions + 1)
3475 return divisions
3476
3477 @functools.cached_property
3478 def _meta(self):
3479 return make_meta(meta_nonempty(self.frame._meta).shift(**self.kwargs))
3480
3481 @functools.cached_property
3482 def kwargs(self):
3483 return dict(periods=self.periods, freq=self.freq)
3484
3485 def _simplify_up(self, parent, dependents):
3486 if isinstance(parent, Projection):
3487 return plain_column_projection(self, parent, dependents)
3488
3489 @property
3490 def before(self):
3491 return max(0, self.periods)
3492
3493 @property
3494 def after(self):
3495 return 0 if self.periods > 0 else -self.periods
3496
3497
3498class ShiftIndex(Blockwise):

Callers 1

shiftMethod · 0.90

Calls

no outgoing calls

Tested by

no test coverage detected

Used in the wild real call sites across dependent graphs

searching dependent graphs…