(self, group: T_Group)
| 576 | return first_items, codes |
| 577 | |
| 578 | def factorize(self, group: T_Group) -> EncodedGroups: |
| 579 | self._init_properties(group) |
| 580 | full_index, first_items, codes_ = self._get_index_and_items() |
| 581 | sbins = first_items.values.astype(np.int64) |
| 582 | group_indices: GroupIndices = tuple( |
| 583 | list(itertools.starmap(slice, pairwise(sbins))) + [slice(sbins[-1], None)] |
| 584 | ) |
| 585 | |
| 586 | unique_coord = Variable( |
| 587 | dims=group.name, data=first_items.index, attrs=group.attrs |
| 588 | ) |
| 589 | codes = group.copy(data=codes_.reshape(group.shape), deep=False) |
| 590 | |
| 591 | return EncodedGroups( |
| 592 | codes=codes, |
| 593 | group_indices=group_indices, |
| 594 | full_index=full_index, |
| 595 | unique_coord=unique_coord, |
| 596 | coords=coordinates_from_variable(unique_coord), |
| 597 | ) |
| 598 | |
| 599 | def compute_chunks(self, variable: Variable, *, dim: Hashable) -> tuple[int, ...]: |
| 600 | """ |
nothing calls this directly
no test coverage detected