[yum-cvs] yum/yum __init__.py, 1.261, 1.262 packageSack.py, 1.19, 1.20 packages.py, 1.78, 1.79 rpmsack.py, 1.33, 1.34 sqlitesack.py, 1.49, 1.50 yumRepo.py, 1.26, 1.27

James Bowes jbowes at linux.duke.edu
Thu Nov 23 02:24:52 UTC 2006


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

Modified Files:
	__init__.py packageSack.py packages.py rpmsack.py 
	sqlitesack.py yumRepo.py 
Log Message:
Deprecate returnSimple and tagByName; use __getattr__ instead.

Index: __init__.py
===================================================================
RCS file: /home/groups/yum/cvs/yum/yum/__init__.py,v
retrieving revision 1.261
retrieving revision 1.262
diff -u -r1.261 -r1.262
--- __init__.py	17 Nov 2006 07:13:42 -0000	1.261
+++ __init__.py	23 Nov 2006 02:24:50 -0000	1.262
@@ -683,7 +683,7 @@
             
             try:
                 text = '(%s/%s): %s' % (i, len(remote_pkgs),
-                                        os.path.basename(po.returnSimple('relativepath')))
+                                        os.path.basename(po.relativepath))
                 mylocal = po.repo.getPackage(po,
                                    checkfunc=checkfunc,
                                    text=text,
@@ -1061,7 +1061,7 @@
                 avail = self.pkgSack.returnNewestByNameArch()
             
             for po in avail:
-                ftime = int(po.returnSimple('filetime'))
+                ftime = int(po.filetime)
                 if ftime > recentlimit:
                     if not ftimehash.has_key(ftime):
                         ftimehash[ftime] = [po]
@@ -1134,7 +1134,7 @@
                 for po in sack:
                     tmpvalues = []
                     for field in fields:
-                        value = po.returnSimple(field)
+                        value = getattr(po, field)
                         if value and crit_re.search(value):
                             tmpvalues.append(value)
 
@@ -1259,7 +1259,7 @@
                 tmpvalues = []
                 searchlist = []
                 for tag in taglist:
-                    tagdata = po.returnSimple(tag)
+                    tagdata = getattr(po, tag)
                     if tagdata is None:
                         continue
                     if type(tagdata) is types.ListType:
@@ -1756,7 +1756,7 @@
             
             # make sure it's not already installed
             if self.rpmdb.installed(name=po.name, arch=po.arch, epoch=po.epoch,
-                    rel=po.rel, ver=po.ver):
+                    rel=po.release, ver=po.version):
                 self.logger.warning('Package %s already installed and latest version', po)
                 continue
 

Index: packageSack.py
===================================================================
RCS file: /home/groups/yum/cvs/yum/yum/packageSack.py,v
retrieving revision 1.19
retrieving revision 1.20
diff -u -r1.19 -r1.20
--- packageSack.py	13 Oct 2006 01:24:38 -0000	1.19
+++ packageSack.py	23 Nov 2006 02:24:50 -0000	1.20
@@ -471,7 +471,7 @@
     def addPackage(self, obj):
         """add a pkgobject to the packageSack"""
 
-        repoid = obj.returnSimple('repoid')
+        repoid = obj.repoid
         (name, arch, epoch, ver, rel) = obj.pkgtup
         
         if self.compatarchs:
@@ -510,7 +510,7 @@
                 for ftype in obj.returnFileTypes():
                     for file in obj.returnFileEntries(ftype):
                         self._addToDictAsList(self.filenames, file, obj)
-                self._addToDictAsList(self.pkgsByID, obj.returnSimple('id'), obj)
+                self._addToDictAsList(self.pkgsByID, obj.id, obj)
                 (name, arch, epoch, ver, rel) = obj.pkgtup
                 self._addToDictAsList(self.nevra, (name, epoch, ver, rel, arch), obj)
                 self._addToDictAsList(self.nevra, (name, None, None, None, None), obj)
@@ -521,7 +521,7 @@
         
     def delPackage(self, obj):
         """delete a pkgobject"""
-        self._delFromListOfDict(self.pkgsByRepo, obj.returnSimple('repoid'), obj)
+        self._delFromListOfDict(self.pkgsByRepo, obj.repoid, obj)
         if self.indexesBuilt: # if we've built indexes, delete it b/c we've just deleted something
             self.indexesBuilt = 0
         
@@ -625,7 +625,7 @@
         for po in self.returnPackages():
             tmpvalues = []
             for field in fields:
-                value = po.returnSimple(field)
+                value = getattr(po, field)
                 if value and criteria_re.search(value):
                     tmpvalues.append(value)
             if len(tmpvalues) > 0:

