Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -110,7 +110,7 @@ would be the equivalent to calling:
Pagination
==========

>>> xmen = m.get_single_series(403).data.results.get_characters(limit=5)
>>> xmen = m.get_single_series(403).data.result.get_characters(limit=5)
>>> for xm in xmen.data.results:
... print xm.name

Expand Down
2 changes: 1 addition & 1 deletion docs/index.rst
Original file line number Diff line number Diff line change
Expand Up @@ -126,7 +126,7 @@ Pagination
----------
::

>>> xmen = m.get_single_series(403).data.results.get_characters(limit=5)
>>> xmen = m.get_single_series(403).data.result.get_characters(limit=5)
>>> for xm in xmen.data.results:
... print xm.name

Expand Down
37 changes: 10 additions & 27 deletions marvel/character.py
Original file line number Diff line number Diff line change
Expand Up @@ -12,27 +12,10 @@ class CharacterDataWrapper(DataWrapper):
def data(self):
return CharacterDataContainer(self.marvel, self.dict['data'])

def next(self):
"""
Returns new CharacterDataWrapper
TODO: Don't raise offset past count - limit
"""
self.params['offset'] = str(int(self.params['offset']) + int(self.params['limit']))
return self.marvel.get_characters(self.marvel, (), **self.params)

def previous(self):
"""
Returns new CharacterDataWrapper
TODO: Don't lower offset below 0
"""
self.params['offset'] = str(int(self.params['offset']) - int(self.params['limit']))
return self.marvel.get_characters(self.marvel, (), **self.params)


class CharacterDataContainer(DataContainer):
@property
def results(self):
return self.list_to_instance_list(self.dict['results'], Character)
return self._list_to_instance_list(self.dict['results'], Character)


class Character(MarvelObject):
Expand Down Expand Up @@ -122,7 +105,7 @@ def series(self):
"""
return SeriesList(self.marvel, self.dict['series'])

def get_comics(self, *args, **kwargs):
def get_comics(self, params=None):
"""
Returns a full ComicDataWrapper object this character.

Expand All @@ -131,10 +114,10 @@ def get_comics(self, *args, **kwargs):
:returns: ComicDataWrapper -- A new request to API. Contains full results set.
"""
from .comic import Comic, ComicDataWrapper
return self.get_related_resource(Comic, ComicDataWrapper, args, kwargs)
return self._get_related_resource(Comic, ComicDataWrapper, params)


def get_events(self, *args, **kwargs):
def get_events(self, params=None):
"""
Returns a full EventDataWrapper object this character.

Expand All @@ -143,9 +126,9 @@ def get_events(self, *args, **kwargs):
:returns: EventDataWrapper -- A new request to API. Contains full results set.
"""
from .event import Event, EventDataWrapper
return self.get_related_resource(Event, EventDataWrapper, args, kwargs)
return self._get_related_resource(Event, EventDataWrapper, params)

def get_series(self, *args, **kwargs):
def get_series(self, params=None):
"""
Returns a full SeriesDataWrapper object this character.

Expand All @@ -154,9 +137,9 @@ def get_series(self, *args, **kwargs):
:returns: SeriesDataWrapper -- A new request to API. Contains full results set.
"""
from .series import Series, SeriesDataWrapper
return self.get_related_resource(Series, SeriesDataWrapper, args, kwargs)
return self._get_related_resource(Series, SeriesDataWrapper, params)

def get_stories(self, *args, **kwargs):
def get_stories(self, params=None):
"""
Returns a full StoryDataWrapper object this character.

Expand All @@ -165,7 +148,7 @@ def get_stories(self, *args, **kwargs):
:returns: StoriesDataWrapper -- A new request to API. Contains full results set.
"""
from .story import Story, StoryDataWrapper
return self.get_related_resource(Story, StoryDataWrapper, args, kwargs)
return self._get_related_resource(Story, StoryDataWrapper, params)

class CharacterList(List):
"""
Expand All @@ -176,7 +159,7 @@ def items(self):
"""
Returns List of CharacterSummary objects
"""
return self.list_to_instance_list(self.dict['items'], CharacterSummary)
return self._list_to_instance_list(self.dict['items'], CharacterSummary)

