cacheprovider: set: use json.dumps + write (#6206)

This commit is contained in:
Daniel Hahler 2019-11-16 18:25:28 +01:00 committed by GitHub
commit 4b7148f9a4
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 3 additions and 1 deletions

View File

@ -0,0 +1 @@
cacheprovider: improved robustness and performance with ``cache.set``.

View File

@ -125,13 +125,14 @@ class Cache:
return
if not cache_dir_exists_already:
self._ensure_supporting_files()
data = json.dumps(value, indent=2, sort_keys=True)
try:
f = path.open("w")
except (IOError, OSError):
self.warn("cache could not write path {path}", path=path)
else:
with f:
json.dump(value, f, indent=2, sort_keys=True)
f.write(data)
def _ensure_supporting_files(self):
"""Create supporting files in the cache dir that are not really part of the cache."""