[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