diff --git a/packages/syft/src/syft/service/response.py b/packages/syft/src/syft/service/response.py index adce4b8af73..2908454096e 100644 --- a/packages/syft/src/syft/service/response.py +++ b/packages/syft/src/syft/service/response.py @@ -4,6 +4,7 @@ from typing import Any # third party +from IPython.display import display from result import Err # relative @@ -17,6 +18,27 @@ class SyftResponseMessage(SyftBaseModel): _bool: bool = True require_api_update: bool = False + def __getattr__(self, name: str) -> Any: + if name in [ + "_bool", + # "_repr_html_", + # "message", + # 'require_api_update', + # '__bool__', + # '__eq__', + # '__repr__', + # '__str__', + # '_repr_html_class_', + # '_repr_html_', + "_ipython_canary_method_should_not_exist_", + "_ipython_display_", + ] or name.startswith("_repr"): + return super().__getattr__(name) + display(self) + raise Exception( + f"You have tried accessing `{name}` on a {type(self).__name__} with message: {self.message}" + ) + def __bool__(self) -> bool: return self._bool