(*exprs, allow_shuffle=True)
| 4058 | |
| 4059 | |
| 4060 | def calc_divisions_for_align(*exprs, allow_shuffle=True): |
| 4061 | dfs = [df for df in exprs if isinstance(df, Expr) and df.ndim > 0] |
| 4062 | if not all(df.known_divisions for df in dfs): |
| 4063 | return (None,) * (max(df.npartitions for df in dfs) + 1) |
| 4064 | if all(dfs[0].divisions == df.divisions for df in dfs): |
| 4065 | return dfs[0].divisions |
| 4066 | divisions = list(unique(merge_sorted(*[df.divisions for df in dfs]))) |
| 4067 | if len(divisions) == 1: # single value for index |
| 4068 | divisions = (divisions[0], divisions[0]) |
| 4069 | return divisions |
| 4070 | |
| 4071 | |
| 4072 | def maybe_align_partitions(*exprs, divisions): |
no test coverage detected