[Python-checkins] python/nondist/sandbox/setuptools/setuptools/command easy_install.py, 1.14, 1.15

pje@users.sourceforge.net pje at users.sourceforge.net
Mon Jul 18 04:06:35 CEST 2005


Update of /cvsroot/python/python/nondist/sandbox/setuptools/setuptools/command
In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv10165/setuptools/command
Modified Files:
	easy_install.py 
Log Message:
Massive API refactoring; see setuptools.txt changelog for details. Also,
add ``#egg=project-version`` link support, and docs on how to make your
package available for EasyInstall to find.
Index: easy_install.py
===================================================================
RCS file: /cvsroot/python/python/nondist/sandbox/setuptools/setuptools/command/easy_install.py,v
retrieving revision 1.14
retrieving revision 1.15
diff -u -d -r1.14 -r1.15
--- easy_install.py	18 Jul 2005 01:39:45 -0000	1.14
+++ easy_install.py	18 Jul 2005 02:06:30 -0000	1.15
@@ -419,7 +419,7 @@
 options = match.group(1) or ''
 if options:
 options = ' '+options
- spec = dist.as_requirement()
+ spec = str(dist.as_requirement())
 executable = os.path.normpath(sys.executable)
 
 if dev_path:
@@ -789,7 +789,7 @@
 self.shadow_path.remove(d.location)
 
 if not self.multi_version:
- if dist.location in map(normalize_path,self.pth_file.paths):
+ if dist.location in self.pth_file.paths:
 log.info(
 "%s is already the active version in easy-install.pth",
 dist
@@ -802,10 +802,10 @@
 
 self.pth_file.save()
 
- if dist.project_name=='setuptools':
+ if dist.key=='setuptools':
 # Ensure that setuptools itself never becomes unavailable!
 # XXX should this check for latest version?
- f = open(os.path.join(self.install_dir,'setuptools.pth'), 'w')
+ f = open(os.path.join(self.install_dir,'setuptools.pth'), 'wt')
 f.write(dist.location+'\n')
 f.close()
 
@@ -1027,6 +1027,7 @@
 """A .pth file with Distribution paths in it"""
 
 dirty = False
+
 def __init__(self, filename):
 self.filename = filename; self._load()
 AvailableDistributions.__init__(
@@ -1035,22 +1036,34 @@
 
 def _load(self):
 self.paths = []
+ seen = {}
 if os.path.isfile(self.filename):
- self.paths = [line.rstrip() for line in open(self.filename,'rt')]
- while self.paths and not self.paths[-1].strip(): self.paths.pop()
- # delete non-existent paths, in case somebody deleted a package
- # manually:
- for line in list(yield_lines(self.paths)):
- if not os.path.exists(line):
- self.paths.remove(line); self.dirty = True
- 
+ for line in open(self.filename,'rt'):
+ path = line.rstrip()
+ self.paths.append(path)
+ if not path.strip() or path.strip().startswith('#'):
+ continue
+ # skip non-existent paths, in case somebody deleted a package
+ # manually, and duplicate paths as well
+ path = self.paths[-1] = normalize_path(path)
+ if not os.path.exists(path) or path in seen:
+ self.paths.pop() # skip it
+ self.dirty = True # we cleaned up, so we're dirty now :)
+ continue
+ seen[path] = 1 
+
+ while self.paths and not self.paths[-1].strip(): self.paths.pop()
+
 def save(self):
 """Write changed .pth file back to disk"""
 if self.dirty:
+ log.debug("Saving %s", self.filename)
 data = '\n'.join(self.paths+[''])
 f = open(self.filename,'wt'); f.write(data); f.close()
 self.dirty = False
 
+
+
 def add(self,dist):
 """Add `dist` to the distribution map"""
 if dist.location not in self.paths:
@@ -1092,16 +1105,3 @@
 
 
 
-
-
-
-
-
-
-
-
-
-
-
-
-


More information about the Python-checkins mailing list

AltStyle によって変換されたページ (->オリジナル) /