summaryrefslogtreecommitdiff
path: root/gitlab/base.py
diff options
context:
space:
mode:
Diffstat (limited to 'gitlab/base.py')
-rw-r--r--gitlab/base.py12
1 files changed, 9 insertions, 3 deletions
diff --git a/gitlab/base.py b/gitlab/base.py
index e813fcd..c2df65a 100644
--- a/gitlab/base.py
+++ b/gitlab/base.py
@@ -21,7 +21,7 @@ import json
import pprint
import textwrap
from types import ModuleType
-from typing import Any, Dict, Iterable, Optional, Type, Union
+from typing import Any, Dict, Iterable, Optional, Type, TYPE_CHECKING, Union
import gitlab
from gitlab import types as g_types
@@ -245,14 +245,20 @@ class RESTObject:
"""Returns the id of the resource."""
if self._id_attr is None or not hasattr(self, self._id_attr):
return None
- return getattr(self, self._id_attr)
+ id_val = getattr(self, self._id_attr)
+ if TYPE_CHECKING:
+ assert id_val is None or isinstance(id_val, (int, str))
+ return id_val
@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)
+ repr_val = getattr(self, self._repr_attr)
+ if TYPE_CHECKING:
+ assert isinstance(repr_val, str)
+ return repr_val
@property
def encoded_id(self) -> Optional[Union[int, str]]: