| from request import PandaRequest | |
| from models import Video, Cloud, Encoding, Profile, Notifications, PandaDict | |
| from models import GroupRetriever, SingleRetriever | |
| from models import PandaError | |
| from upload_session import UploadSession | |
| import logging | |
| logging.getLogger(__name__).addHandler(logging.NullHandler()) | |
| class Panda(object): | |
| def __init__(self, access_key, secret_key, cloud_id=None, api_host='api.pandastream.com', api_port=443): | |
| self.cloud_id = cloud_id | |
| self.access_key = access_key | |
| self.secret_key = secret_key | |
| self.api_host = api_host | |
| self.api_port = api_port | |
| self.api_version = 2 | |
| self.videos = GroupRetriever(self, Video) | |
| self.clouds = GroupRetriever(self, Cloud) | |
| self.encodings = GroupRetriever(self, Encoding) | |
| self.profiles = GroupRetriever(self, Profile) | |
| self.notifications = SingleRetriever(self, Notifications) | |
| def credentials(self): | |
| cred = [ | |
| 'cloud_id', | |
| 'access_key', | |
| 'secret_key', | |
| 'api_host', | |
| 'api_port', | |
| 'api_version' | |
| ] | |
| return {key: self.__dict__[key] for key in cred } | |
| def get(self, request_path, params={}): | |
| return PandaRequest('GET', request_path, self.credentials(), params).send() | |
| def post(self, request_path, params={}): | |
| return PandaRequest('POST', request_path, self.credentials(), params).send() | |
| def put(self, request_path, params={}): | |
| return PandaRequest('PUT', request_path, self.credentials(), params).send() | |
| def delete(self, request_path, params={}): | |
| return PandaRequest('DELETE', request_path, self.credentials(), params).send() | |
| def signed_params(self, verb, path, timestamp=None, params={}): | |
| return PandaRequest(verb, path, self.credentials(), params, timestamp).signed_params() | |
| def upload_session(self, path, **kwargs): | |
| return UploadSession(self, path, **kwargs) | |
| def cloud_details(self): | |
| return SingleRetriever(self, PandaDict, "/clouds/{0}".format(self.cloud_id)).get() | |