Skip to content

Commit 90ebbeb

Browse files
committed
No reason to have separate _getListOrObject-method in Gitlab-class.
Changed GitlabObject-class version of _getListOrObject to classmethod. Removed _getListOrObject-method from Gitlab-class. Changed Gitlab-class to use GitlabObject-class version of _getListOrObject
1 parent 296a72f commit 90ebbeb

File tree

1 file changed

+79
-85
lines changed

1 file changed

+79
-85
lines changed

gitlab.py

+79-85
Original file line numberDiff line numberDiff line change
@@ -384,12 +384,6 @@ def update(self, obj):
384384
else:
385385
raise GitlabUpdateError('%d: %s' % (r.status_code, r.text))
386386

387-
def _getListOrObject(self, cls, id, **kwargs):
388-
if id is None:
389-
return cls.list(self, **kwargs)
390-
else:
391-
return cls(self, id, **kwargs)
392-
393387
def Hook(self, id=None, **kwargs):
394388
"""Creates/tests/lists system hook(s) known by the GitLab server.
395389
@@ -401,7 +395,7 @@ def Hook(self, id=None, **kwargs):
401395
object is NOT saved on the server. Use the save() method on the object
402396
to write it on the server.
403397
"""
404-
return self._getListOrObject(Hook, id, **kwargs)
398+
return Hook._getListOrObject(self, id, **kwargs)
405399

406400
def Project(self, id=None, **kwargs):
407401
"""Creates/gets/lists project(s) known by the GitLab server.
@@ -415,14 +409,14 @@ def Project(self, id=None, **kwargs):
415409
object is NOT saved on the server. Use the save() method on the object
416410
to write it on the server.
417411
"""
418-
return self._getListOrObject(Project, id, **kwargs)
412+
return Project._getListOrObject(self, id, **kwargs)
419413

420414
def UserProject(self, id=None, **kwargs):
421415
"""Creates a project for a user.
422416
423417
id must be a dict.
424418
"""
425-
return self._getListOrObject(UserProject, id, **kwargs)
419+
return UserProject._getListOrObject(self, id, **kwargs)
426420

