| 389 | return result |
| 390 | |
| 391 | def inverse(self, data): |
| 392 | self._raise_if_not_invertible(data) |
| 393 | |
| 394 | invertible_transforms = [t for t in self.flatten().transforms if isinstance(t, InvertibleTransform)] |
| 395 | if not invertible_transforms: |
| 396 | warnings.warn("inverse has been called but no invertible transforms have been supplied") |
| 397 | |
| 398 | if self._lazy is True: |
| 399 | warnings.warn( |
| 400 | f"'lazy' is set to {self._lazy} but lazy execution is not supported when inverting. " |
| 401 | f"'lazy' has been overridden to False for the call to inverse" |
| 402 | ) |
| 403 | # loop backwards over transforms |
| 404 | for t in reversed(invertible_transforms): |
| 405 | data = _inverse_one(t, data, self.map_items, self.unpack_items, self.log_stats) |
| 406 | return data |
| 407 | |
| 408 | @staticmethod |
| 409 | def _raise_if_not_invertible(data: Any): |