Jeremy Katz wrote:
On Tue, 2007-06-05 at 13:22 +0200, Florian Festi wrote:
* TransactionData.relatedto and .depends_on converted to sets
Should be fine. This is the sort of thing that becomes a lot easier to
integrate with separated out patchsets :)
Jeremy
Ok, this also contains a small speed up for .getMembers() but it should be a
bit smaller than the original patch...
Florian
Index: yum/depsolve.py
===================================================================
RCS file: /cvsroot/yum/cvs/yum/yum/depsolve.py,v
retrieving revision 1.166
diff -u -r1.166 depsolve.py
--- yum/depsolve.py 5 Jun 2007 15:27:20 -0000 1.166
+++ yum/depsolve.py 6 Jun 2007 09:06:17 -0000
@@ -957,13 +957,7 @@
member = self.bestPackagesFromList(pkgs)[0]
#Add relationship
- found = False
- for dependspo in txmbr.depends_on:
- if member.po == dependspo:
- found = True
- break
- if not found:
- member.setAsDep(txmbr.po)
+ member.setAsDep(txmbr.po)
for conflict in txmbr.po.returnPrco('conflicts'):
(r, f, v) = conflict
Index: yum/transactioninfo.py
===================================================================
RCS file: /cvsroot/yum/cvs/yum/yum/transactioninfo.py,v
retrieving revision 1.40
diff -u -r1.40 transactioninfo.py
--- yum/transactioninfo.py 17 Apr 2007 20:54:03 -0000 1.40
+++ yum/transactioninfo.py 6 Jun 2007 09:06:18 -0000
@@ -73,13 +73,11 @@
returnlist = []
if pkgtup is None:
- for key in self.pkgdict.keys():
- for p in self.pkgdict[key]:
- returnlist.append(p)
+ for members in self.pkgdict.itervalues():
+ returnlist.extend(members)
elif self.pkgdict.has_key(pkgtup):
- for p in self.pkgdict[pkgtup]:
- returnlist.append(p)
+ returnlist.extend(self.pkgdict[pkgtup])
return returnlist
@@ -291,7 +289,7 @@
txmbr.po.state = TS_UPDATE
txmbr.ts_state = 'u'
if oldpo:
- txmbr.relatedto.append((oldpo.pkgtup, 'updates'))
+ txmbr.relatedto.add((oldpo.pkgtup, 'updates'))
txmbr.updates.append(oldpo)
self.addUpdated(oldpo, po)
self.add(txmbr)
@@ -306,7 +304,7 @@
txmbr.output_state = TS_UPDATED
txmbr.po.state = TS_UPDATED
txmbr.ts_state = None
- txmbr.relatedto.append((updating_po, 'updatedby'))
+ txmbr.relatedto.add((updating_po, 'updatedby'))
txmbr.updated_by.append(updating_po)
self.add(txmbr)
return txmbr
@@ -320,7 +318,7 @@
txmbr.output_state = TS_OBSOLETING
txmbr.po.state = TS_OBSOLETING
txmbr.ts_state = 'u'
- txmbr.relatedto.append((oldpo, 'obsoletes'))
+ txmbr.relatedto.add((oldpo, 'obsoletes'))
txmbr.obsoletes.append(oldpo)
self.add(txmbr)
return txmbr
@@ -334,7 +332,7 @@
txmbr.output_state = TS_OBSOLETED
txmbr.po.state = TS_OBSOLETED
txmbr.ts_state = None
- txmbr.relatedto.append((obsoleting_po, 'obsoletedby'))
+ txmbr.relatedto.add((obsoleting_po, 'obsoletedby'))
txmbr.obsoleted_by.append(obsoleting_po)
self.add(txmbr)
return txmbr
@@ -410,8 +408,8 @@
self.isDep = 0
self.reason = 'user' # reason for it to be in the transaction set
self.process = None #
- self.relatedto = [] # ([relatedpkgtup, relationship)]
- self.depends_on = []
+ self.relatedto = set() # ([relatedpkgtup, relationship)]
+ self.depends_on = set()
self.obsoletes = []
self.obsoleted_by = []
self.updates = []
@@ -430,8 +428,8 @@
self.isDep = 1
if po:
- self.relatedto.append((po.pkgtup, 'dependson'))
- self.depends_on.append(po)
+ self.relatedto.add((po.pkgtup, 'dependson'))
+ self.depends_on.add(po)
def __cmp__(self, other):
if self.name > other.name:
_______________________________________________
Yum-devel mailing list
[email protected]
https://lists.dulug.duke.edu/mailman/listinfo/yum-devel