def iter_ms_layers(self, attr={}, meta={}, mra={}): def check(f, v): return f(v) if callable(f) else f == v for lay in range(self.ms.numlayers): ms_layer = self.ms.getLayer(lay) if not all(check(checker, getattr(ms_layer, k, None)) for k, checker in attr.items()): continue if not all(check(checker, metadata.get_metadata(ms_layer, k, None)) for k, checker in meta.items()): continue if not all(check(checker, metadata.get_mra_metadata(ms_layer, k, None)) for k, checker in mra.items()): continue yield ms_layer
def iter_ms_layers(self, attr={}, meta={}, mra={}): def check(f, v): return f(v) if callable(f) else f == v for l in xrange(self.ms.numlayers): ms_layer = self.ms.getLayer(l) if not all(check(checker, getattr(ms_layer, k, None)) for k, checker in attr.iteritems()): continue if not all(check(checker, metadata.get_metadata(ms_layer, k, None)) for k, checker in meta.iteritems()): continue if not all(check(checker, metadata.get_mra_metadata(ms_layer, k, None)) for k, checker in mra.iteritems()): continue yield ms_layer