File Explorer

/proc/thread-self/root/proc/thread-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_itertools_imports.py2.0 KB · 58 lines
""" Fixer for imports of itertools.(imap|ifilter|izip|ifilterfalse) """ # Local importsfrom lib2to3 import fixer_basefrom lib2to3.fixer_util import BlankLine, syms, token  class FixItertoolsImports(fixer_base.BaseFix):    BM_compatible = True    PATTERN = """              import_from< 'from' 'itertools' 'import' imports=any >              """ %(locals())     def transform(self, node, results):        imports = results['imports']        if imports.type == syms.import_as_name or not imports.children:            children = [imports]        else:            children = imports.children        for child in children[::2]:            if child.type == token.NAME:                member = child.value                name_node = child            elif child.type == token.STAR:                # Just leave the import as is.                return            else:                assert child.type == syms.import_as_name                name_node = child.children[0]            member_name = name_node.value            if member_name in ('imap', 'izip', 'ifilter'):                child.value = None                child.remove()            elif member_name in ('ifilterfalse', 'izip_longest'):                node.changed()                name_node.value = ('filterfalse' if member_name[1] == 'f'                                   else 'zip_longest')         # Make sure the import statement is still sane        children = imports.children[:] or [imports]        remove_comma = True        for child in children:            if remove_comma and child.type == token.COMMA:                child.remove()            else:                remove_comma ^= True         while children and children[-1].type == token.COMMA:            children.pop().remove()         # If there are no imports left, just get rid of the entire statement        if (not (imports.children or getattr(imports, 'value', None)) or            imports.parent is None):            p = node.prefix            node = BlankLine()            node.prefix = p            return node