pythonwhat/State.py
def _getx(self, Parser, ext_attr, tree):
        """getter for Parser outputs"""
        # return cached output if possible
        cache_key = Parser.__name__ + str(hash(tree))
        if self._parser_cache.get(cache_key):
            p = self._parser_cache[cache_key]
        else:
            # otherwise, run parser over tree
            p = Parser()
            # set mappings for parsers that inspect attribute access
            if ext_attr != "mappings" and Parser in [
                FunctionParser,
                ObjectAccessParser,
            ]:
                p.mappings = self.context_mappings.copy()
            # run parser
            p.visit(tree)
            # cache
            self._parser_cache[cache_key] = p
        return getattr(p, ext_attr)
def _getx(self, Parser, ext_attr, tree):
        # return cached output if possible
        cache_key = Parser.__name__ + str(hash(tree))
        if self._parser_cache.get(cache_key):
            p = self._parser_cache[cache_key]
        else:
            # otherwise, run parser over tree
            p = Parser()
            # set mappings for parsers that inspect attribute access
            if ext_attr != "mappings" and Parser in [
                FunctionParser,
                ObjectAccessParser,
            ]:
                p.mappings = self.context_mappings.copy()
            # run parser
            p.visit(tree)
            # cache
            self._parser_cache[cache_key] = p
        return getattr(p, ext_attr)
def _getx ( self , Parser , ext_attr , tree ) : # return cached output if possible cache_key = Parser . __name__ + str ( hash ( tree ) ) if self . _parser_cache . get ( cache_key ) : p = self . _parser_cache [ cache_key ] else : # otherwise, run parser over tree p = Parser ( ) # set mappings for parsers that inspect attribute access if ext_attr != "mappings" and Parser in [ FunctionParser , ObjectAccessParser , ] : p . mappings = self . context_mappings . copy ( ) # run parser p . visit ( tree ) # cache self . _parser_cache [ cache_key ] = p return getattr ( p , ext_attr )
getter for Parser outputs
getter for Parser outputs