Charles-François Natali <neolo...@free.fr> added the comment:

> I prefer to write a "best-effort" function

I disagree. People who explicitely use an atomic file API want 
atomicity/persistency, otherwise they wouldn't use it. Exposing a function that 
may, or may not, be atomic is just plain wrong.
IMHO, the right thing to do on OSes that don't provide atomic rename (and I 
doubt there are many of them, see below) is to raise an exception, so that the 
user can fall back to whatever he thinks is best (bail out, rollback, etc).

> and so I consider that shutil is the best place for such function.

As noted by Jean-Paul, shutil stands for "shell utils": that would be a rather 
poor choice: atomicfile fits in shutil as much as tempfile would :-)

> Some OS don't provide atomic rename.

Which one?
See Antoine's message:
http://bugs.python.org/issue8828#msg146274

Apparently, Windows >= XP does have an atomic rename(), and every POSIX 
compliant OS rename(2) should be atomic.

> os.path is mostly about path manipulation functions

I agree.
I wish we had something like:
io.file
io.file.tempfile
io.file.path
io.file.atomicfile

Thoughts?

----------

_______________________________________
Python tracker <rep...@bugs.python.org>
<http://bugs.python.org/issue8604>
_______________________________________
_______________________________________________
Python-bugs-list mailing list
Unsubscribe: 
http://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com

Reply via email to