[py-svn] r23227 - py/dist/py/misc

jan at codespeak.net jan at codespeak.net
Sat Feb 11 09:20:33 CET 2006


Author: jan
Date: Sat Feb 11 09:20:30 2006
New Revision: 23227

Modified:
   py/dist/py/misc/dynpkg.py
Log:
exclude temp directories



Modified: py/dist/py/misc/dynpkg.py
==============================================================================
--- py/dist/py/misc/dynpkg.py	(original)
+++ py/dist/py/misc/dynpkg.py	Sat Feb 11 09:20:30 2006
@@ -10,6 +10,8 @@
                  debug=py.log.STDOUT,
                  command=None) # py.log.STDOUT)
 
+from distutils import util
+
 class DistPython: 
     def __init__(self, location=None, python=None): 
         if python is None:
@@ -18,6 +20,7 @@
         if location is None:
             location = py.path.local()
         self.location = location 
+        self.plat_specifier = '.%s-%s' % (util.get_platform(), sys.version[0:3])
 
     def clean(self):
         out = self._exec("clean -a")
@@ -38,7 +41,7 @@
             old.chdir()
         return out 
 
-    def get_package_path(self, pkgname): 
+    def get_package_path(self, pkgname):
         pkg = self._get_package_path(pkgname) 
         if pkg is None:
             #self.clean()
@@ -52,14 +55,15 @@
         #assert major >=2 and minor in (3,4,5)
         suffix = "%s.%s" %(major, minor)
         location = self.location
-        base = location.join('build')
-        if base.check(dir=1):
-            # XXX check if we need to rebuild
-            for pkg in base.visit(lambda x: x.check(dir=1)): 
-                if pkg.basename == pkgname:
-                    if pkg.dirpath().basename.endswith(suffix) or \
-                       pkg.dirpath().basename == 'lib':
-                        return pkg
+        for base in [location.join('build', 'lib'),
+                     location.join('build', 'lib'+ self.plat_specifier)]:
+            if base.check(dir=1):
+                for pkg in base.visit(lambda x: x.check(dir=1)):
+                    if pkg.basename == pkgname:
+                        # 
+                        if pkg.dirpath().basename ==  'lib'+ self.plat_specifier or \
+                           pkg.dirpath().basename == 'lib':
+                            return pkg
 
 def setpkg(finalpkgname, distdir):
     assert distdir.check(dir=1)



More information about the pytest-commit mailing list