We read every piece of feedback, and take your input very seriously.
To see all available qualifiers, see our documentation.
1 parent 00d50e5 commit 4c7de64Copy full SHA for 4c7de64
atomicwrites/__init__.py
@@ -18,12 +18,27 @@ def _path_to_unicode(x):
18
19
20
if sys.platform != 'win32':
21
+ def _sync_directory(directory):
22
+ # Ensure that filenames are written to disk
23
+ fd = os.open(directory, 0)
24
+ try:
25
+ os.fsync(fd)
26
+ finally:
27
+ os.close(fd)
28
+
29
def _replace_atomic(src, dst):
30
os.rename(src, dst)
31
+ _sync_directory(os.path.dirname(dst))
32
33
def _move_atomic(src, dst):
34
os.link(src, dst)
35
os.unlink(src)
36
37
+ src_dir = os.path.dirname(src)
38
+ dst_dir = os.path.dirname(dst)
39
+ _sync_directory(dst_dir)
40
+ if src_dir != dst_dir:
41
+ _sync_directory(src_dir)
42
else:
43
from ctypes import windll, WinError
44
0 commit comments