From b6521e82d407256466ec617f979962f19287bd80 Mon Sep 17 00:00:00 2001 From: Osvaldo Mena Date: Mon, 3 Aug 2015 20:45:47 -0300 Subject: [PATCH 1/2] Use a request session for all the requests --- firebase/__init__.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/firebase/__init__.py b/firebase/__init__.py index 81e94a6..a05dd13 100644 --- a/firebase/__init__.py +++ b/firebase/__init__.py @@ -3,7 +3,7 @@ import os #for os.path.dirname import json #for dumps - +s = requests.Session() class Firebase(): ROOT_URL = '' #no trailing slash @@ -84,7 +84,7 @@ def __request(self, method, **kwargs): del kwargs['params'] params.update({'auth': self.auth_token}) - r = requests.request(method, self.__url(), params=params, **kwargs) + r = s.request(method, self.__url(), params=params, **kwargs) r.raise_for_status() #throw exception if error return r.json() From 0e5e63e278adb5ec3bb0489bbf78d5d8abb53ff3 Mon Sep 17 00:00:00 2001 From: Osvaldo Mena Date: Mon, 3 Aug 2015 20:51:27 -0300 Subject: [PATCH 2/2] PEP8ify --- firebase/__init__.py | 48 +++++++++++++++++++------------------------- 1 file changed, 21 insertions(+), 27 deletions(-) diff --git a/firebase/__init__.py b/firebase/__init__.py index a05dd13..4a5cd03 100644 --- a/firebase/__init__.py +++ b/firebase/__init__.py @@ -1,18 +1,19 @@ import requests -import urlparse #for urlparse and urljoin -import os #for os.path.dirname -import json #for dumps +import urlparse # for urlparse and urljoin +import os # for os.path.dirname +import json # for dumps + +session = requests.Session() -s = requests.Session() class Firebase(): - ROOT_URL = '' #no trailing slash + ROOT_URL = '' # no trailing slash def __init__(self, root_url, auth_token=None): self.ROOT_URL = root_url.rstrip('/') self.auth_token = auth_token - #These methods are intended to mimic Firebase API calls. + # These methods are intended to mimic Firebase API calls. def child(self, path): root_url = '%s/' % self.ROOT_URL @@ -21,17 +22,15 @@ def child(self, path): def parent(self): url = os.path.dirname(self.ROOT_URL) - #If url is the root of your Firebase, return None + # If url is the root of your Firebase, return None up = urlparse.urlparse(url) if up.path == '': - return None #maybe throw exception here? + return None # maybe throw exception here? return Firebase(url) def name(self): return os.path.basename(self.ROOT_URL) - def toString(self): - return self.__str__() def __str__(self): return self.ROOT_URL @@ -47,33 +46,29 @@ def update(self, data): def remove(self): return self.delete() - - #These mirror REST API functionality - def put(self, data): - return self.__request('put', data = data) + return self.__request('put', data=data) def patch(self, data): - return self.__request('patch', data = data) + return self.__request('patch', data=data) def get(self): return self.__request('get') - #POST differs from PUT in that it is equivalent to doing a 'push()' in - #Firebase where a new child location with unique name is generated and - #returned + # POST differs from PUT in that it is equivalent to doing a 'push()' in + # Firebase where a new child location with unique name is generated and + # returned def post(self, data): - return self.__request('post', data = data) + return self.__request('post', data=data) def delete(self): return self.__request('delete') - - #Private + # Private def __request(self, method, **kwargs): - #Firebase API does not accept form-encoded PUT/POST data. It needs to - #be JSON encoded. + # Firebase API does not accept form-encoded PUT/POST data. It needs to + # be JSON encoded. if 'data' in kwargs: kwargs['data'] = json.dumps(kwargs['data']) @@ -84,11 +79,10 @@ def __request(self, method, **kwargs): del kwargs['params'] params.update({'auth': self.auth_token}) - r = s.request(method, self.__url(), params=params, **kwargs) - r.raise_for_status() #throw exception if error + r = session.request(method, self.__url(), params=params, **kwargs) + r.raise_for_status() # throw exception if error return r.json() - def __url(self): - #We append .json to end of ROOT_URL for REST API. + # We append .json to end of ROOT_URL for REST API. return '%s.json' % self.ROOT_URL