summaryrefslogtreecommitdiff
path: root/gitlab
diff options
context:
space:
mode:
authorNejc Habjan <nejc.habjan@siemens.com>2022-06-20 16:55:34 +0200
committerJohn Villalovos <john@sodarock.com>2022-06-20 10:33:49 -0700
commit1efb123f63eab57600228b75a1744f8787c16671 (patch)
tree8d635b96a95c0d79bbb4502b842a0757635371ef /gitlab
parent41ceaca1cdee6251beb453f22b7def3c95b279a5 (diff)
downloadgitlab-1efb123f63eab57600228b75a1744f8787c16671.tar.gz
fix(base): do not fail repr() on lazy objects
Diffstat (limited to 'gitlab')
-rw-r--r--gitlab/base.py15
1 files changed, 11 insertions, 4 deletions
diff --git a/gitlab/base.py b/gitlab/base.py
index 6e7d5c5..205a0f2 100644
--- a/gitlab/base.py
+++ b/gitlab/base.py
@@ -162,15 +162,15 @@ class RESTObject:
def __repr__(self) -> str:
name = self.__class__.__name__
- if (self._id_attr and self._repr_attr) and (self._id_attr != self._repr_attr):
+ if (self._id_attr and self._repr_value) and (self._id_attr != self._repr_attr):
return (
f"<{name} {self._id_attr}:{self.get_id()} "
- f"{self._repr_attr}:{getattr(self, self._repr_attr)}>"
+ f"{self._repr_attr}:{self._repr_value}>"
)
if self._id_attr:
return f"<{name} {self._id_attr}:{self.get_id()}>"
- if self._repr_attr:
- return f"<{name} {self._repr_attr}:{getattr(self, self._repr_attr)}>"
+ if self._repr_value:
+ return f"<{name} {self._repr_attr}:{self._repr_value}>"
return f"<{name}>"
@@ -230,6 +230,13 @@ class RESTObject:
return getattr(self, self._id_attr)
@property
+ def _repr_value(self) -> Optional[str]:
+ """Safely returns the human-readable resource name if present."""
+ if self._repr_attr is None or not hasattr(self, self._repr_attr):
+ return None
+ return getattr(self, self._repr_attr)
+
+ @property
def encoded_id(self) -> Optional[Union[int, str]]:
"""Ensure that the ID is url-encoded so that it can be safely used in a URL
path"""