Index: packages.py
===================================================================
RCS file: /home/groups/yum/cvs/yum/yum/packages.py,v
retrieving revision 1.78
retrieving revision 1.79
diff -u -r1.78 -r1.79
--- packages.py	25 Oct 2006 06:08:31 -0000	1.78
+++ packages.py	23 Nov 2006 02:24:50 -0000	1.79
@@ -130,35 +130,39 @@
 
 # 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 PackageObject:
+class PackageObject(object):
     """Base Package Object - sets up the default storage dicts and the
        most common returns"""
        
     def __init__(self):
-        self.simple = {} # simple things, name, arch, e,v,r, size, etc
+        self.name = None
+        self.version = None
+        self.release = None
+        self.epoch = None
+        self.arch = None
         self._checksums = [] # (type, checksum, id(0,1)
         
     def __str__(self):
-        if self.returnSimple('epoch') == '0':
-            out = '%s - %s-%s.%s' % (self.returnSimple('name'), 
-                                     self.returnSimple('version'),
-                                     self.returnSimple('release'), 
-                                     self.returnSimple('arch'))
+        if self.epoch == '0':
+            out = '%s - %s-%s.%s' % (self.name, 
+                                     self.version,
+                                     self.release, 
+                                     self.arch)
         else:
-            out = '%s - %s:%s-%s.%s' % (self.returnSimple('name'), 
-                                        self.returnSimple('epoch'), 
-                                        self.returnSimple('version'), 
-                                        self.returnSimple('release'), 
-                                        self.returnSimple('arch'))
+            out = '%s - %s:%s-%s.%s' % (self.name, 
+                                        self.epoch, 
+                                        self.version, 
+                                        self.release, 
+                                        self.arch)
         return out
 
     def returnSimple(self, varname):
-        return self.simple[varname]
+        warnings.warn("returnSimple() will go away in a furture version of Yum.\n",
+            DeprecationWarning, stacklevel=2)
+        return getattr(self, varname)
 
     def _pkgtup(self):
-        return (self.returnSimple('name'), self.returnSimple('arch'), 
-                self.returnSimple('epoch'),self.returnSimple('version'), 
-                self.returnSimple('release'))
+        return (self.name, self.arch, self.epoch, self.version, self.release)
         
     def returnChecksums(self):
         return self._checksums
@@ -198,11 +202,11 @@
         return False
        
     def returnEVR(self):
-        return PackageEVR(self.epoch,self.ver,self.rel)
+        return PackageEVR(self.epoch, self.version, self.release)
     
     def __hash__(self):
         mystr = '%s - %s:%s-%s-%s.%s' % (self.repo.id, self.epoch, self.name,
-                                         self.ver, self.rel, self.arch)
+                                         self.version, self.release, self.arch)
         return hash(mystr)
         
     def returnPrco(self, prcotype, printable=False):
@@ -380,7 +384,6 @@
         PackageObject.__init__(self)
         RpmBase.__init__(self)
         
-        self.simple['repoid'] = repo.id
         self.repoid = repo.id
         self.repo = repo
         self.state = None
@@ -388,14 +391,8 @@
 
         if pkgdict != None:
             self.importFromDict(pkgdict)
-            # quick, common definitions
-            self.name = self.returnSimple('name')
-            self.epoch = self.returnSimple('epoch')
-            self.version = self.returnSimple('version')
-            self.release = self.returnSimple('release')
-            self.ver = self.returnSimple('version')
-            self.rel = self.returnSimple('release')
-            self.arch = self.returnSimple('arch')
+            self.ver = self.version
+            self.rel = self.release
             self.pkgtup = self._pkgtup()
 
 
@@ -413,16 +410,16 @@
         return "%s.%s %s" % (self.name, self.arch, ver)
 
     def _size(self):
-        return self.returnSimple('packagesize')
+        return self.packagesize
     
     def _remote_path(self):
-        return self.returnSimple('relativepath')
+        return self.relativepath
 
     def _remote_url(self):
         """returns a URL that can be used for downloading the package.
         Note that if you're going to download the package in your tool,
         you should use self.repo.getPackage."""
-        base = self.returnSimple('basepath')
+        base = self.basepath
         if base:
             return urljoin(base, self.remote_path)
         return urljoin(self.repo.urls[0], self.remote_path)
@@ -503,20 +500,20 @@
         
         if hasattr(pkgdict, 'nevra'):
             (n, e, v, r, a) = pkgdict.nevra
-            self.simple['name'] = n
-            self.simple['epoch'] = e
-            self.simple['version'] = v
-            self.simple['arch'] = a
-            self.simple['release'] = r
+            self.name = n
+            self.epoch = e
+            self.version = v
+            self.arch = a
+            self.release = r
         
         if hasattr(pkgdict, 'time'):
