Skip to content

Commit

Permalink
Merge pull request #168 from hakkeroid/pass_kwargs_to_object_factory
Browse files Browse the repository at this point in the history
Pass kwargs to object factory
  • Loading branch information
Gauvain Pocentek committed Oct 23, 2016
2 parents 5f444e4 + cc151f3 commit 9da5d69
Show file tree
Hide file tree
Showing 2 changed files with 8 additions and 6 deletions.
1 change: 1 addition & 0 deletions .gitignore
Expand Up @@ -7,3 +7,4 @@ MANIFEST
.idea/
docs/_build
.testrepository/
.tox
13 changes: 7 additions & 6 deletions gitlab/objects.py
Expand Up @@ -280,25 +280,26 @@ def get(cls, gl, id, **kwargs):

raise GitlabGetError("Object not found")

def _get_object(self, k, v):
def _get_object(self, k, v, **kwargs):
if self._constructorTypes and k in self._constructorTypes:
return globals()[self._constructorTypes[k]](self.gitlab, v)
return globals()[self._constructorTypes[k]](self.gitlab, v,
**kwargs)
else:
return v

def _set_from_dict(self, data):
def _set_from_dict(self, data, **kwargs):
if not hasattr(data, 'items'):
return

for k, v in data.items():
if isinstance(v, list):
self.__dict__[k] = []
for i in v:
self.__dict__[k].append(self._get_object(k, i))
self.__dict__[k].append(self._get_object(k, i, **kwargs))
elif v is None:
self.__dict__[k] = None
else:
self.__dict__[k] = self._get_object(k, v)
self.__dict__[k] = self._get_object(k, v, **kwargs)

def _create(self, **kwargs):
if not self.canCreate:
Expand Down Expand Up @@ -377,7 +378,7 @@ def __init__(self, gl, data=None, **kwargs):
data = self.gitlab.get(self.__class__, data, **kwargs)
self._from_api = True

self._set_from_dict(data)
self._set_from_dict(data, **kwargs)

if kwargs:
for k, v in kwargs.items():
Expand Down

0 comments on commit 9da5d69

Please sign in to comment.