diff --git a/bin/BuildSystem/PipBuildSystem.py b/bin/BuildSystem/PipBuildSystem.py index cc06ffcd7..11290fd1f 100644 --- a/bin/BuildSystem/PipBuildSystem.py +++ b/bin/BuildSystem/PipBuildSystem.py @@ -1,33 +1,44 @@ import shutil from BuildSystem.BuildSystemBase import * class PipBuildSystem(BuildSystemBase): def __init__(self): BuildSystemBase.__init__(self, "pip") self.python2 = True self.python3 = True + @property + def __pythons(self): + pythons = [] + if self.python2: + pythons.append("python2") + if self.python3: + pythons.append("python3") + return pythons + def configure(self): return True def make(self): + if self.subinfo.svnTarget(): + for python in self.__pythons: + if not utils.system([python, "setup.py", "sdist"], cwd=self.sourceDir()): + return True return True def install(self): ok = True - pythons = [] - if self.python2: - pythons.append("python2") - if self.python3: - pythons.append("python3") - - for python in pythons: - command = [python, "-m", "pip", "install", "--upgrade", self.package.name] + for python in self.__pythons: + command = [python, "-m", "pip", "install", "--upgrade"] + if self.subinfo.svnTarget(): + command += ["-e", self.sourceDir()] + else: + command += [self.package.name] ok = ok and utils.system(command) return ok def runTest(self): return False diff --git a/bin/Package/PipPackageBase.py b/bin/Package/PipPackageBase.py index 1ddfd62d6..47b52ac85 100644 --- a/bin/Package/PipPackageBase.py +++ b/bin/Package/PipPackageBase.py @@ -1,44 +1,28 @@ from BuildSystem.PipBuildSystem import * from Package.PackageBase import * from Packager.PackagerBase import * -from Source.SourceBase import * +from Package.VirtualPackageBase import * +from Source.MultiSource import * - -class PipPackageBase(PackageBase, SourceBase, PipBuildSystem, PackagerBase): +class PipPackageBase(PackageBase, PipBuildSystem, PackagerBase): """provides a base class for pip packages""" def __init__(self): CraftCore.log.debug("PipPackageBase.__init__ called") PackageBase.__init__(self) - SourceBase.__init__(self) + if self.subinfo.svnTarget(): + self.__class__.__bases__ += (MultiSource,) + MultiSource.__init__(self) + else: + self.__class__.__bases__ += (VirtualPackageBase,) + VirtualPackageBase.__init__(self) PipBuildSystem.__init__(self) PackagerBase.__init__(self) - # from SourceBase: - def fetch(self): - return True - - def unpack(self): - return True - - def createPatch(self): - return True - - def getUrls(self): - return True - - def repositoryUrl(self, dummyIndex=0): - return "" - - def repositoryUrlCount(self): - return 0 - - def localFileNamesBase(self): - return [] # from PackagerBase def createPackage(self): return True def preArchive(self): return True