-            self.simple['buildtime'] = pkgdict.time['build']
-            self.simple['filetime'] = pkgdict.time['file']
+            self.buildtime = pkgdict.time['build']
+            self.filetime = pkgdict.time['file']
         
         if hasattr(pkgdict, 'size'):
-            self.simple['packagesize'] = pkgdict.size['package']
-            self.simple['archivesize'] = pkgdict.size['archive']
-            self.simple['installedsize'] = pkgdict.size['installed']
+            self.packagesize = pkgdict.size['package']
+            self.archivesize = pkgdict.size['archive']
+            self.installedsize = pkgdict.size['installed']
         
         if hasattr(pkgdict, 'location'):
             if not pkgdict.location.has_key('base'):
@@ -526,20 +523,19 @@
             else:
                 url = pkgdict.location['base']
 
-            self.simple['basepath'] = url
-            self.simple['relativepath'] = pkgdict.location['href']
+            self.basepath = url
+            self.relativepath = pkgdict.location['href']
         
         if hasattr(pkgdict, 'hdrange'):
-            self.simple['hdrstart'] = pkgdict.hdrange['start']
-            self.simple['hdrend'] = pkgdict.hdrange['end']
+            self.hdrstart = pkgdict.hdrange['start']
+            self.hdrend = pkgdict.hdrange['end']
         
         if hasattr(pkgdict, 'info'):
-            infodict = pkgdict.info
             for item in ['summary', 'description', 'packager', 'group',
                          'buildhost', 'sourcerpm', 'url', 'vendor']:
-                self.simple[item] = infodict[item]
+                setattr(self, item, pkgdict.info[item])
             
-            self.licenses.append(infodict['license'])
+            self.licenses.append(pkgdict.info['license'])
         
         if hasattr(pkgdict, 'files'):
             for fn in pkgdict.files.keys():
@@ -578,7 +574,6 @@
             else:
                 csumid = 0
             self._checksums.append((ctype, csum, csumid))
-            
 
 
 class YumHeaderPackage(YumAvailablePackage):
@@ -589,18 +584,16 @@
         YumAvailablePackage.__init__(self, repo)
 
         self.hdr = hdr
