def _filter_nodes(self, cond, nodes=None):
if nodes is None:
nodes = self.nodes
res = []
for n in nodes:
match = True
for k, v in cond.iteritems():
attr = getattr(n, k)
if isinstance(v, re._pattern_type) and \
isinstance(attr, basestring) and v.match(attr) is None:
match = False
break
elif attr != v:
match = False
break
if match:
res.append(n)
return res
评论列表
文章目录