o
    bc                     @   s6   d Z ddlmZ ddlmZmZ G dd dejZdS )ztFixer that adds parentheses where they are required

This converts ``[x for x in 1, 2]`` to ``[x for x in (1, 2)]``.   )
fixer_base)LParenRParenc                   @   s   e Zd ZdZdZdd ZdS )FixParenTa  
        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]
                >
            >)
        (']' | ')') >
    c                 C   s8   |d }t  }|j|_d|_|d| |t  d S )Ntarget     )r   prefixinsert_childappend_childr   )selfnoderesultsr   lparen r   ./usr/lib/python3.10/lib2to3/fixes/fix_paren.py	transform%   s   zFixParen.transformN)__name__
__module____qualname__BM_compatiblePATTERNr   r   r   r   r   r      s    r   N)__doc__r   r   
fixer_utilr   r   BaseFixr   r   r   r   r   <module>   s    