def build(serviceName, version, http=None, discoveryServiceUrl=DISCOVERY_URI, developerKey=None, model=JsonModel(), requestBuilder=HttpRequest): params = { 'api': serviceName, 'apiVersion': version } if http is None: http = httplib2.Http() requested_url = uritemplate.expand(discoveryServiceUrl, params) logging.info('URL being requested: %s' % requested_url) resp, content = http.request(requested_url) service = simplejson.loads(content) fn = os.path.join(os.path.dirname(__file__), "contrib", serviceName, "future.json") try: f = file(fn, "r") d = simplejson.load(f) f.close() future = d['resources'] auth_discovery = d['auth'] except IOError: future = {} auth_discovery = {} base = urlparse.urljoin(discoveryServiceUrl, service['restBasePath']) resources = service['resources'] class Service(object): """Top level interface for a service""" def __init__(self, http=http): self._http = http self._baseUrl = base self._model = model self._developerKey = developerKey self._requestBuilder = requestBuilder def auth_discovery(self): return auth_discovery def createMethod(theclass, methodName, methodDesc, futureDesc): def method(self): return createResource(self._http, self._baseUrl, self._model, self._requestBuilder, methodName, self._developerKey, methodDesc, futureDesc) setattr(method, '__doc__', 'A description of how to use this function') setattr(method, '__is_resource__', True) setattr(theclass, methodName, method) for methodName, methodDesc in resources.iteritems(): createMethod(Service, methodName, methodDesc, future.get(methodName, {})) return Service()
def _loadfile(filename): try: fp = file(filename, 'r') try: obj = simplejson.load(fp) finally: fp.close() except IOError: raise InvalidClientSecretsError('File not found: "%s"' % filename) return _validate_clientsecrets(obj)
def _locked_json_read(self): """Get the raw content of the multistore file. The multistore must be locked when this is called. Returns: The contents of the multistore decoded as JSON. """ assert self._thread_lock.locked() self._file.file_handle().seek(0) return simplejson.load(self._file.file_handle())
def main(): for filename in sys.argv[1:]: f = file(filename, "r") dis = simplejson.load(f) f.close() api = dis['name'] version = dis['version'] resources = dis['resources'] for res_name, res_desc in resources.iteritems(): methods = res_desc['methods'] for method_name, method_desc in methods.iteritems(): methods[method_name] = {} path, basename = os.path.split(filename) newfilename = os.path.join(path, "skel-" + basename) f = file(newfilename, "w") simplejson.dump(dis, f, sort_keys=True, indent=2 * ' ') f.close()
def load(fp): obj = simplejson.load(fp) return _validate_clientsecrets(obj)