@@ -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
514508def _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
729724class 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
747742class 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
909904class 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
961955class 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
10271021class 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