Mercurial > lbo > hg > async-google-apis
changeset 96:1d6955cd4336
Improve discovery document caching
author | Lewin Bormann <lbo@spheniscida.de> |
---|---|
date | Sat, 24 Oct 2020 22:41:44 +0200 |
parents | f6761dc9ca86 |
children | 2edf033d4f3f |
files | generate/generate.py |
diffstat | 1 files changed, 8 insertions(+), 9 deletions(-) [+] |
line wrap: on
line diff
--- a/generate/generate.py Sat Oct 24 22:12:27 2020 +0200 +++ b/generate/generate.py Sat Oct 24 22:41:44 2020 +0200 @@ -506,15 +506,14 @@ return [it for it in doc['items'] if (not apis or it['id'] in apis)] -def fetch_discovery_doc(api_doc=None, url=None): +def fetch_discovery_doc(url): """Fetch discovery document for a given (short) API doc from the overall discovery document.""" - if api_doc: - cached = from_cache(api_doc['id']) - if cached: - return cached - url = api_doc['discoveryRestUrl'] + cachekey = url.replace('/', '_') + cached = from_cache(cachekey) + if cached: + return cached js = json.loads(requests.get(url).text) - to_cache(api_doc['id'], js) + to_cache(cachekey, js) return js @@ -541,7 +540,7 @@ return if args.doc: - discdoc = fetch_discovery_doc(url=args.doc) + discdoc = fetch_discovery_doc(args.doc) if 'error' in discdoc: print('Error while fetching document for', doc['id'], ':', discdoc) return @@ -552,7 +551,7 @@ for doc in docs: try: - discdoc = fetch_discovery_doc(doc) + discdoc = fetch_discovery_doc(doc['discoveryRestUrl']) if 'error' in discdoc: print('Error while fetching document for', doc['id'], ':', discdoc) continue