Message150087
| Author |
neologix |
| Recipients |
eric.araujo, eric.smith, exarkun, giampaolo.rodola, meatballhat, milko.krachounov, neologix, olemis, pitrou, tarek, vstinner |
| Date |
2011年12月22日.10:51:26 |
| SpamBayes Score |
9.469704e-05 |
| Marked as misclassified |
No |
| Message-id |
<1324551087.71.0.326534828348.issue8604@psf.upfronthosting.co.za> |
| In-reply-to |
| Content |
> 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? |
|
History
|
|---|
| Date |
User |
Action |
Args |
| 2011年12月22日 10:51:27 | neologix | set | recipients:
+ neologix, exarkun, pitrou, vstinner, eric.smith, giampaolo.rodola, tarek, eric.araujo, olemis, meatballhat, milko.krachounov |
| 2011年12月22日 10:51:27 | neologix | set | messageid: <1324551087.71.0.326534828348.issue8604@psf.upfronthosting.co.za> |
| 2011年12月22日 10:51:27 | neologix | link | issue8604 messages |
| 2011年12月22日 10:51:26 | neologix | create |
|