bibliopixel/control/extractor.py
def extract(self, msg):
        """Yield an ordered dictionary if msg['type'] is in keys_by_type."""
        def normal(key):
            v = msg.get(key)
            if v is None:
                return v
            normalizer = self.normalizers.get(key, lambda x: x)
            return normalizer(v)

        def odict(keys):
            return collections.OrderedDict((k, normal(k)) for k in keys)

        def match(m):
            return (msg.get(k) in v for k, v in m.items()) if m else ()

        accept = all(match(self.accept))
        reject = any(match(self.reject))

        if reject or not accept:
            keys = ()
        elif self.keys_by_type is None:
            keys = [k for k in msg.keys() if k not in self.omit]
        else:
            keys = self.keys_by_type.get(msg.get('type'))
        return odict(keys)
def extract(self, msg):
        """Yield an ordered dictionary if msg['type'] is in keys_by_type."""
        def normal(key):
            v = msg.get(key)
            if v is None:
                return v
            normalizer = self.normalizers.get(key, lambda x: x)
            return normalizer(v)

        def odict(keys):
            return collections.OrderedDict((k, normal(k)) for k in keys)

        def match(m):
            return (msg.get(k) in v for k, v in m.items()) if m else ()

        accept = all(match(self.accept))
        reject = any(match(self.reject))

        if reject or not accept:
            keys = ()
        elif self.keys_by_type is None:
            keys = [k for k in msg.keys() if k not in self.omit]
        else:
            keys = self.keys_by_type.get(msg.get('type'))
        return odict(keys)
def extract ( self , msg ) : def normal ( key ) : v = msg . get ( key ) if v is None : return v normalizer = self . normalizers . get ( key , lambda x : x ) return normalizer ( v ) def odict ( keys ) : return collections . OrderedDict ( ( k , normal ( k ) ) for k in keys ) def match ( m ) : return ( msg . get ( k ) in v for k , v in m . items ( ) ) if m else ( ) accept = all ( match ( self . accept ) ) reject = any ( match ( self . reject ) ) if reject or not accept : keys = ( ) elif self . keys_by_type is None : keys = [ k for k in msg . keys ( ) if k not in self . omit ] else : keys = self . keys_by_type . get ( msg . get ( 'type' ) ) return odict ( keys )
Yield an ordered dictionary if msg['type'] is in keys_by_type.
Yield an ordered dictionary if msg [ type ] is in keys_by_type .