MCPcopy Create free account
hub / github.com/PyWavelets/pywt / CachedGet

Class CachedGet

util/gh_lists.py:98–124  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

96
97
98class CachedGet:
99 def __init__(self, filename, getter):
100 self._getter = getter
101
102 self.filename = filename
103 if os.path.isfile(filename):
104 print(f"[gh_lists] using {filename} as cache (remove it if you want fresh data)",
105 file=sys.stderr)
106 with open(filename, encoding='utf-8') as f:
107 self.cache = json.load(f)
108 else:
109 self.cache = {}
110
111 def get(self, url):
112 if url not in self.cache:
113 data = self._getter.get_multipage(url)
114 self.cache[url] = data
115 return data
116 else:
117 print("[gh_lists] (cached):", url, file=sys.stderr, flush=True)
118 return self.cache[url]
119
120 def save(self):
121 tmp = self.filename + ".new"
122 with open(tmp, 'w', encoding='utf-8') as f:
123 json.dump(self.cache, f)
124 os.rename(tmp, self.filename)
125
126
127class GithubGet:

Callers 1

mainFunction · 0.85

Calls

no outgoing calls

Tested by

no test coverage detected