def test_apply_and_enforce_message(): def func(): return pd.DataFrame(columns=["A", "B", "C"], index=[0]) meta = pd.DataFrame(columns=["A", "D"], index=[0]) with pytest.raises(ValueError, match="Extra: *['B', 'C']"): apply_and_enforce(_func=func, _meta=meta) with pytest.raises(ValueError, match=re.escape("Missing: ['D']")): apply_and_enforce(_func=func, _meta=meta)
def __call__(self, packed_arg): if not self.packed: packed_arg = [packed_arg] if self.enforce_metadata: return apply_and_enforce( *packed_arg, *(self.args or []), _func=self.func, _meta=self.meta, **(self.kwargs or {}), ) return self.func( *packed_arg, *(self.args or []), **(self.kwargs or {}), )