|
19 | 19 | from __future__ import print_function |
20 | 20 | from __future__ import division |
21 | 21 | from __future__ import absolute_import |
| 22 | +import importlib |
22 | 23 | import inspect |
23 | 24 | import itertools |
24 | 25 | import json |
|
31 | 32 | import gitlab.config |
32 | 33 | from gitlab.const import * # noqa |
33 | 34 | from gitlab.exceptions import * # noqa |
34 | | -from gitlab.objects import * # noqa |
| 35 | +from gitlab.v3.objects import * # noqa |
35 | 36 |
|
36 | 37 | __title__ = 'python-gitlab' |
37 | 38 | __version__ = '0.20' |
@@ -91,40 +92,43 @@ def __init__(self, url, private_token=None, email=None, password=None, |
91 | 92 | #: Create a session object for requests |
92 | 93 | self.session = requests.Session() |
93 | 94 |
|
94 | | - self.broadcastmessages = BroadcastMessageManager(self) |
95 | | - self.keys = KeyManager(self) |
96 | | - self.deploykeys = DeployKeyManager(self) |
97 | | - self.gitlabciymls = GitlabciymlManager(self) |
98 | | - self.gitignores = GitignoreManager(self) |
99 | | - self.groups = GroupManager(self) |
100 | | - self.hooks = HookManager(self) |
101 | | - self.issues = IssueManager(self) |
102 | | - self.licenses = LicenseManager(self) |
103 | | - self.namespaces = NamespaceManager(self) |
104 | | - self.notificationsettings = NotificationSettingsManager(self) |
105 | | - self.projects = ProjectManager(self) |
106 | | - self.runners = RunnerManager(self) |
107 | | - self.settings = ApplicationSettingsManager(self) |
108 | | - self.sidekiq = SidekiqManager(self) |
109 | | - self.snippets = SnippetManager(self) |
110 | | - self.users = UserManager(self) |
111 | | - self.teams = TeamManager(self) |
112 | | - self.todos = TodoManager(self) |
| 95 | + objects = importlib.import_module('gitlab.v%s.objects' % |
| 96 | + self._api_version) |
| 97 | + |
| 98 | + self.broadcastmessages = objects.BroadcastMessageManager(self) |
| 99 | + self.keys = objects.KeyManager(self) |
| 100 | + self.deploykeys = objects.DeployKeyManager(self) |
| 101 | + self.gitlabciymls = objects.GitlabciymlManager(self) |
| 102 | + self.gitignores = objects.GitignoreManager(self) |
| 103 | + self.groups = objects.GroupManager(self) |
| 104 | + self.hooks = objects.HookManager(self) |
| 105 | + self.issues = objects.IssueManager(self) |
| 106 | + self.licenses = objects.LicenseManager(self) |
| 107 | + self.namespaces = objects.NamespaceManager(self) |
| 108 | + self.notificationsettings = objects.NotificationSettingsManager(self) |
| 109 | + self.projects = objects.ProjectManager(self) |
| 110 | + self.runners = objects.RunnerManager(self) |
| 111 | + self.settings = objects.ApplicationSettingsManager(self) |
| 112 | + self.sidekiq = objects.SidekiqManager(self) |
| 113 | + self.snippets = objects.SnippetManager(self) |
| 114 | + self.users = objects.UserManager(self) |
| 115 | + self.teams = objects.TeamManager(self) |
| 116 | + self.todos = objects.TodoManager(self) |
113 | 117 |
|
114 | 118 | # build the "submanagers" |
115 | | - for parent_cls in six.itervalues(globals()): |
| 119 | + for parent_cls in six.itervalues(vars(objects)): |
116 | 120 | if (not inspect.isclass(parent_cls) |
117 | | - or not issubclass(parent_cls, GitlabObject) |
118 | | - or parent_cls == CurrentUser): |
| 121 | + or not issubclass(parent_cls, objects.GitlabObject) |
| 122 | + or parent_cls == objects.CurrentUser): |
119 | 123 | continue |
120 | 124 |
|
121 | 125 | if not parent_cls.managers: |
122 | 126 | continue |
123 | 127 |
|
124 | | - for var, cls, attrs in parent_cls.managers: |
| 128 | + for var, cls_name, attrs in parent_cls.managers: |
125 | 129 | var_name = '%s_%s' % (self._cls_to_manager_prefix(parent_cls), |
126 | 130 | var) |
127 | | - manager = cls(self) |
| 131 | + manager = getattr(objects, cls_name)(self) |
128 | 132 | setattr(self, var_name, manager) |
129 | 133 |
|
130 | 134 | @property |
|
0 commit comments