[yum-cvs] yum/yum packages.py,1.42,1.43

Jeremy Katz katzj at linux.duke.edu
Thu Jan 5 01:30:37 UTC 2006


Update of /home/groups/yum/cvs/yum/yum
In directory login1.linux.duke.edu:/tmp/cvs-serv14817/yum

Modified Files:
	packages.py 
Log Message:
make YumInstalledPackage a subclass of YumAvailablePackage so that we can
count on having the same methods available in both


Index: packages.py
===================================================================
RCS file: /home/groups/yum/cvs/yum/yum/packages.py,v
retrieving revision 1.42
retrieving revision 1.43
diff -u -r1.42 -r1.43
--- packages.py	16 Dec 2005 16:44:27 -0000	1.42
+++ packages.py	5 Jan 2006 01:30:35 -0000	1.43
@@ -107,150 +107,6 @@
 
 # goal for the below is to have a packageobject that can be used by generic
 # functions independent of the type of package - ie: installed or available
-
-
-class YumInstalledPackage:
-    """super class for dealing with packages in the rpmdb"""
-    def __init__(self, hdr):
-        """hand in an rpm header, we'll assume it's installed and query from there"""
-        self.hdr = hdr
-        self.name = self.tagByName('name')
-        self.arch = self.tagByName('arch')
-        self.epoch = self.doepoch()
-        self.version = self.tagByName('version')
-        self.release = self.tagByName('release')
-        self.ver = self.tagByName('version')
-        self.rel = self.tagByName('release')
-        self.pkgtup = self._pkgtup()
-        self.repoid = 'installed'
-        self.summary = self.tagByName('summary')
-        self.description = self.tagByName('description')
-        self.pkgid = self.tagByName(rpm.RPMTAG_SHA1HEADER)
-        self.state = None
-        
-    def __str__(self):
-        if self.epoch == '0':
-            val = '%s - %s-%s.%s' % (self.name, self.version, self.release, 
-                                        self.arch)
-        else:
-            val = '%s - %s:%s-%s.%s' % (self.name, self.epoch, self.version,
-                                           self.release, self.arch)
-        return val
-
-    def tagByName(self, tag):
-        data = self.hdr[tag]
-        return data
-    
-    def doepoch(self):
-        tmpepoch = self.hdr['epoch']
-        if tmpepoch is None:
-            epoch = '0'
-        else:
-            epoch = str(tmpepoch)
-        
-        return epoch
-    
-    def returnSimple(self, thing):
-        if hasattr(self, thing):
-            return getattr(self, thing)
-        else:
-            return self.tagByName(thing)
-
-    def returnLocalHeader(self):
-        return self.hdr
-
-
-    def getProvidesNames(self):
-        """returns a list of providesNames"""
-        
-        provnames = self.tagByName('providename')
-        if type(provnames) is not types.ListType():
-            if type(provnames) is types.StringType():
-                provnames = [provnames]
-            else:
-                provnames = []
-
-        return provnames
-
-    def requiresList(self):
-        """return a list of all of the strings of the package requirements"""
-        reqlist = []
-        names = self.hdr[rpm.RPMTAG_REQUIRENAME]
-        flags = self.hdr[rpm.RPMTAG_REQUIREFLAGS]
-        ver = self.hdr[rpm.RPMTAG_REQUIREVERSION]
-        if names is not None:
-            tmplst = zip(names, flags, ver)
-        
-        for (n, f, v) in tmplst:
-            req = rpmUtils.miscutils.formatRequire(n, v, f)
-            reqlist.append(req)
-        
-        return reqlist
-
-    def _pkgtup(self):
-        return (self.name, self.arch, self.epoch, self.version, self.release)
-    
-    def size(self):
-        return self.tagByName('size')
-
-    def printVer(self):
-        """returns a printable version string - including epoch, if it's set"""
-        if self.epoch != '0':
-            ver = '%s:%s-%s' % (self.epoch, self.version, self.release)
-        else:
-            ver = '%s-%s' % (self.version, self.release)
-        
-        return ver
-    
-    def compactPrint(self):
-        ver = self.printVer()
-        return "%s.%s %s" % (self.name, self.arch, ver)
-    
-
-class YumLocalPackage(YumInstalledPackage):
-    """Class to handle an arbitrary package from a file path
-       this inherits most things from YumInstalledPackage because
-       installed packages and an arbitrary package on disk act very
-       much alike. init takes a ts instance and a filename/path 
-       to the package."""
-
-    def __init__(self, ts=None, filename=None):
-        if ts is None:
-            raise Errors.MiscError, \
-                 'No Transaction Set Instance for YumLocalPackage instance creation'
-        if filename is None:
-            raise Errors.MiscError, \
-                 'No Filename specified for YumLocalPackage instance creation'
-                 
-        self.pkgtype = 'local'
-        self.localpath = filename
-        self.repoid = filename
-        try:
-            self.hdr = rpmUtils.miscutils.hdrFromPackage(ts, self.localpath)
-        except rpmUtils.RpmUtilsError, e:
-            raise Errors.MiscError, \
-                'Could not open local rpm file: %s' % self.localpath
-        self.name = self.tagByName('name')
-        self.arch = self.tagByName('arch')
-        self.epoch = self.doepoch()
-        self.version = self.tagByName('version')
-        self.release = self.tagByName('release')
-        self.ver = self.tagByName('version')
-        self.rel = self.tagByName('release')
-        self.summary = self.tagByName('summary')
-        self.description = self.tagByName('description')
-        self.pkgtup = self._pkgtup()
-        self.state = None
-    
-    def _pkgtup(self):
-        return (self.name, self.arch, self.epoch, self.version, self.release)
-    
-    def localPkg(self):
-        return self.localpath
-    
-        
-
-
 class YumAvailablePackage(repomd.packageObject.PackageObject, repomd.packageObject.RpmBase):
     """derived class for the repomd packageobject and RpmBase packageobject yum
        uses this for dealing with packages in a repository"""
