| 648 | ) |
| 649 | |
| 650 | def align(self) -> None: |
| 651 | if not self.indexes and len(self.objects) == 1: |
| 652 | # fast path for the trivial case |
| 653 | (obj,) = self.objects |
| 654 | self.results = (obj.copy(deep=self.copy),) |
| 655 | return |
| 656 | |
| 657 | self.find_matching_indexes() |
| 658 | self.find_matching_unindexed_dims() |
| 659 | self.align_indexes() |
| 660 | self.assert_unindexed_dim_sizes_equal() |
| 661 | |
| 662 | if self.join == "override": |
| 663 | self.override_indexes() |
| 664 | elif self.join == "exact" and not self.copy: |
| 665 | self.results = self.objects |
| 666 | else: |
| 667 | self.reindex_all() |
| 668 | |
| 669 | |
| 670 | T_Obj1 = TypeVar("T_Obj1", bound="Alignable") |