diff options
Diffstat (limited to 'eggs/zc.buildout-1.5.2-py2.6.egg/zc/buildout/rmtree.py')
-rw-r--r-- | eggs/zc.buildout-1.5.2-py2.6.egg/zc/buildout/rmtree.py | 66 |
1 files changed, 0 insertions, 66 deletions
diff --git a/eggs/zc.buildout-1.5.2-py2.6.egg/zc/buildout/rmtree.py b/eggs/zc.buildout-1.5.2-py2.6.egg/zc/buildout/rmtree.py deleted file mode 100644 index a4995f2..0000000 --- a/eggs/zc.buildout-1.5.2-py2.6.egg/zc/buildout/rmtree.py +++ /dev/null @@ -1,66 +0,0 @@ -############################################################################## -# -# Copyright (c) 2006 Zope Corporation and Contributors. -# All Rights Reserved. -# -# This software is subject to the provisions of the Zope Public License, -# Version 2.0 (ZPL). A copy of the ZPL should accompany this distribution. -# THIS SOFTWARE IS PROVIDED "AS IS" AND ANY AND ALL EXPRESS OR IMPLIED -# WARRANTIES ARE DISCLAIMED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED -# WARRANTIES OF TITLE, MERCHANTABILITY, AGAINST INFRINGEMENT, AND FITNESS -# FOR A PARTICULAR PURPOSE. -# -############################################################################## - - -import shutil -import os -import doctest - -def rmtree (path): - """ - A variant of shutil.rmtree which tries hard to be successful - On windows shutil.rmtree aborts when it tries to delete a - read only file. - This tries to chmod the file to writeable and retries before giving up. - - >>> from tempfile import mkdtemp - - Let's make a directory ... - - >>> d = mkdtemp() - - and make sure it is actually there - - >>> os.path.isdir (d) - 1 - - Now create a file ... - - >>> foo = os.path.join (d, 'foo') - >>> open (foo, 'w').write ('huhu') - - and make it unwriteable - - >>> os.chmod (foo, 0400) - - rmtree should be able to remove it: - - >>> rmtree (d) - - and now the directory is gone - - >>> os.path.isdir (d) - 0 - """ - def retry_writeable (func, path, exc): - os.chmod (path, 0600) - func (path) - - shutil.rmtree (path, onerror = retry_writeable) - -def test_suite(): - return doctest.DocTestSuite() - -if "__main__" == __name__: - doctest.testmod() |