Rpm-level dbmatch iterator requires additional mi.pattern() calls
for specifying extra match patterns. Hide this behind the ts wrapper,
dbMatch() now optionally takes extra patterns as list of
(tag, type, pattern) tuples.
---
rpmUtils/transaction.py | 14 ++++++++++++--
1 files changed, 12 insertions(+), 2 deletions(-)
diff --git a/rpmUtils/transaction.py b/rpmUtils/transaction.py
index 897c30f..c5167d3 100644
--- a/rpmUtils/transaction.py
+++ b/rpmUtils/transaction.py
@@ -23,8 +23,7 @@ ts = None
class TransactionWrapper:
def __init__(self, root='/'):
self.ts = rpm.TransactionSet(root)
- self._methods = ['dbMatch',
- 'order',
+ self._methods = ['order',
'addErase',
'addInstall',
'run',
@@ -61,6 +60,17 @@ class TransactionWrapper:
return results
+ def dbMatch(self, *args, **kwds):
+ if 'patterns' in kwds:
+ patterns = kwds.pop('patterns')
+ else:
+ patterns = []
+
+ mi = self.ts.dbMatch(*args, **kwds)
+ for (tag, tp, pat) in patterns:
+ mi.pattern(tag, tp, pat)
+ return mi
+
def __getattr__(self, attr):
if attr in self._methods:
return self.getMethod(attr)
--
1.7.4
_______________________________________________
Yum-devel mailing list
[email protected]
http://lists.baseurl.org/mailman/listinfo/yum-devel