def __init__(self, baseurl, **kw): kw['baseurl'] = baseurl super(API, self).__init__(**kw) self._resources = [] self._request = self._meta.request(**kw) request.validate(self._request)
def __init__(self, **kw): super(ResourceHandler, self).__init__(**kw) try: assert self._meta.name, "name required" assert self._meta.path, "path required" except AssertionError as e: raise exc.dRestResourceError(e.args[0]) self._meta.path = self._meta.path.lstrip('/').rstrip('/') # instantiate it only if its not if not getattr(self._meta.request, '_meta', None): if not self._meta.baseurl: raise exc.dRestResourceError('baseurl required when passing uninstantiated request handler.') self._request = self._meta.request(baseurl=self._meta.baseurl) else: self._request = self._meta.request self._meta.request = self._request.__class__ request.validate(self._request)
def _setup_request_handler(self, **kw): request.validate(self._meta.request_handler) self.request = self._meta.request_handler(**kw) # just makes things easier to be able to wrap meta under the api # and pass it to the request handler. for meta in dir(self._meta): if meta.startswith('_'): continue if hasattr(self.request._meta, meta): setattr(self.request._meta, meta, getattr(self._meta, meta)) for key in self._meta.extra_headers: self.request.add_header(key, self._meta.extra_headers[key]) for key in self._meta.extra_params: self.request.add_param(key, self._meta.extra_params[key]) for key in self._meta.extra_url_params: self.request.add_url_param(key, self._meta.extra_url_params[key])