Current Dir: /snap/core22/2437/usr/lib/python3.10/lib2to3/fixes/
[DIR] __pycache__ [ delete | rename ]
[FILE] fix_apply.py [ edit | delete | rename ]
[FILE] fix_asserts.py [ edit | delete | rename ]
[FILE] fix_basestring.py [ edit | delete | rename ]
[FILE] fix_buffer.py [ edit | delete | rename ]
[FILE] fix_dict.py [ edit | delete | rename ]
[FILE] fix_except.py [ edit | delete | rename ]
[FILE] fix_exec.py [ edit | delete | rename ]
[FILE] fix_execfile.py [ edit | delete | rename ]
[FILE] fix_exitfunc.py [ edit | delete | rename ]
[FILE] fix_filter.py [ edit | delete | rename ]
[FILE] fix_funcattrs.py [ edit | delete | rename ]
[FILE] fix_future.py [ edit | delete | rename ]
[FILE] fix_getcwdu.py [ edit | delete | rename ]
[FILE] fix_has_key.py [ edit | delete | rename ]
[FILE] fix_idioms.py [ edit | delete | rename ]
[FILE] fix_import.py [ edit | delete | rename ]
[FILE] fix_imports.py [ edit | delete | rename ]
[FILE] fix_imports2.py [ edit | delete | rename ]
[FILE] fix_input.py [ edit | delete | rename ]
[FILE] fix_intern.py [ edit | delete | rename ]
[FILE] fix_isinstance.py [ edit | delete | rename ]
[FILE] fix_itertools.py [ edit | delete | rename ]
[FILE] fix_itertools_imports.py [ edit | delete | rename ]
[FILE] fix_long.py [ edit | delete | rename ]
[FILE] fix_map.py [ edit | delete | rename ]
[FILE] fix_metaclass.py [ edit | delete | rename ]
[FILE] fix_methodattrs.py [ edit | delete | rename ]
[FILE] fix_ne.py [ edit | delete | rename ]
[FILE] fix_next.py [ edit | delete | rename ]
[FILE] fix_nonzero.py [ edit | delete | rename ]
[FILE] fix_numliterals.py [ edit | delete | rename ]
[FILE] fix_operator.py [ edit | delete | rename ]
[FILE] fix_paren.py [ edit | delete | rename ]
[FILE] fix_print.py [ edit | delete | rename ]
[FILE] fix_raise.py [ edit | delete | rename ]
[FILE] fix_raw_input.py [ edit | delete | rename ]
[FILE] fix_reduce.py [ edit | delete | rename ]
[FILE] fix_reload.py [ edit | delete | rename ]
[FILE] fix_renames.py [ edit | delete | rename ]
[FILE] fix_repr.py [ edit | delete | rename ]
[FILE] fix_set_literal.py [ edit | delete | rename ]
[FILE] fix_standarderror.py [ edit | delete | rename ]
[FILE] fix_sys_exc.py [ edit | delete | rename ]
[FILE] fix_throw.py [ edit | delete | rename ]
[FILE] fix_tuple_params.py [ edit | delete | rename ]
[FILE] fix_types.py [ edit | delete | rename ]
[FILE] fix_unicode.py [ edit | delete | rename ]
[FILE] fix_urllib.py [ edit | delete | rename ]
[FILE] fix_ws_comma.py [ edit | delete | rename ]
[FILE] fix_xrange.py [ edit | delete | rename ]
[FILE] fix_xreadlines.py [ edit | delete | rename ]
[FILE] fix_zip.py [ edit | delete | rename ]
[FILE] __init__.py [ edit | delete | rename ]
Viewing: /snap/core22/2437/usr/lib/python3.10/lib2to3/fixes/fix_paren.py
"""Fixer that adds parentheses where they are required
This converts ``[x for x in 1, 2]`` to ``[x for x in (1, 2)]``."""
# By Taek Joo Kim and Benjamin Peterson
# Local imports
from .. import fixer_base
from ..fixer_util import LParen, RParen
# XXX This doesn't support nested for loops like [x for x in 1, 2 for x in 1, 2]
class FixParen(fixer_base.BaseFix):
BM_compatible = True
PATTERN = """
atom< ('[' | '(')
(listmaker< any
comp_for<
'for' NAME 'in'
target=testlist_safe< any (',' any)+ [',']
>
[any]
>
>
|
testlist_gexp< any
comp_for<
'for' NAME 'in'
target=testlist_safe< any (',' any)+ [',']
>
[any]
>
>)
(']' | ')') >
"""
def transform(self, node, results):
target = results["target"]
lparen = LParen()
lparen.prefix = target.prefix
target.prefix = "" # Make it hug the parentheses
target.insert_child(0, lparen)
target.append_child(RParen())