[yum-cvs] yum/yum sqlitecache.py,1.4,1.5 sqlitesack.py,1.5,1.6
Gijs Hollestelle
gijs at login.linux.duke.edu
Wed Mar 2 14:25:00 UTC 2005
Update of /home/groups/yum/cvs/yum/yum
In directory login:/tmp/cvs-serv23280/yum
Modified Files:
sqlitecache.py sqlitesack.py
Log Message:
Using / as a database seperator for a list of files now. Cleaned up this
stuff by using python's split and join instead of our own code.
Index: sqlitecache.py
===================================================================
RCS file: /home/groups/yum/cvs/yum/yum/sqlitecache.py,v
retrieving revision 1.4
retrieving revision 1.5
diff -u -r1.4 -r1.5
--- sqlitecache.py 2 Mar 2005 10:43:57 -0000 1.4
+++ sqlitecache.py 2 Mar 2005 14:24:57 -0000 1.5
@@ -21,8 +21,8 @@
# - Store filetypes as one char per type instead of a string
# - display the name of the repository when caching metadata
# - don't use print for output, use yum's output functions instead
-# - don't use | as a seperator for files, use / or to be cleaner (but
-# slower) use cpickle.dumps to store an array of filenames in a string
+# - Move the stuff that turns a list of files into a string into a helper
+# unit
import os
import mdcache
@@ -33,7 +33,7 @@
# This version refers to the internal structure of the sqlite cache files
# increasing this number forces all caches of a lower version number
# to be re-generated
-dbversion = '4'
+dbversion = '5'
# TODO
# We probably don't really need to subclass RepodataParser anymore, just use
@@ -279,19 +279,19 @@
for (filename,filetype) in package.files.iteritems():
(dirname,filename) = (os.path.split(filename))
if (dirs.has_key(dirname)):
- dirs[dirname]['files'] += filename+'|'
- dirs[dirname]['types'] += filetype+'|'
+ dirs[dirname]['files'].append(filename)
+ dirs[dirname]['types'].append(filetype)
else:
dirs[dirname] = {}
- dirs[dirname]['files'] = '|'+filename+'|'
- dirs[dirname]['types'] = '|'+filetype+'|'
+ dirs[dirname]['files'] = [filename]
+ dirs[dirname]['types'] = [filetype]
for (dirname,dir) in dirs.items():
data = {
'pkgKey': pkgKey,
'dirname': dirname,
- 'filenames': dir['files'],
- 'filetypes': dir['types']
+ 'filenames': '/'.join(dir['files']),
+ 'filetypes': '/'.join(dir['types'])
}
self.insertHash('filelist',data,cur)
Index: sqlitesack.py
===================================================================
RCS file: /home/groups/yum/cvs/yum/yum/sqlitesack.py,v
retrieving revision 1.5
retrieving revision 1.6
diff -u -r1.5 -r1.6
--- sqlitesack.py 2 Mar 2005 12:03:13 -0000 1.5
+++ sqlitesack.py 2 Mar 2005 14:24:57 -0000 1.6
@@ -142,8 +142,8 @@
for ob in cur.fetchall():
found = True
dirname = ob['filelist.dirname']
- filetypes = ob['filelist.filetypes'].split('|')[1:-1]
- filenames = ob['filelist.filenames'].split('|')[1:-1]
+ filetypes = ob['filelist.filetypes'].split('/')
+ filenames = ob['filelist.filenames'].split('/')
while(filenames):
filename = dirname+'/'+filenames.pop()
filetype = filetypes.pop()
@@ -241,7 +241,8 @@
# If it matches the dirname, that doesnt mean it matches
# the filename, check if it does
- if (filename and res['filelist.filenames'].find('|%s|' % filename) == -1):
+ if filename and \
+ not filename in res['filelist.filenames'].split('/'):
continue
# If it matches we only know the packageId
pkg = self.getPackageDetails(res['packages.pkgId'])
More information about the Yum-cvs-commits
mailing list