diff options
author | 2012-06-16 13:10:32 +0200 | |
---|---|---|
committer | 2012-06-16 13:10:32 +0200 | |
commit | 5cd7ad5f4898b538f771290548ba131f7063d94c (patch) | |
tree | 4636f091e5018bee6b32c9e6de2688a48e5d6ca0 /pygithub3/services | |
parent | Remove list_milestones from repo service (diff) | |
download | python-github3-5cd7ad5f4898b538f771290548ba131f7063d94c.tar.xz python-github3-5cd7ad5f4898b538f771290548ba131f7063d94c.zip |
Refact normalize of dates into base.Service
Diffstat (limited to 'pygithub3/services')
-rw-r--r-- | pygithub3/services/base.py | 14 | ||||
-rw-r--r-- | pygithub3/services/issues/__init__.py | 21 | ||||
-rw-r--r-- | pygithub3/services/issues/milestones.py | 16 |
3 files changed, 20 insertions, 31 deletions
diff --git a/pygithub3/services/base.py b/pygithub3/services/base.py index 649b2b3..5fed1db 100644 --- a/pygithub3/services/base.py +++ b/pygithub3/services/base.py @@ -1,10 +1,13 @@ #!/usr/bin/env python # -*- encoding: utf-8 -*- +from datetime import datetime + from pygithub3.core.client import Client +from pygithub3.core.errors import NotFound from pygithub3.core.result import smart, normal from pygithub3.requests.base import Factory -from pygithub3.core.errors import NotFound +from pygithub3.resources.base import GITHUB_DATE_FORMAT class Service(object): @@ -41,6 +44,15 @@ class Service(object): self._client = Client(**config) self.request_builder = Factory() + def _normalize_date(self, key, _dict): + """ If ``key`` comes as ``datetime``, it'll normalize it """ + try: + key = str(key) + date = datetime.strftime(_dict.get(key), GITHUB_DATE_FORMAT) + _dict.update({key: date}) + except: + pass + @property def remaining_requests(self): return Client.remaining_requests diff --git a/pygithub3/services/issues/__init__.py b/pygithub3/services/issues/__init__.py index ada2dca..f17ee91 100644 --- a/pygithub3/services/issues/__init__.py +++ b/pygithub3/services/issues/__init__.py @@ -1,9 +1,6 @@ # -*- encoding: utf-8 -*- -from datetime import datetime - from pygithub3.services.base import Service, MimeTypeMixin -from pygithub3.resources.base import GITHUB_DATE_FORMAT from .comments import Comments from .events import Events from .labels import Labels @@ -30,7 +27,7 @@ class Issue(Service, MimeTypeMixin): @high :param str sort: 'created', 'updated' or 'comments' :param str direction: 'asc' or 'desc' - :param datetime since: Date filter + :param datetime since: Date filter (datetime or str in ISO 8601) :returns: A :doc:`result` .. warning:: @@ -38,12 +35,7 @@ class Issue(Service, MimeTypeMixin): """ params = dict(filter=filter, state=state, labels=labels, sort=sort, direction=direction) - try: - date = datetime.strptime(since, GITHUB_DATE_FORMAT) - params.update(since=date) - except: - pass - + self._normalize_data('since', params) request = self.request_builder('issues.list') return self._get_result(request, **params) @@ -60,7 +52,7 @@ class Issue(Service, MimeTypeMixin): @high :param str sort: 'created', 'updated' or 'comments' :param str direction: 'asc' or 'desc' - :param datetime since: Date filter + :param datetime since: Date filter (datetime or str in ISO 8601) :returns: A :doc:`result` .. note:: @@ -68,12 +60,7 @@ class Issue(Service, MimeTypeMixin): """ params = dict(milestone=milestone, state=state, assignee=assignee, mentioned=mentioned, labels=labels, sort=sort, direction=direction) - try: - date = datetime.strptime(since, GITHUB_DATE_FORMAT) - params.update(since=date) - except: - pass - + self._normalize_data('since', params) request = self.make_request('issues.list_by_repo', user=user, repo=repo) return self._get_result(request, **params) diff --git a/pygithub3/services/issues/milestones.py b/pygithub3/services/issues/milestones.py index fa0f95d..ac43a0c 100644 --- a/pygithub3/services/issues/milestones.py +++ b/pygithub3/services/issues/milestones.py @@ -1,10 +1,8 @@ #!/usr/bin/env python # -*- encoding: utf-8 -*- -from datetime import datetime - from pygithub3.services.base import Service -from pygithub3.resources.base import GITHUB_DATE_FORMAT + class Milestones(Service): """ Consume `Milestones API @@ -43,14 +41,6 @@ class Milestones(Service): repo=repo, number=number) return self._get(request) - def _normalize_due_on(self, data): - """ If ``due_on`` comes as ``datetime``, it'll normalize it """ - try: - due_on = datetime.strptime(data.get('due_on'), GITHUB_DATE_FORMAT) - data.update({'due_on': due_on}) - except: - pass - def create(self, data, user=None, repo=None): """ Create a milestone @@ -64,7 +54,7 @@ class Milestones(Service): .. note:: Remember :ref:`config precedence` """ - self._normalize_due_on(data) + self._normalize_date('due_on', data) request = self.make_request('issues.milestones.create', user=user, repo=repo, body=data) return self._post(request) @@ -83,7 +73,7 @@ class Milestones(Service): .. note:: Remember :ref:`config precedence` """ - self._normalize_due_on(data) + self._normalize_date('due_on', data) request = self.make_request('issues.milestones.update', user=user, repo=repo, number=number, body=data) return self._patch(request) |