case sensitive dir
This commit is contained in:
parent
300b268f6c
commit
118cd59bb6
2 changed files with 79 additions and 0 deletions
1
Adafruit_IO/__init__.py
Normal file
1
Adafruit_IO/__init__.py
Normal file
|
|
@ -0,0 +1 @@
|
|||
from .client import Client
|
||||
78
Adafruit_IO/client.py
Normal file
78
Adafruit_IO/client.py
Normal file
|
|
@ -0,0 +1,78 @@
|
|||
import json
|
||||
|
||||
from urllib3 import connection_from_url
|
||||
from urllib import urlencode, quote
|
||||
|
||||
#fork of ApiClient Class: https://github.com/shazow/apiclient
|
||||
class Client(object):
|
||||
BASE_URL = 'http://localhost:3002/'
|
||||
|
||||
def __init__(self, key, rate_limit_lock=None):
|
||||
self.key = key
|
||||
self.rate_limit_lock = rate_limit_lock
|
||||
self.connection_pool = self._make_connection_pool(self.BASE_URL)
|
||||
|
||||
def _make_connection_pool(self, url):
|
||||
return connection_from_url(url)
|
||||
|
||||
def _compose_url(self, path):
|
||||
return self.BASE_URL + path
|
||||
|
||||
def _compose_get_url(self, path, params=None):
|
||||
return self.BASE_URL + path + '?' + urlencode(params)
|
||||
|
||||
def _handle_response(self, response):
|
||||
return json.loads(response.data)
|
||||
|
||||
def _request(self, method, path, params=None):
|
||||
if (method.lower() == "get"):
|
||||
url = self._compose_get_url(path, params)
|
||||
else:
|
||||
url = self._compose_url(path)
|
||||
|
||||
self.rate_limit_lock and self.rate_limit_lock.acquire()
|
||||
headers = {"X-Api-Key": self.key, 'Content-Type':'application/json'}
|
||||
if (method.upper() == "GET"):
|
||||
r = self.connection_pool.urlopen(method.upper(), url, headers=headers)
|
||||
else:
|
||||
r = self.connection_pool.urlopen(method.upper(), url, headers=headers, body=json.dumps(params))
|
||||
|
||||
return self._handle_response(r)
|
||||
|
||||
def _get(self, path, **params):
|
||||
return self._request('GET', path, params=params)
|
||||
|
||||
def _post(self, path, params):
|
||||
return self._request('POST', path, params=params)
|
||||
|
||||
def send(self, feed_name, data):
|
||||
feed_name = quote(feed_name)
|
||||
path = "api/feeds/{}/streams/send".format(feed_name)
|
||||
return self._post(path, {'value': data})
|
||||
|
||||
def receive(self, feed_name):
|
||||
feed_name = quote(feed_name)
|
||||
path = "api/feeds/{}/streams/last".format(feed_name)
|
||||
return self._get(path)
|
||||
|
||||
def receive_next(self, feed_name):
|
||||
feed_name = quote(feed_name)
|
||||
path = "api/feeds/{}/streams/next".format(feed_name)
|
||||
return self._get(path)
|
||||
|
||||
def receive_previous(self, feed_name):
|
||||
feed_name = quote(feed_name)
|
||||
path = "api/feeds/{}/streams/last".format(feed_name)
|
||||
return self._get(path)
|
||||
|
||||
def streams(self, feed_id_or_key, stream_id=None):
|
||||
if stream_id is None:
|
||||
path = "api/feeds/{}/streams".format(feed_id_or_key)
|
||||
else:
|
||||
path = "api/feeds/{}/streams/{}".format(feed_id_or_key, stream_id)
|
||||
return self._get(path)
|
||||
|
||||
def create_stream(self, feed_id_or_key, data):
|
||||
path = "api/feeds/{}/streams".format(feed_id_or_key)
|
||||
return self._post(path, data)
|
||||
|
||||
Loading…
Reference in a new issue