File Explorer

/proc/self/root/proc/self/root/lib64/python3.9/lib2to3/fixes

This explorer reads the filesystem of the server it runs on, so /workspace/user isn't present here. Browsing and the terminal still work against this server's own disk from /.

fix_filter.py2.7 KB · 95 lines
# Copyright 2007 Google, Inc. All Rights Reserved.# Licensed to PSF under a Contributor Agreement. """Fixer that changes filter(F, X) into list(filter(F, X)). We avoid the transformation if the filter() call is directly containedin iter(<>), list(<>), tuple(<>), sorted(<>), ...join(<>), orfor V in <>:. NOTE: This is still not correct if the original code was depending onfilter(F, X) to return a string if X is a string and a tuple if X is atuple.  That would require type inference, which we don't do.  LetPython 2.6 figure it out.""" # Local importsfrom .. import fixer_basefrom ..pytree import Nodefrom ..pygram import python_symbols as symsfrom ..fixer_util import Name, ArgList, ListComp, in_special_context, parenthesize  class FixFilter(fixer_base.ConditionalFix):    BM_compatible = True     PATTERN = """    filter_lambda=power<        'filter'        trailer<            '('            arglist<                lambdef< 'lambda'                         (fp=NAME | vfpdef< '(' fp=NAME ')'> ) ':' xp=any                >                ','                it=any            >            ')'        >        [extra_trailers=trailer*]    >    |    power<        'filter'        trailer< '(' arglist< none='None' ',' seq=any > ')' >        [extra_trailers=trailer*]    >    |    power<        'filter'        args=trailer< '(' [any] ')' >        [extra_trailers=trailer*]    >    """     skip_on = "future_builtins.filter"     def transform(self, node, results):        if self.should_skip(node):            return         trailers = []        if 'extra_trailers' in results:            for t in results['extra_trailers']:                trailers.append(t.clone())         if "filter_lambda" in results:            xp = results.get("xp").clone()            if xp.type == syms.test:                xp.prefix = ""                xp = parenthesize(xp)             new = ListComp(results.get("fp").clone(),                           results.get("fp").clone(),                           results.get("it").clone(), xp)            new = Node(syms.power, [new] + trailers, prefix="")         elif "none" in results:            new = ListComp(Name("_f"),                           Name("_f"),                           results["seq"].clone(),                           Name("_f"))            new = Node(syms.power, [new] + trailers, prefix="")         else:            if in_special_context(node):                return None             args = results['args'].clone()            new = Node(syms.power, [Name("filter"), args], prefix="")            new = Node(syms.power, [Name("list"), ArgList([new])] + trailers)            new.prefix = ""        new.prefix = node.prefix        return new