[yum-cvs] yum/yum depsolve.py, 1.96, 1.97 packages.py, 1.61, 1.62 sqlitesack.py, 1.44, 1.45
Seth Vidal
skvidal at linux.duke.edu
Sat Sep 2 05:45:10 UTC 2006
- Previous message: [yum-cvs] yum/yum packages.py,1.60,1.61 sqlitesack.py,1.43,1.44
- Next message: [yum-cvs] yum/yum __init__.py, 1.238, 1.239 depsolve.py, 1.97, 1.98 packages.py, 1.62, 1.63 repos.py, 1.97, 1.98 rpmsack.py, 1.22, 1.23 sqlitesack.py, 1.45, 1.46 yumRepo.py, 1.17, 1.18
- Messages sorted by:
[ date ]
[ thread ]
[ subject ]
[ author ]
Update of /home/groups/yum/cvs/yum/yum
In directory login1.linux.duke.edu:/tmp/cvs-serv10182/yum
Modified Files:
depsolve.py packages.py sqlitesack.py
Log Message:
clean up some of the dealing with package objects
setup:
po.provides
po.requires
po.obsoletes
po.conflicts
po.provides_names
po.requires_names
po.obsoletes_names
po.conflicts_names
po.changelog
po.filelist
po.dirlist
po.ghostlist
po.checksums
po.changelog
all as properties. They call out when needed so we shouldn't need to setup
anything to go get them.
Index: depsolve.py
===================================================================
RCS file: /home/groups/yum/cvs/yum/yum/depsolve.py,v
retrieving revision 1.96
retrieving revision 1.97
diff -u -r1.96 -r1.97
--- depsolve.py 1 Sep 2006 19:00:07 -0000 1.96
+++ depsolve.py 2 Sep 2006 05:45:08 -0000 1.97
@@ -110,7 +110,7 @@
if po.name in self.conf.installonlypkgs:
return 1
- provides = po.getProvidesNames()
+ provides = po.provides_names
if filter (lambda prov: prov in self.conf.installonlypkgs, provides):
return 1
Index: packages.py
===================================================================
RCS file: /home/groups/yum/cvs/yum/yum/packages.py,v
retrieving revision 1.61
retrieving revision 1.62
diff -u -r1.61 -r1.62
--- packages.py 2 Sep 2006 01:16:30 -0000 1.61
+++ packages.py 2 Sep 2006 05:45:08 -0000 1.62
@@ -117,7 +117,7 @@
def __init__(self):
self.simple = {} # simple things, name, arch, e,v,r, size, etc
- self.checksums = [] # (type, checksum, id(0,1)
+ self._checksums = [] # (type, checksum, id(0,1)
def __str__(self):
if self.returnSimple('epoch') == '0':
@@ -141,7 +141,11 @@
self.returnSimple('epoch'),self.returnSimple('version'),
self.returnSimple('release'))
+ def returnChecksums(self):
+ return self._checksums
+ checksums = property(fget=lambda self: self.returnChecksums())
+
class RpmBase:
"""return functions and storage for rpm-specific data"""
@@ -155,7 +159,7 @@
self.files['file'] = []
self.files['dir'] = []
self.files['ghost'] = []
- self.changelog = [] # (ctime, cname, ctext)
+ self._changelog = [] # (ctime, cname, ctext)
self.licenses = []
def __lt__(self, other):
@@ -266,8 +270,7 @@
def returnChangelog(self):
"""return changelog entries"""
- # fixme - maybe should die - make 'changelog' just a property/attribute
- return self.changelog
+ return self._changelog
def returnFileEntries(self, ftype='file'):
"""return list of files based on type"""
@@ -281,16 +284,29 @@
"""return list of types of files in the package"""
# maybe should die - use direct access to attribute
return self.files.keys()
-
- def returnDirEntries(self):
- return self.returnFileEntries(ftype='dir')
-
- def returnGhostEntries(self):
- return self.returnFileEntries(ftype='ghost')
- filelists = property(returnFileEntries)
- dirlists = property(returnDirEntries)
- ghostlists = property(returnGhostEntries)
+ def returnPrcoNames(self, prcotype):
+ names = []
+ lists = self.returnPrco(prcotype)
+ for (name, flag, vertup) in lists:
+ names.append(name)
+
+ return names
+
+
+ filelist = property(fget=lambda self: self.returnFileEntries(ftype='file'))
+ dirlist = property(fget=lambda self: self.returnFileEntries(ftype='dir'))
+ ghostlist = property(fget=lambda self: self.returnFileEntries(ftype='ghost'))
+ requires = property(fget=lambda self: self.returnPrco('requires'))
+ provides = property(fget=lambda self: self.returnPrco('provides'))
+ obsoletes = property(fget=lambda self: self.returnPrco('obsoletes'))
+ conflicts = property(fget=lambda self: self.returnPrco('conflicts'))
+ provides_names = property(fget=lambda self: self.returnPrcoNames('provides'))
+ requires_names = property(fget=lambda self: self.returnPrcoNames('requires'))
+ conflicts_names = property(fget=lambda self: self.returnPrcoNames('conflicts'))
+ obsoletes_names = property(fget=lambda self: self.returnPrcoNames('obsoletes'))
+ changelog = property(fget=lambda self: self.returnChangelog())
+
class YumAvailablePackage(PackageObject, RpmBase):
@@ -304,7 +320,8 @@
self.simple['repoid'] = repoid
self.repoid = repoid
self.state = None
-
+ self._loadedfiles = False
+
if pkgdict != None:
self.importFromDict(pkgdict)
# quick, common definitions
@@ -331,36 +348,6 @@
ver = self.printVer()
return "%s.%s %s" % (self.name, self.arch, ver)
- def _requires(self):
- return self.returnPrco('requires')
-
- def _provides(self):
- return self.returnPrco('provides')
-
- def _obsoletes(self):
- return self.returnPrco('obsoletes')
-
- def _conflicts(self):
- return self.returnPrco('conflicts')
-
- def getProvidesNames(self):
- """returns a list of providesNames"""
-
- provnames = []
- prov = self.returnPrco('provides')
-
- for (name, flag, vertup) in prov:
- provnames.append(name)
-
- return provnames
-
- requires = property(_requires)
- provides = property(_provides)
- obsoletes = property(_obsoletes)
- conflicts = property(_conflicts)
- providesnames = property(getProvidesNames)
-
-
def _size(self):
return self.returnSimple('packagesize')
@@ -511,7 +498,7 @@
if cdict.has_key('date'): date = cdict['date']
if cdict.has_key('value'): text = cdict['value']
if cdict.has_key('author'): author = cdict['author']
- self.changelog.append((date, author, text))
+ self._changelog.append((date, author, text))
if hasattr(pkgdict, 'checksum'):
ctype = pkgdict.checksum['type']
@@ -523,7 +510,7 @@
csumid = 1
else:
csumid = 0
- self.checksums.append((ctype, csum, csumid))
+ self._checksums.append((ctype, csum, csumid))
@@ -547,7 +534,6 @@
self.description = self.tagByName('description')
self.pkgid = self.tagByName(rpm.RPMTAG_SHA1HEADER)
self.size = self.tagByName('size')
- self.__loadedfiles = False
self.__mode_cache = {}
self._populatePrco()
@@ -610,7 +596,7 @@
fileflags = self.tagByName('fileflags')
filemodes = self.tagByName('filemodes')
filetuple = zip(files, filemodes, fileflags)
- if not self.__loadedfiles:
+ if not self._loadedfiles:
for (file, mode, flag) in filetuple:
#garbage checks
if mode is None or mode == '':
@@ -639,14 +625,22 @@
if not self.files.has_key('file'):
self.files['file'] = []
self.files['file'].append(file)
- self.__loadedfiles = True
+ self._loadedfiles = True
def returnFileEntries(self, ftype='file'):
"""return list of files based on type"""
self._loadFiles()
return YumAvailablePackage.returnFileEntries(self,ftype)
- filelists = property(returnFileEntries)
+ def returnChangelog(self):
+ # 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'))
+ return []
class YumInstalledPackage(YumHeaderPackage):
"""super class for dealing with packages in the rpmdb"""
Index: sqlitesack.py
===================================================================
RCS file: /home/groups/yum/cvs/yum/yum/sqlitesack.py,v
retrieving revision 1.44
retrieving revision 1.45
diff -u -r1.44 -r1.45
--- sqlitesack.py 2 Sep 2006 01:16:30 -0000 1.44
+++ sqlitesack.py 2 Sep 2006 05:45:08 -0000 1.45
@@ -37,11 +37,7 @@
self.sack = pkgdict.sack
self.pkgId = pkgdict.pkgId
self.simple['id'] = self.pkgId
- self.changelog = None
- self.files = None
- self._checksums = []
- # so bizarre
- del self.checksums
+ self._changelog = None
def returnSimple(self, varname):
db2simplemap = { 'packagesize' : 'size_package',
@@ -84,13 +80,14 @@
for ob in c.fetchall():
self._checksums.append((ob['checksum_type'], ob['checksum_value'], True))
+
+ def returnChecksums(self):
+ self._loadChecksums()
return self._checksums
-
- checksums = property(_loadChecksums)
-
+
def _loadFiles(self):
- if self.files is not None:
+ if self._loadedfiles:
return
result = {}
@@ -118,10 +115,17 @@
filename = filenames.pop()
filetype = filetypes.pop()
result.setdefault(filetype,[]).append(filename)
+ self._loadedfiles = True
self.files = result
- def returnChangelog(self):
- if not self.changelog:
+ def _loadChangelog(self):
+ result = []
+ if not self._changelog:
+ if not self.sack.otherdb.has_key(self.repoid):
+ #FIXME should this raise an exception or should it try to populate
+ # the otherdb
+ self._changelog = result
+ return
cache = self.sack.otherdb[self.repoid]
cur = cache.cursor()
cur.execute("select changelog.date as date, "
@@ -131,9 +135,12 @@
"and packages.pkgKey = changelog.pkgKey", self.pkgId)
for ob in cur.fetchall():
result.append( (ob['date'], ob['author'], ob['changelog']) )
- self.changelog = result
- return self.changelog
-
+ self._changelog = result
+
+ def returnChangelog(self):
+ self._loadChangelog()
+ return self._changelog
+
def returnFileEntries(self, ftype='file'):
self._loadFiles()
return YumAvailablePackage.returnFileEntries(self,ftype)
- Previous message: [yum-cvs] yum/yum packages.py,1.60,1.61 sqlitesack.py,1.43,1.44
- Next message: [yum-cvs] yum/yum __init__.py, 1.238, 1.239 depsolve.py, 1.97, 1.98 packages.py, 1.62, 1.63 repos.py, 1.97, 1.98 rpmsack.py, 1.22, 1.23 sqlitesack.py, 1.45, 1.46 yumRepo.py, 1.17, 1.18
- Messages sorted by:
[ date ]
[ thread ]
[ subject ]
[ author ]
More information about the Yum-cvs-commits
mailing list