From f3b15335d59eeb44006530a20840c9d9482d8748 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Rapha=C3=ABl=20Vinot?= Date: Fri, 17 Apr 2015 10:48:55 +0200 Subject: [PATCH] Add option to get a valid json dump. Alternative approach to #1 --- pylevel2/api.py | 21 ++++++++++++++++++--- setup.py | 2 +- 2 files changed, 19 insertions(+), 4 deletions(-) diff --git a/pylevel2/api.py b/pylevel2/api.py index 25d6397..462ba2f 100644 --- a/pylevel2/api.py +++ b/pylevel2/api.py @@ -3,8 +3,19 @@ import requests import urlparse -from datetime import datetime +from datetime import datetime, date import os +import json + + +class DatetimeEncoder(json.JSONEncoder): + def default(self, obj): + if isinstance(obj, datetime): + return obj.strftime('%Y-%m-%d %H:%M:%S') + elif isinstance(obj, date): + return obj.strftime('%Y-%m-%d') + # Let the base class default method raise the TypeError + return json.JSONEncoder.default(self, obj) class PyLevel2(object): @@ -17,7 +28,7 @@ class PyLevel2(object): self.session = requests.Session() self.session.headers.update({'content-type': 'application/json'}) - def events(self, count=None, year=None, month=None): + def events(self, count=None, year=None, month=None, json_dump=False): """ Get the events. """ @@ -55,12 +66,14 @@ class PyLevel2(object): else: # invalid query pass + if json_dump: + return json.dumps(to_return, cls=DatetimeEncoder) return to_return else: # Something bad happened pass - def spaceapi(self): + def spaceapi(self, json_dump=False): """ Gives information about Level2. """ @@ -73,6 +86,8 @@ class PyLevel2(object): else: # invalid query pass + if json_dump: + return json.dumps(data, cls=DatetimeEncoder) return data else: # Something bad happened diff --git a/setup.py b/setup.py index bb5916e..279fe44 100644 --- a/setup.py +++ b/setup.py @@ -4,7 +4,7 @@ from setuptools import setup setup( name='pylevel2', - version='1.0', + version='1.1', author='Raphaël Vinot', author_email='raphael.vinot@gmail.com', maintainer='Raphaël Vinot',