summaryrefslogtreecommitdiff
path: root/setuptools/command
diff options
context:
space:
mode:
authorPJ Eby <distutils-sig@python.org>2006-07-10 21:30:12 +0000
committerPJ Eby <distutils-sig@python.org>2006-07-10 21:30:12 +0000
commit9ba52cf30de1f9e8c019481e615fd661e4533bd2 (patch)
tree60865a60eb6c294e17bc98f920fcce20536d6a9c /setuptools/command
parentece23fd51b6eb14ea4a5853ad1a7f315d76ddcf5 (diff)
downloadpython-setuptools-git-9ba52cf30de1f9e8c019481e615fd661e4533bd2.tar.gz
Fix ``sys.path_importer_cache`` not being updated when an existing zipfile
or directory is deleted/overwritten. --HG-- branch : setuptools-0.6 extra : convert_revision : svn%3A6015fed2-1504-0410-9fe1-9d1591cc4771/sandbox/branches/setuptools-0.6%4050546
Diffstat (limited to 'setuptools/command')
-rwxr-xr-xsetuptools/command/easy_install.py18
1 files changed, 9 insertions, 9 deletions
diff --git a/setuptools/command/easy_install.py b/setuptools/command/easy_install.py
index 26f59e1a..71e9d6f2 100755
--- a/setuptools/command/easy_install.py
+++ b/setuptools/command/easy_install.py
@@ -1410,7 +1410,6 @@ def get_script_header(script_text, executable=sys_executable):
options = ' '+options
return "#!%(executable)s%(options)s\n" % locals()
-
def auto_chmod(func, arg, exc):
if func is os.remove and os.name=='nt':
os.chmod(arg, stat.S_IWRITE)
@@ -1418,21 +1417,22 @@ def auto_chmod(func, arg, exc):
exc = sys.exc_info()
raise exc[0], (exc[1][0], exc[1][1] + (" %s %s" % (func,arg)))
-
def uncache_zipdir(path):
- """Ensure that the zip directory cache doesn't have stale info for path"""
+ """Ensure that the importer caches dont have stale info for `path`"""
from zipimport import _zip_directory_cache as zdc
- if path in zdc:
- del zdc[path]
+ _uncache(path, zdc)
+ _uncache(path, sys.path_importer_cache)
+
+def _uncache(path, cache):
+ if path in cache:
+ del cache[path]
else:
path = normalize_path(path)
- for p in zdc:
+ for p in cache:
if normalize_path(p)==path:
- del zdc[p]
+ del cache[p]
return
-
-
def is_python(text, filename='<string>'):
"Is this string a valid Python script?"
try: