Skip to main content
This is a pre-production deployment of Warehouse. Changes made here affect the production instance of PyPI (pypi.python.org).
Help us improve Python packaging - Donate today!

os.replace() backport for Python 2.x

Project Description

Backport of os.replace()

http://docs.python.org/3.3/library/os.html#os.replace

http://bugs.python.org/issue8828

Suggested usage:

import sys
if sys.version_info >= (3, 3):
    from os import replace
elif sys.platform == "win32":
    from osreplace import replace
else:
    # POSIX rename() is always atomic
    from os import rename as replace

Python 3.1 is not supported. Please upgrade to Python 3.2 or better.

Technical details

The replace() function uses MoveFileEx() with MOVEFILE_REPLACE_EXISTING flag. The flag can’t be used to rename directories so it’s not entirely equal to rename(P) on POSIX.

MoveFileEx() is NOT guaranteed to be atomic. Under certain and unknown circumstances it may silently fall back to a non atomic call to CopyFile(). MoveFileTransacted() could improve the situation but it requires Vista or newer.

http://msdn.microsoft.com/en-us/library/windows/desktop/aa365240%28v=vs.85%29.aspx http://msdn.microsoft.com/en-us/library/windows/desktop/aa365241%28v=vs.85%29.aspx

Credits

Original patch by Antoine Pitrou.

Changelog

pyosreplace 0.1

Release date: 05-Nov-2013

  • Python 3.2 support
  • tox for testing

pyosreplace 0.1b1

Release date: 02-Jul-2013

  • initial beta release
Release History

Release History

This version
History Node

0.1

History Node

0.1b1

Download Files

Download Files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

File Name & Checksum SHA256 Checksum Help Version File Type Upload Date
pyosreplace-0.1.win32-py2.6.exe (202.2 kB) Copy SHA256 Checksum SHA256 2.6 Windows Installer Nov 5, 2013
pyosreplace-0.1.win32-py2.7.exe (201.9 kB) Copy SHA256 Checksum SHA256 2.7 Windows Installer Nov 5, 2013
pyosreplace-0.1.win32-py3.2.exe (201.9 kB) Copy SHA256 Checksum SHA256 3.2 Windows Installer Nov 5, 2013
pyosreplace-0.1.win-amd64-py2.6.exe (229.6 kB) Copy SHA256 Checksum SHA256 2.6 Windows Installer Nov 5, 2013
pyosreplace-0.1.win-amd64-py2.7.exe (229.3 kB) Copy SHA256 Checksum SHA256 2.7 Windows Installer Nov 5, 2013
pyosreplace-0.1.win-amd64-py3.2.exe (229.8 kB) Copy SHA256 Checksum SHA256 3.2 Windows Installer Nov 5, 2013
pyosreplace-0.1.zip (10.5 kB) Copy SHA256 Checksum SHA256 Source Nov 5, 2013

Supported By

WebFaction WebFaction Technical Writing Elastic Elastic Search Pingdom Pingdom Monitoring Dyn Dyn DNS Sentry Sentry Error Logging CloudAMQP CloudAMQP RabbitMQ Heroku Heroku PaaS Kabu Creative Kabu Creative UX & Design Fastly Fastly CDN DigiCert DigiCert EV Certificate Rackspace Rackspace Cloud Servers DreamHost DreamHost Log Hosting