Skip to content

Commit

Permalink
Remove support for "constructor types" in v4
Browse files Browse the repository at this point in the history
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.
  • Loading branch information
Gauvain Pocentek committed Oct 21, 2017
1 parent dc504ab commit 32ea62a
Show file tree
Hide file tree
Showing 2 changed files with 6 additions and 27 deletions.
4 changes: 0 additions & 4 deletions gitlab/base.py
Expand Up @@ -553,10 +553,6 @@ def __init__(self, manager, attrs):
'_module': importlib.import_module(self.__module__)
})
self.__dict__['_parent_attrs'] = self.manager.parent_attrs

# TODO(gpocentek): manage the creation of new objects from the received
# data (_constructor_types)

self._create_managers()

def __getattr__(self, name):
Expand Down
29 changes: 6 additions & 23 deletions gitlab/v4/objects.py
Expand Up @@ -135,7 +135,7 @@ class UserKeyManager(GetFromListMixin, CreateMixin, DeleteMixin, RESTManager):


class UserProject(RESTObject):
_constructor_types = {'owner': 'User', 'namespace': 'Group'}
pass


class UserProjectManager(CreateMixin, RESTManager):
Expand Down Expand Up @@ -418,9 +418,6 @@ class HookManager(NoUpdateMixin, RESTManager):

class Issue(RESTObject):
_url = '/issues'
_constructor_types = {'author': 'User',
'assignee': 'User',
'milestone': 'ProjectMilestone'}
_short_print_attr = 'title'


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


class Snippet(SaveMixin, ObjectDeleteMixin, RESTObject):
_constructor_types = {'author': 'User'}
_short_print_attr = 'title'

@cli.register_custom_action('Snippet')
Expand Down Expand Up @@ -508,7 +504,7 @@ class NamespaceManager(GetFromListMixin, RESTManager):


class ProjectBoardList(SaveMixin, ObjectDeleteMixin, RESTObject):
_constructor_types = {'label': 'ProjectLabel'}
pass


class ProjectBoardListManager(CRUDMixin, RESTManager):
Expand All @@ -521,7 +517,6 @@ class ProjectBoardListManager(CRUDMixin, RESTManager):


class ProjectBoard(RESTObject):
_constructor_types = {'labels': 'ProjectBoardList'}
_managers = (('lists', 'ProjectBoardListManager'), )


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


class ProjectBranch(ObjectDeleteMixin, RESTObject):
_constructor_types = {'author': 'User', "committer": "User"}
_id_attr = 'name'

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


class ProjectJob(RESTObject):
_constructor_types = {'user': 'User',
'commit': 'ProjectCommit',
'runner': 'Runner'}

@cli.register_custom_action('ProjectJob')
@exc.on_http_error(exc.GitlabJobCancelError)
def cancel(self, **kwargs):
Expand Down Expand Up @@ -907,7 +897,7 @@ class ProjectHookManager(CRUDMixin, RESTManager):


class ProjectIssueNote(SaveMixin, ObjectDeleteMixin, RESTObject):
_constructor_types = {'author': 'User'}
pass


class ProjectIssueNoteManager(CRUDMixin, RESTManager):
Expand All @@ -920,8 +910,6 @@ class ProjectIssueNoteManager(CRUDMixin, RESTManager):

class ProjectIssue(SubscribableMixin, TodoMixin, TimeTrackingMixin, SaveMixin,
ObjectDeleteMixin, RESTObject):
_constructor_types = {'author': 'User', 'assignee': 'User', 'milestone':
'ProjectMilestone'}
_short_print_attr = 'title'
_id_attr = 'iid'
_managers = (('notes', 'ProjectIssueNoteManager'), )
Expand Down Expand Up @@ -978,7 +966,7 @@ class ProjectMemberManager(CRUDMixin, RESTManager):


class ProjectNote(RESTObject):
_constructor_types = {'author': 'User'}
pass


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


class ProjectTag(ObjectDeleteMixin, RESTObject):
_constructor_types = {'release': 'ProjectTagRelease',
'commit': 'ProjectCommit'}
_id_attr = 'name'
_short_print_attr = 'name'

Expand Down Expand Up @@ -1058,7 +1044,7 @@ class ProjectMergeRequestDiffManager(RetrieveMixin, RESTManager):


class ProjectMergeRequestNote(SaveMixin, ObjectDeleteMixin, RESTObject):
_constructor_types = {'author': 'User'}
pass


class ProjectMergeRequestNoteManager(CRUDMixin, RESTManager):
Expand All @@ -1071,7 +1057,6 @@ class ProjectMergeRequestNoteManager(CRUDMixin, RESTManager):

class ProjectMergeRequest(SubscribableMixin, TodoMixin, TimeTrackingMixin,
SaveMixin, ObjectDeleteMixin, RESTObject):
_constructor_types = {'author': 'User', 'assignee': 'User'}
_id_attr = 'iid'

_managers = (
Expand Down Expand Up @@ -1546,7 +1531,7 @@ def create(self, data, **kwargs):


class ProjectSnippetNote(SaveMixin, ObjectDeleteMixin, RESTObject):
_constructor_types = {'author': 'User'}
pass


class ProjectSnippetNoteManager(CRUDMixin, RESTManager):
Expand All @@ -1560,7 +1545,6 @@ class ProjectSnippetNoteManager(CRUDMixin, RESTManager):

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

Expand Down Expand Up @@ -1779,7 +1763,6 @@ class ProjectRunnerManager(NoUpdateMixin, RESTManager):


class Project(SaveMixin, ObjectDeleteMixin, RESTObject):
_constructor_types = {'owner': 'User', 'namespace': 'Group'}
_short_print_attr = 'path'
_managers = (
('accessrequests', 'ProjectAccessRequestManager'),
Expand Down

0 comments on commit 32ea62a

Please sign in to comment.