Selaa lähdekoodia

use atomic writes inside to_json helper func

Nick Sweeting 6 vuotta sitten
vanhempi
sitoutus
22bea7a4f6
2 muutettua tiedostoa jossa 4 lisäystä ja 3 poistoa
  1. 0 1
      archivebox/legacy/index.py
  2. 4 2
      archivebox/legacy/util.py

+ 0 - 1
archivebox/legacy/index.py

@@ -20,7 +20,6 @@ from .config import (
 )
 from .util import (
     scheme,
-    fuzzy_url,
     ts_to_date,
     urlencode,
     htmlencode,

+ 4 - 2
archivebox/legacy/util.py

@@ -618,8 +618,10 @@ class ExtendedEncoder(JSONEncoder):
 
 def to_json(obj: Any, file: IO=None, indent: Optional[int]=4, sort_keys: bool=True, cls=ExtendedEncoder) -> Optional[str]:
     if file:
-        json.dump(obj, file, indent=indent, sort_keys=sort_keys, cls=ExtendedEncoder)
-        return None
+        path = os.path.realpath(file.name)
+        contents = json.dumps(obj, indent=indent, sort_keys=sort_keys, cls=ExtendedEncoder)
+        atomic_write(contents, path)
+        return contents
     else:
         return json.dumps(obj, indent=indent, sort_keys=sort_keys, cls=ExtendedEncoder)