Skip to content

Commit 32ea62a

Browse files
author
Gauvain Pocentek
committed
Remove support for "constructor types" in v4
In v3 we create objects from json dicts when it makes sense. Support for this feature has not been kept in v4, and we didn't get requests for it so let's drop the _constructor_types definitions.
1 parent dc504ab commit 32ea62a

File tree

2 files changed

+6
-27
lines changed

2 files changed

+6
-27
lines changed

gitlab/base.py

-4
Original file line numberDiff line numberDiff line change
@@ -553,10 +553,6 @@ def __init__(self, manager, attrs):
553553
'_module': importlib.import_module(self.__module__)
554554
})
555555
self.__dict__['_parent_attrs'] = self.manager.parent_attrs
556-
557-
# TODO(gpocentek): manage the creation of new objects from the received
558-
# data (_constructor_types)
559-
560556
self._create_managers()
561557

562558
def __getattr__(self, name):

gitlab/v4/objects.py

+6-23
Original file line numberDiff line numberDiff line change
@@ -135,7 +135,7 @@ class UserKeyManager(GetFromListMixin, CreateMixin, DeleteMixin, RESTManager):
135135

136136

137137
class UserProject(RESTObject):
138-
_constructor_types = {'owner': 'User', 'namespace': 'Group'}
138+
pass
139139

140140

141141
class UserProjectManager(CreateMixin, RESTManager):
@@ -418,9 +418,6 @@ class HookManager(NoUpdateMixin, RESTManager):
418418

419419
class Issue(RESTObject):
420420
_url = '/issues'
421-
_constructor_types = {'author': 'User',
422-
'assignee': 'User',
423-
'milestone': 'ProjectMilestone'}
424421
_short_print_attr = 'title'
425422

426423

@@ -442,7 +439,6 @@ class LicenseManager(RetrieveMixin, RESTManager):
442439

443440

444441
class Snippet(SaveMixin, ObjectDeleteMixin, RESTObject):
445-
_constructor_types = {'author': 'User'}
446442
_short_print_attr = 'title'
447443

448444
@cli.register_custom_action('Snippet')
@@ -508,7 +504,7 @@ class NamespaceManager(GetFromListMixin, RESTManager):
508504

509505

510506
class ProjectBoardList(SaveMixin, ObjectDeleteMixin, RESTObject):
511-
_constructor_types = {'label': 'ProjectLabel'}
507+
pass
512508

513509

514510
class ProjectBoardListManager(CRUDMixin, RESTManager):
@@ -521,7 +517,6 @@ class ProjectBoardListManager(CRUDMixin, RESTManager):
521517

522518

523519
class ProjectBoard(RESTObject):
524-
_constructor_types = {'labels': 'ProjectBoardList'}
525520
_managers = (('lists', 'ProjectBoardListManager'), )
526521

527522

@@ -532,7 +527,6 @@ class ProjectBoardManager(GetFromListMixin, RESTManager):
532527

533528

534529
class ProjectBranch(ObjectDeleteMixin, RESTObject):
535-
_constructor_types = {'author': 'User', "committer": "User"}
536530
_id_attr = 'name'
537531

538532
@cli.register_custom_action('ProjectBranch', tuple(),
@@ -585,10 +579,6 @@ class ProjectBranchManager(NoUpdateMixin, RESTManager):
585579

586580

587581
class ProjectJob(RESTObject):
588-
_constructor_types = {'user': 'User',
589-
'commit': 'ProjectCommit',
590-
'runner': 'Runner'}
591-
592582
@cli.register_custom_action('ProjectJob')
593583
@exc.on_http_error(exc.GitlabJobCancelError)
594584
def cancel(self, **kwargs):
@@ -907,7 +897,7 @@ class ProjectHookManager(CRUDMixin, RESTManager):
907897

908898

909899
class ProjectIssueNote(SaveMixin, ObjectDeleteMixin, RESTObject):
910-
_constructor_types = {'author': 'User'}
900+
pass
911901

912902

913903
class ProjectIssueNoteManager(CRUDMixin, RESTManager):
@@ -920,8 +910,6 @@ class ProjectIssueNoteManager(CRUDMixin, RESTManager):
920910

921911
class ProjectIssue(SubscribableMixin, TodoMixin, TimeTrackingMixin, SaveMixin,
922912
ObjectDeleteMixin, RESTObject):
923-
_constructor_types = {'author': 'User', 'assignee': 'User', 'milestone':
924-
'ProjectMilestone'}
925913
_short_print_attr = 'title'
926914
_id_attr = 'iid'
927915
_managers = (('notes', 'ProjectIssueNoteManager'), )
@@ -978,7 +966,7 @@ class ProjectMemberManager(CRUDMixin, RESTManager):
978966

979967

980968
class ProjectNote(RESTObject):
981-
_constructor_types = {'author': 'User'}
969+
pass
982970

983971

984972
class ProjectNoteManager(RetrieveMixin, RESTManager):
@@ -999,8 +987,6 @@ class ProjectNotificationSettingsManager(NotificationSettingsManager):
999987

1000988

1001989
class ProjectTag(ObjectDeleteMixin, RESTObject):
1002-
_constructor_types = {'release': 'ProjectTagRelease',
1003-
'commit': 'ProjectCommit'}
1004990
_id_attr = 'name'
1005991
_short_print_attr = 'name'
1006992

@@ -1058,7 +1044,7 @@ class ProjectMergeRequestDiffManager(RetrieveMixin, RESTManager):
10581044

10591045

10601046
class ProjectMergeRequestNote(SaveMixin, ObjectDeleteMixin, RESTObject):
1061-
_constructor_types = {'author': 'User'}
1047+
pass
10621048

10631049

10641050
class ProjectMergeRequestNoteManager(CRUDMixin, RESTManager):
@@ -1071,7 +1057,6 @@ class ProjectMergeRequestNoteManager(CRUDMixin, RESTManager):
10711057

10721058
class ProjectMergeRequest(SubscribableMixin, TodoMixin, TimeTrackingMixin,
10731059
SaveMixin, ObjectDeleteMixin, RESTObject):
1074-
_constructor_types = {'author': 'User', 'assignee': 'User'}
10751060
_id_attr = 'iid'
10761061

10771062
_managers = (
@@ -1546,7 +1531,7 @@ def create(self, data, **kwargs):
15461531

15471532

15481533
class ProjectSnippetNote(SaveMixin, ObjectDeleteMixin, RESTObject):
1549-
_constructor_types = {'author': 'User'}
1534+
pass
15501535

15511536

15521537
class ProjectSnippetNoteManager(CRUDMixin, RESTManager):
@@ -1560,7 +1545,6 @@ class ProjectSnippetNoteManager(CRUDMixin, RESTManager):
15601545

15611546
class ProjectSnippet(SaveMixin, ObjectDeleteMixin, RESTObject):
15621547
_url = '/projects/%(project_id)s/snippets'
1563-
_constructor_types = {'author': 'User'}
15641548
_short_print_attr = 'title'
15651549
_managers = (('notes', 'ProjectSnippetNoteManager'), )
15661550

@@ -1779,7 +1763,6 @@ class ProjectRunnerManager(NoUpdateMixin, RESTManager):
17791763

17801764

17811765
class Project(SaveMixin, ObjectDeleteMixin, RESTObject):
1782-
_constructor_types = {'owner': 'User', 'namespace': 'Group'}
17831766
_short_print_attr = 'path'
17841767
_managers = (
17851768
('accessrequests', 'ProjectAccessRequestManager'),

0 commit comments

Comments
 (0)