summaryrefslogtreecommitdiff
path: root/gitlab/client.py
diff options
context:
space:
mode:
Diffstat (limited to 'gitlab/client.py')
-rw-r--r--gitlab/client.py20
1 files changed, 16 insertions, 4 deletions
diff --git a/gitlab/client.py b/gitlab/client.py
index dbfc834..6d0401d 100644
--- a/gitlab/client.py
+++ b/gitlab/client.py
@@ -16,7 +16,6 @@
# along with this program. If not, see <http://www.gnu.org/licenses/>.
"""Wrapper for the GitLab API."""
-import importlib
import time
import requests
@@ -99,7 +98,14 @@ class Gitlab(object):
self.pagination = pagination
self.order_by = order_by
- objects = importlib.import_module("gitlab.v%s.objects" % self._api_version)
+ # We only support v4 API at this time
+ if self._api_version not in ("4",):
+ raise ModuleNotFoundError(name="gitlab.v%s.objects" % self._api_version)
+ # NOTE: We must delay import of gitlab.v4.objects until now or
+ # otherwise it will cause circular import errors
+ import gitlab.v4.objects
+
+ objects = gitlab.v4.objects
self._objects = objects
self.broadcastmessages = objects.BroadcastMessageManager(self)
@@ -147,8 +153,14 @@ class Gitlab(object):
def __setstate__(self, state):
self.__dict__.update(state)
- objects = importlib.import_module("gitlab.v%s.objects" % self._api_version)
- self._objects = objects
+ # We only support v4 API at this time
+ if self._api_version not in ("4",):
+ raise ModuleNotFoundError(name="gitlab.v%s.objects" % self._api_version)
+ # NOTE: We must delay import of gitlab.v4.objects until now or
+ # otherwise it will cause circular import errors
+ import gitlab.v4.objects
+
+ self._objects = gitlab.v4.objects
@property
def url(self):