-        self.name = self.tagByName('name')
-        self.arch = self.tagByName('arch')
+        self.name = self.hdr['name']
+        self.arch = self.hdr['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.version = self.hdr['version']
+        self.release = self.hdr['release']
         self.pkgtup = self._pkgtup()
-        self.summary = self.tagByName('summary')
-        self.description = self.tagByName('description')
-        self.pkgid = self.tagByName(rpm.RPMTAG_SHA1HEADER)
-        self.size = self.tagByName('size')
+        self.summary = self.hdr['summary']
+        self.description = self.hdr['description']
+        self.pkgid = self.hdr[rpm.RPMTAG_SHA1HEADER]
+        self.packagesize = self.hdr['size']
         self.__mode_cache = {}
         self.__prcoPopulated = False
         
@@ -646,6 +639,8 @@
                 self.prco[prcotype] = zip(name, flag, vers)
     
     def tagByName(self, tag):
+        warnings.warn("tagByName() will go away in a furture version of Yum.\n",
+            DeprecationWarning, stacklevel=2)
         try:
             data = self.hdr[tag]
         except KeyError:
@@ -661,21 +656,15 @@
             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 _loadFiles(self):
-        files = self.tagByName('filenames')
-        fileflags = self.tagByName('fileflags')
-        filemodes = self.tagByName('filemodes')
+        files = self.hdr['filenames']
+        fileflags = self.hdr['fileflags']
+        filemodes = self.hdr['filemodes']
         filetuple = zip(files, filemodes, fileflags)
         if not self._loadedfiles:
             for (fn, mode, flag) in filetuple:
@@ -717,10 +706,10 @@
         # note - if we think it is worth keeping changelogs in memory
         # then create a _loadChangelog() method to put them into the 
         # self._changelog attr
-        if len(self.tagByName('changelogname')) > 0:
-            return zip(self.tagByName('changelogname'),
-                       self.tagByName('changelogtime'),
-                       self.tagByName('changelogtext'))
+        if len(self.hdr['changelogname']) > 0:
+            return zip(self.hrd['changelogname'],
+                       self.hdr['changelogtime'],
+                       self.hdr['changelogtext'])
         return []
 
 class YumInstalledPackage(YumHeaderPackage):

Index: rpmsack.py
===================================================================
RCS file: /home/groups/yum/cvs/yum/yum/rpmsack.py,v
retrieving revision 1.33
retrieving revision 1.34
diff -u -r1.33 -r1.34
--- rpmsack.py	12 Oct 2006 17:58:49 -0000	1.33
+++ rpmsack.py	23 Nov 2006 02:24:50 -0000	1.34
@@ -156,8 +156,8 @@
             name = po.name
             arch = po.arch
             epoch = po.epoch
-            ver = po.ver
-            rel = po.rel
+            ver = po.version
+            rel = po.release
             
         return len(self.searchNevra(name=name, arch=arch, epoch=epoch, ver=ver, rel=rel)) > 0
 

Index: sqlitesack.py
===================================================================
RCS file: /home/groups/yum/cvs/yum/yum/sqlitesack.py,v
retrieving revision 1.49
retrieving revision 1.50
diff -u -r1.49 -r1.50
--- sqlitesack.py	14 Nov 2006 06:10:22 -0000	1.49
+++ sqlitesack.py	23 Nov 2006 02:24:50 -0000	1.50
@@ -34,10 +34,11 @@
         YumAvailablePackage.__init__(self, repo, pkgdict)
         self.sack = pkgdict.sack
         self.pkgId = pkgdict.pkgId
-        self.simple['id'] = self.pkgId
+        self.id = self.pkgId
+
         self._changelog = None
         
-    def returnSimple(self, varname):
+    def __getattr__(self, varname):
         db2simplemap = { 'packagesize' : 'size_package',
                          'archivesize' : 'size_archive',
                          'installedsize' : 'size_installed',
@@ -54,21 +55,20 @@
                          'vendor' : 'rpm_vendor',
                          'license' : 'rpm_license'
                         }
-        if not self.simple.has_key(varname):
-            dbname = varname
-            if db2simplemap.has_key(varname):
-                dbname = db2simplemap[varname]
-            cache = self.sack.primarydb[self.repo]
-            c = cache.cursor()
-            query = "select %s from packages where pkgId = '%s'" % (dbname, self.pkgId)
-            #c.execute("select %s from packages where pkgId = %s",
-            #          dbname, self.pkgId)
-            c.execute(query)
-            r = c.fetchone()
-            self.simple[varname] = r[0]
+        
+        dbname = varname
+        if db2simplemap.has_key(varname):
+            dbname = db2simplemap[varname]
+        cache = self.sack.primarydb[self.repo]
+        c = cache.cursor()
+        query = "select %s from packages where pkgId = '%s'" % (dbname,
+            self.pkgId)
+        c.execute(query)
+        r = c.fetchone()
+        setattr(self, varname, r[0])
             
-        return YumAvailablePackage.returnSimple(self,varname)
-    
+        return r[0]
+   
     def _loadChecksums(self):
         if not self._checksums:
             cache = self.sack.primarydb[self.repo]

Index: yumRepo.py
===================================================================
RCS file: /home/groups/yum/cvs/yum/yum/yumRepo.py,v
retrieving revision 1.26
retrieving revision 1.27
diff -u -r1.26 -r1.27
--- yumRepo.py	25 Oct 2006 06:08:31 -0000	1.26
+++ yumRepo.py	23 Nov 2006 02:24:50 -0000	1.27
@@ -36,7 +36,7 @@
                 if callback: callback.progressbar(current, total, repo)
                 pkgdict = dataobj[pkgid]
                 po = self.pc(repo, pkgdict)
-                po.simple['id'] = pkgid
+                po.id = pkgid
                 self._addToDictAsList(self.pkgsByID, pkgid, po)
                 self.addPackage(po)
 
@@ -432,9 +432,9 @@
         return result
 
     def getPackage(self, package, checkfunc = None, text = None, cache = True):
-        remote = package.returnSimple('relativepath')
+        remote = package.relativepath
         local = package.localPkg()
-        basepath = package.returnSimple('basepath')
+        basepath = package.basepath
             
         return self.__get(url=basepath,
                         relative=remote,
@@ -447,11 +447,11 @@
     def getHeader(self, package, checkfunc = None, reget = 'simple',
             cache = True):
         
-        remote = package.returnSimple('relativepath')
+        remote = package.relativepath
         local =  package.localHdr()
-        start = package.returnSimple('hdrstart')
-        end = package.returnSimple('hdrend')
-        basepath = package.returnSimple('basepath')
+        start = package.hdrstart
+        end = package.hdrend
+        basepath = package.basepath
 
         return self.__get(url=basepath, relative=remote, local=local, start=start,
                         reget=None, end=end, checkfunc=checkfunc, copy_local=1,




More information about the Yum-cvs-commits mailing list