427421
def _list_projects(self, url, **kwargs):
428422
r = self.rawGet(url, **kwargs)
@@ -472,15 +466,15 @@ def Group(self, id=None, **kwargs):
472466
object is NOT saved on the server. Use the save() method on the object
473467
to write it on the server.
474468
"""
475-
return self._getListOrObject(Group, id, **kwargs)
469+
return Group._getListOrObject(self, id, **kwargs)
476470

477471
def Issue(self, id=None, **kwargs):
478472
"""Lists issues(s) known by the GitLab server.
479473
480474
Does not support creation or getting a single issue unlike other
481475
methods in this class yet.
482476
"""
483-
return self._getListOrObject(Issue, id, **kwargs)
477+
return Issue._getListOrObject(self, id, **kwargs)
484478

485479
def User(self, id=None, **kwargs):
486480
"""Creates/gets/lists users(s) known by the GitLab server.
@@ -494,7 +488,7 @@ def User(self, id=None, **kwargs):
494488
object is NOT saved on the server. Use the save() method on the object
495489
to write it on the server.
496490
"""
497-
return self._getListOrObject(User, id, **kwargs)
491+
return User._getListOrObject(self, id, **kwargs)
498492

499493
def Team(self, id=None, **kwargs):
500494
"""Creates/gets/lists team(s) known by the GitLab server.
@@ -508,7 +502,7 @@ def Team(self, id=None, **kwargs):
508502
object is NOT saved on the server. Use the save() method on the object
509503
to write it on the server.
510504
"""
511-
return self._getListOrObject(Team, id, **kwargs)
505+
return Team._getListOrObject(self, id, **kwargs)
512506

513507

514508
def _get_display_encoding():
@@ -555,23 +549,24 @@ def list(cls, gl, **kwargs):
555549

556550
return gl.list(cls, **kwargs)
557551

558-
def _getListOrObject(self, cls, id, **kwargs):
552+
@classmethod
553+
def _getListOrObject(cls, gl, id, **kwargs):
559554
if id is None and cls.getListWhenNoId:
560555
if not cls.canList:
561556
raise GitlabListError
562-
return cls.list(self.gitlab, **kwargs)
557+
return cls.list(gl, **kwargs)
563558
elif id is None and not cls.getListWhenNoId:
564559
if not cls.canGet:
565560
raise GitlabGetError
566-
return cls(self.gitlab, id, **kwargs)
561+
return cls(gl, id, **kwargs)
567562
elif isinstance(id, dict):
568563
if not cls.canCreate:
569564
raise GitlabCreateError
570-
return cls(self.gitlab, id, **kwargs)
565+
return cls(gl, id, **kwargs)
571566
else:
572567
if not cls.canGet:
573568
raise GitlabGetError
574-
return cls(self.gitlab, id, **kwargs)
569+
return cls(gl, id, **kwargs)
575570

576571
def _getObject(self, k, v):
577572
if self._constructorTypes and k in self._constructorTypes:
@@ -721,9 +716,9 @@ class User(GitlabObject):
721716

722717

723718
def Key(self, id=None, **kwargs):
724-
return self._getListOrObject(UserKey, id,
725-
user_id=self.id,
726-
**kwargs)
719+
return UserKey._getListOrObject(self.gitlab, id,
720+
user_id=self.id,
721+
**kwargs)
727722

728723

729724
class CurrentUserKey(GitlabObject):
@@ -742,7 +737,7 @@ class CurrentUser(GitlabObject):
742737
shortPrintAttr = 'username'
743738

744739
def Key(self, id=None, **kwargs):
745-
return self._getListOrObject(CurrentUserKey, id, **kwargs)
740+
return CurrentUserKey._getListOrObject(self.gitlab, id, **kwargs)
746741

747742
class GroupMember(GitlabObject):
748743
_url = '/groups/%(group_id)s/members'
@@ -767,9 +762,9 @@ class Group(GitlabObject):
767762
OWNER_ACCESS = 50
768763

769764
def Member(self, id=None, **kwargs):
770-
return self._getListOrObject(GroupMember, id,
771-
group_id=self.id,
772-
**kwargs)
765+
return GroupMember._getListOrObject(self.gitlab, id,
766+
group_id=self.id,
767+
**kwargs)
773768

774769
def transfer_project(self, id):
775770
url = '/groups/%d/projects/%d' % (self.id, id)
@@ -900,10 +895,10 @@ class ProjectIssue(GitlabObject):
900895
shortPrintAttr = 'title'
901896

902897
def Note(self, id=None, **kwargs):
903-
return self._getListOrObject(ProjectIssueNote, id,
904-
project_id=self.project_id,
905-
issue_id=self.id,
906-
**kwargs)
898+
return ProjectIssueNote._getListOrObject(self.gitlab, id,
899+
project_id=self.project_id,
900+
issue_id=self.id,
901+
**kwargs)
907902

908903

909904
class ProjectMember(GitlabObject):
@@ -952,10 +947,9 @@ class ProjectMergeRequest(GitlabObject):
952947
optionalCreateAttrs = ['assignee_id']
953948

954949
def Note(self, id=None, **kwargs):
955-
return self._getListOrObject(ProjectMergeRequestNote, id,
956-
project_id=self.project_id,
957-
merge_request_id=self.id,
958-
**kwargs)
950+
return ProjectMergeRequestNote._getListOrObject(
951+
self.gitlab, id, project_id=self.project_id,
952+
merge_request_id=self.id, **kwargs)
959953

960954

961955
class ProjectMilestone(GitlabObject):
@@ -1018,10 +1012,10 @@ def Content(self):
10181012
raise GitlabGetError
10191013

10201014
def Note(self, id=None, **kwargs):
1021-
return self._getListOrObject(ProjectSnippetNote, id,
1022-
project_id=self.project_id,
1023-
snippet_id=self.id,
1024-
**kwargs)
1015+
return ProjectSnippetNote._getListOrObject(self.gitlab, id,
1016+
project_id=self.project_id,
1017+
snippet_id=self.id,
1018+
**kwargs)
10251019

10261020

10271021
class UserProject(GitlabObject):
@@ -1052,74 +1046,74 @@ class Project(GitlabObject):
10521046
shortPrintAttr = 'path'
10531047

10541048
def Branch(self, id=None, **kwargs):
1055-
return self._getListOrObject(ProjectBranch, id,
1056-
project_id=self.id,
1057-
**kwargs)
1049+
return ProjectBranch._getListOrObject(self.gitlab, id,
1050+
project_id=self.id,
1051+
**kwargs)
10581052

10591053
def Commit(self, id=None, **kwargs):
1060-
return self._getListOrObject(ProjectCommit, id,
1061-
project_id=self.id,
1062-
**kwargs)
1054+
return ProjectCommit._getListOrObject(self.gitlab, id,
1055+
project_id=self.id,
1056+
**kwargs)
10631057

10641058
def Event(self, id=None, **kwargs):
1065-
return self._getListOrObject(ProjectEvent, id,
1066-
project_id=self.id,
1067-
**kwargs)
1059+
return ProjectEvent._getListOrObject(self.gitlab, id,
1060+
project_id=self.id,
1061+
**kwargs)
10681062

10691063
def Hook(self, id=None, **kwargs):
1070-
return self._getListOrObject(ProjectHook, id,
1071-
project_id=self.id,
1072-
**kwargs)
1064+
return ProjectHook._getListOrObject(self.gitlab, id,
1065+
project_id=self.id,
1066+
**kwargs)
10731067

10741068
def Key(self, id=None, **kwargs):
1075-
return self._getListOrObject(ProjectKey, id,
1076-
project_id=self.id,
1077-
**kwargs)
1069+
return ProjectKey._getListOrObject(self.gitlab, id,
1070+
project_id=self.id,
1071+
**kwargs)
10781072

10791073
def Issue(self, id=None, **kwargs):
1080-
return self._getListOrObject(ProjectIssue, id,
1081-
project_id=self.id,
1082-
**kwargs)
1074+
return ProjectIssue._getListOrObject(self.gitlab, id,
1075+
project_id=self.id,
1076+
**kwargs)
10831077

10841078
def Member(self, id=None, **kwargs):
1085-
return self._getListOrObject(ProjectMember, id,
1086-
project_id=self.id,
1087-
**kwargs)
1079+
return ProjectMember._getListOrObject(self.gitlab, id,
1080+
project_id=self.id,
1081+
**kwargs)
10881082

10891083
def MergeRequest(self, id=None, **kwargs):
1090-
return self._getListOrObject(ProjectMergeRequest, id,
1091-
project_id=self.id,
1092-
**kwargs)
1084+
return ProjectMergeRequest._getListOrObject(self.gitlab, id,
1085+
project_id=self.id,
1086+
**kwargs)
10931087

10941088
def Milestone(self, id=None, **kwargs):
1095-
return self._getListOrObject(ProjectMilestone, id,
1096-
project_id=self.id,
1097-
**kwargs)
1089+
return ProjectMilestone._getListOrObject(self.gitlab, id,
1090+
project_id=self.id,
1091+
**kwargs)
10981092

10991093
def Note(self, id=None, **kwargs):
1100-
return self._getListOrObject(ProjectNote, id,
1101-
project_id=self.id,
1102-
**kwargs)
1094+
return ProjectNote._getListOrObject(self.gitlab, id,
1095+
project_id=self.id,
1096+
**kwargs)
11031097

11041098
def Snippet(self, id=None, **kwargs):
1105-
return self._getListOrObject(ProjectSnippet, id,
1106-
project_id=self.id,
1107-
**kwargs)
1099+
return ProjectSnippet._getListOrObject(self.gitlab, id,
1100+
project_id=self.id,
1101+
**kwargs)
11081102

11091103
def Label(self, id=None, **kwargs):
1110-
return self._getListOrObject(ProjectLabel, id,
1111-
project_id=self.id,
1112-
**kwargs)
1104+
return ProjectLabel._getListOrObject(self.gitlab, id,
1105+
project_id=self.id,
1106+
**kwargs)
11131107

11141108
def File(self, id=None, **kwargs):
1115-
return self._getListOrObject(ProjectFile, id,
1116-
project_id=self.id,
1117-
**kwargs)
1109+
return ProjectFile._getListOrObject(self.gitlab, id,
1110+
project_id=self.id,
1111+
**kwargs)
11181112

11191113
def Tag(self, id=None, **kwargs):
1120-
return self._getListOrObject(ProjectTag, id,
1121-
project_id=self.id,
1122-
**kwargs)
1114+
return ProjectTag._getListOrObject(self.gitlab, id,
1115+
project_id=self.id,
1116+
**kwargs)
11231117

11241118
def tree(self, path='', ref_name=''):
11251119
url = "%s/%s/repository/tree" % (self._url, self.id)
@@ -1198,11 +1192,11 @@ class Team(GitlabObject):
11981192
canUpdate = False
11991193

12001194
def Member(self, id=None, **kwargs):
1201-
return self._getListOrObject(TeamMember, id,
1202-
team_id=self.id,
1203-
**kwargs)
1195+
return TeamMember._getListOrObject(self.gitlab, id,
1196+
team_id=self.id,
1197+
**kwargs)
12041198

12051199
def Project(self, id=None, **kwargs):
1206-
return self._getListOrObject(TeamProject, id,
1207-
team_id=self.id,
1208-
**kwargs)
1200+
return TeamProject._getListOrObject(self.gitlab, id,
1201+
team_id=self.id,
1202+
**kwargs)

0 commit comments

Comments
 (0)