@@ -453,6 +309,150 @@
                 csumid = 0
             self.checksums.append((ctype, csum, csumid))
             
+
+
+class YumInstalledPackage(YumAvailablePackage):
+    """super class for dealing with packages in the rpmdb"""
+    def __init__(self, hdr):
+        """hand in an rpm header, we'll assume it's installed and query from there"""
+        self.hdr = hdr
+        self.name = self.tagByName('name')
+        self.arch = self.tagByName('arch')
+        self.epoch = self.doepoch()
+        self.version = self.tagByName('version')
+        self.release = self.tagByName('release')
+        self.ver = self.tagByName('version')
+        self.rel = self.tagByName('release')
+        self.pkgtup = self._pkgtup()
+        self.repoid = 'installed'
+        self.summary = self.tagByName('summary')
+        self.description = self.tagByName('description')
+        self.pkgid = self.tagByName(rpm.RPMTAG_SHA1HEADER)
+        self.state = None
+        
+    def __str__(self):
+        if self.epoch == '0':
+            val = '%s - %s-%s.%s' % (self.name, self.version, self.release, 
+                                        self.arch)
+        else:
+            val = '%s - %s:%s-%s.%s' % (self.name, self.epoch, self.version,
+                                           self.release, self.arch)
+        return val
+
+    def tagByName(self, tag):
+        data = self.hdr[tag]
+        return data
+    
+    def doepoch(self):
+        tmpepoch = self.hdr['epoch']
+        if tmpepoch is None:
+            epoch = '0'
+        else:
+            epoch = str(tmpepoch)
+        
+        return epoch
+    
+    def returnSimple(self, thing):
+        if hasattr(self, thing):
+            return getattr(self, thing)
+        else:
+            return self.tagByName(thing)
+
+    def returnLocalHeader(self):
+        return self.hdr
+
+
+    def getProvidesNames(self):
+        """returns a list of providesNames"""
+        
+        provnames = self.tagByName('providename')
+        if type(provnames) is not types.ListType():
+            if type(provnames) is types.StringType():
+                provnames = [provnames]
+            else:
+                provnames = []
+
+        return provnames
+
+    def requiresList(self):
+        """return a list of all of the strings of the package requirements"""
+        reqlist = []
+        names = self.hdr[rpm.RPMTAG_REQUIRENAME]
+        flags = self.hdr[rpm.RPMTAG_REQUIREFLAGS]
+        ver = self.hdr[rpm.RPMTAG_REQUIREVERSION]
+        if names is not None:
+            tmplst = zip(names, flags, ver)
+        
+        for (n, f, v) in tmplst:
+            req = rpmUtils.miscutils.formatRequire(n, v, f)
+            reqlist.append(req)
+        
+        return reqlist
+
+    def _pkgtup(self):
+        return (self.name, self.arch, self.epoch, self.version, self.release)
+    
+    def size(self):
+        return self.tagByName('size')
+
+    def printVer(self):
+        """returns a printable version string - including epoch, if it's set"""
+        if self.epoch != '0':
+            ver = '%s:%s-%s' % (self.epoch, self.version, self.release)
+        else:
+            ver = '%s-%s' % (self.version, self.release)
+        
+        return ver
+    
+    def compactPrint(self):
+        ver = self.printVer()
+        return "%s.%s %s" % (self.name, self.arch, ver)
+    
+
+class YumLocalPackage(YumInstalledPackage):
+    """Class to handle an arbitrary package from a file path
+       this inherits most things from YumInstalledPackage because
+       installed packages and an arbitrary package on disk act very
+       much alike. init takes a ts instance and a filename/path 
+       to the package."""
+
+    def __init__(self, ts=None, filename=None):
+        if ts is None:
+            raise Errors.MiscError, \
+                 'No Transaction Set Instance for YumLocalPackage instance creation'
+        if filename is None:
+            raise Errors.MiscError, \
+                 'No Filename specified for YumLocalPackage instance creation'
+                 
+        self.pkgtype = 'local'
+        self.localpath = filename
+        self.repoid = filename
+        try:
+            self.hdr = rpmUtils.miscutils.hdrFromPackage(ts, self.localpath)
+        except rpmUtils.RpmUtilsError, e:
+            raise Errors.MiscError, \
+                'Could not open local rpm file: %s' % self.localpath
+        self.name = self.tagByName('name')
+        self.arch = self.tagByName('arch')
+        self.epoch = self.doepoch()
+        self.version = self.tagByName('version')
+        self.release = self.tagByName('release')
+        self.ver = self.tagByName('version')
+        self.rel = self.tagByName('release')
+        self.summary = self.tagByName('summary')
+        self.description = self.tagByName('description')
+        self.pkgtup = self._pkgtup()
+        self.state = None
+    
+    def _pkgtup(self):
+        return (self.name, self.arch, self.epoch, self.version, self.release)
+    
+    def localPkg(self):
+        return self.localpath
+    
+        
+
+
             
         
     




More information about the Yum-cvs-commits mailing list