관리-도구
편집 파일: fix_has_key.cpython-311.opt-1.pyc
� c��f| � �X � d Z ddlmZ ddlmZ ddlmZmZ G d� dej � � ZdS )a& Fixer for has_key(). Calls to .has_key() methods are expressed in terms of the 'in' operator: d.has_key(k) -> k in d CAVEATS: 1) While the primary target of this fixer is dict.has_key(), the fixer will change any has_key() method call, regardless of its class. 2) Cases like this will not be converted: m = d.has_key if m(k): ... Only *calls* to has_key() are converted. While it is possible to convert the above to something like m = d.__contains__ if m(k): ... this is currently not done. � )�pytree)� fixer_base)�Name�parenthesizec � � e Zd ZdZdZd� ZdS )� FixHasKeyTa� anchor=power< before=any+ trailer< '.' 'has_key' > trailer< '(' ( not(arglist | argument<any '=' any>) arg=any | arglist<(not argument<any '=' any>) arg=any ','> ) ')' > after=any* > | negation=not_test< 'not' anchor=power< before=any+ trailer< '.' 'has_key' > trailer< '(' ( not(arglist | argument<any '=' any>) arg=any | arglist<(not argument<any '=' any>) arg=any ','> ) ')' > > > c �J � | j }|j j |j k r!| j � |j � � rd S |� d� � }|d }|j }d� |d D � � }|d � � � }|� d� � } | rd� | D � � } |j |j |j |j |j |j |j |j fv rt |� � }t! |� � dk r |d }nt# j |j |� � }d |_ t) dd �� � } |r-t) d d �� � }t# j |j || f� � } t# j |j || |f� � }| r:t |� � }t# j |j |ft- | � � z � � }|j j |j |j |j |j |j |j |j |j |j f v rt |� � }||_ |S )N�negation�anchorc �6 � g | ]}|� � � ��S � ��clone��.0�ns �@/opt/alt/python311/lib64/python3.11/lib2to3/fixes/fix_has_key.py� <listcomp>z'FixHasKey.transform.<locals>.<listcomp>R s � �7�7�7��!�'�'�)�)�7�7�7� �before�arg�afterc �6 � g | ]}|� � � ��S r r r s r r z'FixHasKey.transform.<locals>.<listcomp>V s � �.�.�.�1�Q�W�W�Y�Y�.�.�.r � � � �in)�prefix�not)�syms�parent�type�not_test�pattern�match�getr r � comparison�and_test�or_test�test�lambdef�argumentr �lenr �Node�powerr �comp_op�tuple�expr�xor_expr�and_expr� shift_expr� arith_expr�term�factor) �self�node�resultsr r r r r r r �n_op�n_not�news r � transformzFixHasKey.transformG s � ��y���K��� �-�-��L���t�{�+�+� .� �4��;�;�z�*�*����"�����7�7�W�X�%6�7�7�7���e�n�"�"�$�$�����G�$�$��� /�.�.��.�.�.�E��8������ ���d�i���t�}�N� N� N��s�#�#�C��v�;�;�!����A�Y�F�F��[���V�4�4�F��� ��D��%�%�%��� <���s�+�+�+�E��;�t�|�e�T�]�;�;�D��k�$�/�C��v�+>�?�?��� A��s�#�#�C��+�d�j�3�&�5��<�<�*?�@�@�C��;������D�M� $� �t�� $���� $��T�Z� 9� 9� 9� �s�#�#�C��� �� r N)�__name__� __module__�__qualname__� BM_compatible�PATTERNr? r r r r r &