Split out a reusable Manifest._parseDigests() method.
authorZac Medico <zmedico@gentoo.org>
Mon, 27 Mar 2006 01:05:07 +0000 (01:05 -0000)
committerZac Medico <zmedico@gentoo.org>
Mon, 27 Mar 2006 01:05:07 +0000 (01:05 -0000)
svn path=/main/trunk/; revision=3017

pym/portage_manifest.py

index 5208cde7ff93cc571110c90d3e7a4602b40c8051..89edc1aca37194bfde8e8051011d5c773a1d1ee8 100644 (file)
@@ -83,6 +83,11 @@ class Manifest(object):
                mylines = fd.readlines()
                fd.close()
                mylines.extend(self._readDigests().split("\n"))
+               self._parseDigests(mylines, myhashdict=self.fhashdict)
+
+       def _parseDigests(self, mylines, myhashdict=None):
+               if myhashdict is None:
+                       myhashdict = {}
                for l in mylines:
                        myname = ""
                        mysplit = l.split()
@@ -102,10 +107,11 @@ class Manifest(object):
                                myhashes = dict(zip(mysplit[3::2], mysplit[4::2]))
                        if len(myname) == 0:
                                continue
-                       if not self.fhashdict[mytype].has_key(myname):
-                               self.fhashdict[mytype][myname] = {} 
-                       self.fhashdict[mytype][myname].update(myhashes)
-                       self.fhashdict[mytype][myname]["size"] = mysize
+                       myhashdict.setdefault(mytype, {})
+                       myhashdict[mytype].setdefault(myname, {})
+                       myhashdict.update(myhashes)
+                       myhashdict[mytype][myname]["size"] = mysize
+               return myhashdict
        
        def _writeDigests(self):
                """ Create old style digest files for this Manifest instance """