[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