class CharacterSummary(Summary):
"""
Expand Down
34 changes: 17 additions & 17 deletions marvel/comic.py
Original file line number Diff line number Diff line change
Expand Up @@ -24,7 +24,7 @@ def data(self):
class ComicDataContainer(DataContainer):
@property
def results(self):
return self.list_to_instance_list(self.dict['results'], Comic)
return self._list_to_instance_list(self.dict['results'], Comic)

class Comic(MarvelObject):
"""
Expand Down Expand Up @@ -104,7 +104,7 @@ def textObjects(self):
"""
:returns: list -- List of TextObjects
"""
return self.list_to_instance_list(self.dict['textObjects'], TextObject)
return self._list_to_instance_list(self.dict['textObjects'], TextObject)

@property
def resourceURI(self):
Expand All @@ -123,37 +123,37 @@ def variants(self):
"""
Returns List of ComicSummary objects
"""
return self.list_to_instance_list(self.dict['variants'], ComicSummary)
return self._list_to_instance_list(self.dict['variants'], ComicSummary)

@property
def collections(self):
"""
Returns List of ComicSummary objects
"""
return self.list_to_instance_list(self.dict['collections'], ComicSummary)
return self._list_to_instance_list(self.dict['collections'], ComicSummary)

@property
def collectedIssues(self):
"""
Returns List of ComicSummary objects
"""
return self.list_to_instance_list(self.dict['collectedIssues'], ComicSummary)
return self._list_to_instance_list(self.dict['collectedIssues'], ComicSummary)

@property
def dates(self):
return self.list_to_instance_list(self.dict['dates'], ComicDate)
return self._list_to_instance_list(self.dict['dates'], ComicDate)

@property
def prices(self):
return self.list_to_instance_list(self.dict['prices'], ComicPrice)
return self._list_to_instance_list(self.dict['prices'], ComicPrice)

@property
def thumbnail(self):
return Image(self.marvel, self.dict['thumbnail'])

@property
def images(self):
return self.list_to_instance_list(self.dict['images'], Image)
return self._list_to_instance_list(self.dict['images'], Image)

@property
def creators(self):
Expand All @@ -176,7 +176,7 @@ def events(self):
return EventList(self.marvel, self.dict['events'])


def get_creators(self, *args, **kwargs):
def get_creators(self, params=None):
"""
Returns a full CreatorDataWrapper object for this character.

Expand All @@ -185,9 +185,9 @@ def get_creators(self, *args, **kwargs):
:returns: CreatorDataWrapper -- A new request to API. Contains full results set.
"""
from .creator import Creator, CreatorDataWrapper
return self.get_related_resource(Creator, CreatorDataWrapper, args, kwargs)
return self._get_related_resource(Creator, CreatorDataWrapper, params)

def get_characters(self, *args, **kwargs):
def get_characters(self, params=None):
"""
Returns a full CharacterDataWrapper object for this character.

Expand All @@ -196,9 +196,9 @@ def get_characters(self, *args, **kwargs):
:returns: CreatorDataWrapper -- A new request to API. Contains full results set.
"""
from .character import Character, CharacterDataWrapper
return self.get_related_resource(Character, CharacterDataWrapper, args, kwargs)
return self._get_related_resource(Character, CharacterDataWrapper, params)

def get_events(self, *args, **kwargs):
def get_events(self, params=None):
"""
Returns a full EventDataWrapper object this character.

Expand All @@ -207,9 +207,9 @@ def get_events(self, *args, **kwargs):
:returns: EventDataWrapper -- A new request to API. Contains full results set.
"""
from .event import Event, EventDataWrapper
return self.get_related_resource(Event, EventDataWrapper, args, kwargs)
return self._get_related_resource(Event, EventDataWrapper, params)

def get_stories(self, *args, **kwargs):
def get_stories(self, params=None):
"""
Returns a full StoryDataWrapper object this comic.

Expand All @@ -218,7 +218,7 @@ def get_stories(self, *args, **kwargs):
:returns: StoriesDataWrapper -- A new request to API. Contains full results set.
"""
from .story import Story, StoryDataWrapper
return self.get_related_resource(Story, StoryDataWrapper, args, kwargs)
return self._get_related_resource(Story, StoryDataWrapper, params)


class ComicList(List):
Expand All @@ -231,7 +231,7 @@ def items(self):
"""
Returns List of ComicSummary objects
"""
return self.list_to_instance_list(self.dict['items'], ComicSummary)
return self._list_to_instance_list(self.dict['items'], ComicSummary)

class ComicSummary(Summary):
"""
Expand Down
10 changes: 5 additions & 5 deletions marvel/core.py
Original file line number Diff line number Diff line change
Expand Up @@ -36,7 +36,7 @@ def resource_url(cls):
"""
return cls._resource_url

