[Python-checkins] python/dist/src/Lib/plat-mac pimp.py,1.28,1.29

jackjansen at users.sourceforge.net jackjansen at users.sourceforge.net
Sat Feb 28 17:34:04 EST 2004


Update of /cvsroot/python/python/dist/src/Lib/plat-mac
In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv16067

Modified Files:
	pimp.py 
Log Message:
Started on version 0.4: better scheme for finding correct database:
- Try not only "darwin-7.X.Y" but also "darwin-7.X" and "darwin-7",
  so far we've never had to create anew database for a minor release.
- Distinguish between the various different installs (user-installed
  MacPython, apple-installed MacPython, other).


Index: pimp.py
===================================================================
RCS file: /cvsroot/python/python/dist/src/Lib/plat-mac/pimp.py,v
retrieving revision 1.28
retrieving revision 1.29
diff -C2 -d -r1.28 -r1.29
*** pimp.py	27 Nov 2003 22:55:39 -0000	1.28
--- pimp.py	28 Feb 2004 22:34:02 -0000	1.29
***************
*** 36,40 ****
  NO_EXECUTE=0
  
! PIMP_VERSION="0.3"
  
  # Flavors:
--- 36,40 ----
  NO_EXECUTE=0
  
! PIMP_VERSION="0.4"
  
  # Flavors:
***************
*** 45,49 ****
  DEFAULT_BUILDDIR='/tmp'
  DEFAULT_INSTALLDIR=distutils.sysconfig.get_python_lib()
! DEFAULT_PIMPDATABASE="http://www.python.org/packman/version-0.3/24a0-%s.plist" % distutils.util.get_platform()
  
  def _cmd(output, dir, *cmditems):
--- 45,49 ----
  DEFAULT_BUILDDIR='/tmp'
  DEFAULT_INSTALLDIR=distutils.sysconfig.get_python_lib()
! DEFAULT_PIMPDATABASE_FMT="http://www.python.org/packman/version-%s/%s-%s-%s-%s-%s.plist"
  
  def _cmd(output, dir, *cmditems):
***************
*** 164,168 ****
              buildDir = DEFAULT_BUILDDIR
          if not pimpDatabase:
!             pimpDatabase = DEFAULT_PIMPDATABASE
          self.setInstallDir(installDir)
          self.flavorOrder = flavorOrder
--- 164,168 ----
              buildDir = DEFAULT_BUILDDIR
          if not pimpDatabase:
!             pimpDatabase = self.getDefaultDatabase()
          self.setInstallDir(installDir)
          self.flavorOrder = flavorOrder
***************
*** 186,189 ****
--- 186,236 ----
      def isUserInstall(self):
          return self.installDir != DEFAULT_INSTALLDIR
+         
+     def getDefaultDatabase(self, experimental=False):
+         if experimental:
+             status = "exp"
+         else:
+             status = "prod"
+             
+         major, minor, micro, state, extra = sys.version_info
+         pyvers = '%d.%d' % (major, minor)
+         if state != 'final':
+             pyvers = pyvers + '%s%d' % (state, extra)
+             
+         longplatform = distutils.util.get_platform()
+         osname, release, machine = longplatform.split('-')
+         # For some platforms we may want to differentiate between
+         # installation types
+         if osname == 'darwin':
+             if sys.prefix.startswith('/System/Library/Frameworks/Python.framework'):
+                 osname = 'darwin_apple'
+             elif sys.prefix.startswith('/Library/Frameworks/Python.framework'):
+                 osname = 'darwin_macpython'
+             # Otherwise we don't know...
+         # Now we try various URLs by playing with the release string.
+         # We remove numbers off the end until we find a match.
+         rel = release
+         while True:
+             url = DEFAULT_PIMPDATABASE_FMT % (PIMP_VERSION, status, pyvers, osname, rel, machine)
+             try:
+                 urllib2.urlopen(url)
+             except urllib2.HTTPError, arg:
+             	print 'getDefaultDatabase: cannot open', url
+             	print 'error', arg
+                 pass
+             else:
+                 break
+             if not rel:
+                 # We're out of version numbers to try. Use the
+                 # full release number, this will give a reasonable
+                 # error message later
+                 url = DEFAULT_PIMPDATABASE_FMT % (PIMP_VERSION, status, pyvers, osname, release, machine)
+                 break
+             idx = rel.rfind('.')
+             if idx < 0:
+                 rel = ''
+             else:
+                 rel = rel[:idx]
+         return url
  
      def check(self):
***************
*** 933,937 ****
          print "              (default: %s)" % DEFAULT_INSTALLDIR
          print "       -u url URL for database"
-         print "              (default: %s)" % DEFAULT_PIMPDATABASE
          sys.exit(1)
          
--- 980,983 ----




More information about the Python-checkins mailing list