(self, parent, dependents)
| 766 | return mapped_func(*args, **kwargs)[post_projection] |
| 767 | |
| 768 | def _simplify_up(self, parent, dependents): |
| 769 | if isinstance(parent, Projection) and self.required_columns is not None: |
| 770 | if missing := set(self.required_columns) - set(self.frame.columns): |
| 771 | raise KeyError( |
| 772 | f"Some elements of `required_columns` are missing: {missing}" |
| 773 | ) |
| 774 | |
| 775 | columns = determine_column_projection( |
| 776 | self, parent, dependents, additional_columns=self.required_columns |
| 777 | ) |
| 778 | columns = [col for col in self.frame.columns if col in columns] |
| 779 | |
| 780 | if columns == self.frame.columns: |
| 781 | # Don't add unnecessary Projections |
| 782 | return |
| 783 | |
| 784 | return type(parent)( |
| 785 | type(self)( |
| 786 | self.frame[columns], |
| 787 | partial(self.projected_operation, self.func, parent.columns), |
| 788 | self.meta[parent.columns], |
| 789 | *self.operands[3:], |
| 790 | ), |
| 791 | *parent.operands[1:], |
| 792 | ) |
| 793 | |
| 794 | |
| 795 | def _get_meta_ufunc(dfs, args, func): |
nothing calls this directly
no test coverage detected