def build_additional_match(self, ident, node_set):
        """
            handle additional matches supplied by 'has()' calls
        """
        source_ident = ident

        for key, value in node_set.must_match.items():
            if isinstance(value, dict):
                label = ':' + value['node_class'].__label__
                stmt = _rel_helper(lhs=source_ident, rhs=label, ident='', **value)
                self._ast['where'].append(stmt)
            else:
                raise ValueError("Expecting dict got: " + repr(value))

        for key, val in node_set.dont_match.items():
            if isinstance(val, dict):
                label = ':' + val['node_class'].__label__
                stmt = _rel_helper(lhs=source_ident, rhs=label, ident='', **val)
                self._ast['where'].append('NOT ' + stmt)
            else:
                raise ValueError("Expecting dict got: " + repr(val))
def build_additional_match ( self , ident , node_set ) : source_ident = ident for key , value in node_set . must_match . items ( ) : if isinstance ( value , dict ) : label = ':' + value [ 'node_class' ] . __label__ stmt = _rel_helper ( lhs = source_ident , rhs = label , ident = '' , ** value ) self . _ast [ 'where' ] . append ( stmt ) else : raise ValueError ( "Expecting dict got: " + repr ( value ) ) for key , val in node_set . dont_match . items ( ) : if isinstance ( val , dict ) : label = ':' + val [ 'node_class' ] . __label__ stmt = _rel_helper ( lhs = source_ident , rhs = label , ident = '' , ** val ) self . _ast [ 'where' ] . append ( 'NOT ' + stmt ) else : raise ValueError ( "Expecting dict got: " + repr ( val ) )
handle additional matches supplied by 'has()' calls