def list_to_instance_list(_self, _list, _Class):
def _list_to_instance_list(_self, _list, _Class):
"""
Takes a list of resource dicts and returns a list
of resource instances, defined by the _Class param.
Expand All @@ -55,7 +55,7 @@ def list_to_instance_list(_self, _list, _Class):
items.append(_Class(_self.marvel, item))
return items

def get_related_resource(_self, _Class, _ClassDataWrapper, *args, **kwargs):
def _get_related_resource(_self, _Class, _ClassDataWrapper, params):
"""
Takes a related resource Class
and returns the related resource DataWrapper.
Expand All @@ -67,13 +67,13 @@ def get_related_resource(_self, _Class, _ClassDataWrapper, *args, **kwargs):
:type _Class: core.MarvelObject
:param _ClassDataWrapper: The Resource response object
:type _Class: core.MarvelObject
:param kwargs: dict of query params for the API
:type kwargs: dict
:param params: dict of query params for the API
:type params: dict

:returns: DataWrapper -- DataWrapper for requested Resource
"""
url = "%s/%s/%s" % (_self.resource_url(), _self.id, _Class.resource_url())
response = json.loads(_self.marvel._call(url, _self.marvel._params(kwargs)).text)
response = json.loads(_self.marvel._call(url, _self.marvel._params(params)).text)
return _ClassDataWrapper(_self.marvel, response)

class DataWrapper(MarvelObject):
Expand Down
20 changes: 10 additions & 10 deletions marvel/creator.py
Original file line number Diff line number Diff line change
Expand Up @@ -33,7 +33,7 @@ def previous(self):
class CreatorDataContainer(DataContainer):
@property
def results(self):
return self.list_to_instance_list(self.dict['results'], Creator)
return self._list_to_instance_list(self.dict['results'], Creator)


class Creator(MarvelObject):
Expand Down Expand Up @@ -137,7 +137,7 @@ def events(self):
from .event import EventList
return EventList(self.marvel, self.dict['events'])

def get_comics(self, *args, **kwargs):
def get_comics(self, params=None):
"""
Returns a full ComicDataWrapper object for this creator.

Expand All @@ -146,9 +146,9 @@ def get_comics(self, *args, **kwargs):
:returns: ComicDataWrapper -- A new request to API. Contains full results set.
"""
from .comic import Comic, ComicDataWrapper
return self.get_related_resource(Comic, ComicDataWrapper, args, kwargs)
return self._get_related_resource(Comic, ComicDataWrapper, params)

def get_events(self, *args, **kwargs):
def get_events(self, params=None):
"""
Returns a full EventDataWrapper object for this creator.

Expand All @@ -157,9 +157,9 @@ def get_events(self, *args, **kwargs):
:returns: EventDataWrapper -- A new request to API. Contains full results set.
"""
from .event import Event, EventDataWrapper
return self.get_related_resource(Event, EventDataWrapper, args, kwargs)
return self._get_related_resource(Event, EventDataWrapper, params)

def get_series(self, *args, **kwargs):
def get_series(self, params=None):
"""
Returns a full SeriesDataWrapper object for this creator.

Expand All @@ -168,9 +168,9 @@ def get_series(self, *args, **kwargs):
:returns: SeriesDataWrapper -- A new request to API. Contains full results set.
"""
from .series import Series, SeriesDataWrapper
return self.get_related_resource(Series, SeriesDataWrapper, args, kwargs)
return self._get_related_resource(Series, SeriesDataWrapper, params)

def get_stories(self, *args, **kwargs):
def get_stories(self, params=None):
"""
Returns a full StoryDataWrapper object for this creator.

Expand All @@ -179,7 +179,7 @@ def get_stories(self, *args, **kwargs):
:returns: StoriesDataWrapper -- A new request to API. Contains full results set.
"""
from .story import Story, StoryDataWrapper
return self.get_related_resource(Story, StoryDataWrapper, args, kwargs)
return self._get_related_resource(Story, StoryDataWrapper, params)

class CreatorList(List):
"""
Expand All @@ -191,7 +191,7 @@ def items(self):
"""
Returns List of CreatorSummary objects
"""
return self.list_to_instance_list(self.dict['items'], CreatorSummary)
return self._list_to_instance_list(self.dict['items'], CreatorSummary)

class CreatorSummary(Summary):
"""
Expand Down
Loading