| 942 | |
| 943 | |
| 944 | class MapOverlap(MapPartitions): |
| 945 | _parameters = [ |
| 946 | "frame", |
| 947 | "func", |
| 948 | "before", |
| 949 | "after", |
| 950 | "meta", |
| 951 | "enforce_metadata", |
| 952 | "transform_divisions", |
| 953 | "clear_divisions", |
| 954 | "align_dataframes", |
| 955 | "token", |
| 956 | "kwargs", |
| 957 | ] |
| 958 | _defaults: dict = { |
| 959 | "meta": None, |
| 960 | "enforce_metadata": True, |
| 961 | "transform_divisions": True, |
| 962 | "kwargs": None, |
| 963 | "clear_divisions": False, |
| 964 | "align_dataframes": False, |
| 965 | "token": None, |
| 966 | } |
| 967 | |
| 968 | @functools.cached_property |
| 969 | def _kwargs(self) -> dict: |
| 970 | kwargs = self.kwargs |
| 971 | if kwargs is None: |
| 972 | kwargs = {} |
| 973 | return kwargs |
| 974 | |
| 975 | @property |
| 976 | def args(self): |
| 977 | return ( |
| 978 | [self.frame] |
| 979 | + [self.func, self.before, self.after] |
| 980 | + self.operands[len(self._parameters) :] |
| 981 | ) |
| 982 | |
| 983 | @functools.cached_property |
| 984 | def _meta(self): |
| 985 | meta = self.operand("meta") |
| 986 | args = [self.frame._meta] + [ |
| 987 | arg._meta if isinstance(arg, Expr) else arg |
| 988 | for arg in self.operands[len(self._parameters) :] |
| 989 | ] |
| 990 | return _get_meta_map_partitions( |
| 991 | args, |
| 992 | [self.dependencies()[0]], |
| 993 | self.func, |
| 994 | self.kwargs, |
| 995 | meta, |
| 996 | self.kwargs.pop("parent_meta", None), |
| 997 | ) |
| 998 | |
| 999 | @functools.cached_property |
| 1000 | def before(self): |
| 1001 | before = self.operand("before") |