
Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­
<!DOCTYPE html>
<html>
U
    ¡ê,ab  ã                   @   sN   d Z ddlZddlmZ ddlmZmZmZm	Z	 dd„ Z
G dd„ dejƒZdS )	aÐ  Fixer for operator functions.

operator.isCallable(obj)       -> callable(obj)
operator.sequenceIncludes(obj) -> operator.contains(obj)
operator.isSequenceType(obj)   -> isinstance(obj, collections.abc.Sequence)
operator.isMappingType(obj)    -> isinstance(obj, collections.abc.Mapping)
operator.isNumberType(obj)     -> isinstance(obj, numbers.Number)
operator.repeat(obj, n)        -> operator.mul(obj, n)
operator.irepeat(obj, n)       -> operator.imul(obj, n)
é    N)Ú
fixer_base)ÚCallÚNameÚStringÚtouch_importc                    s   ‡ fdd„}|S )Nc                    s
   ˆ | _ | S ©N)Ú
invocation)Úf©Ús© ú?/opt/alt/python38/lib64/python3.8/lib2to3/fixes/fix_operator.pyÚdec   s    zinvocation.<locals>.decr   )r   r   r   r
   r   r      s    r   c                   @   s¼   e Zd ZdZdZdZdZdeeed� Zdd„ Z	e
d	ƒd
d„ ƒZe
dƒdd„ ƒZe
dƒdd„ ƒZe
dƒdd„ ƒZe
dƒdd„ ƒZe
dƒdd„ ƒZe
dƒdd„ ƒZdd„ Zd d!„ Zd"d#„ Zd$S )%ÚFixOperatorTZprezµ
              method=('isCallable'|'sequenceIncludes'
                     |'isSequenceType'|'isMappingType'|'isNumberType'
                     |'repeat'|'irepeat')
              z'(' obj=any ')'z¼
              power< module='operator'
                trailer< '.' %(methods)s > trailer< %(obj)s > >
              |
              power< %(methods)s trailer< %(obj)s > >
              )ÚmethodsÚobjc                 C   s"   |   ||¡}|d k	r|||ƒS d S r   )Ú_check_method)ÚselfÚnodeÚresultsÚmethodr   r   r   Ú	transform+   s    zFixOperator.transformzoperator.contains(%s)c                 C   s   |   ||d¡S )NÚcontains©Ú_handle_rename©r   r   r   r   r   r   Ú_sequenceIncludes0   s    zFixOperator._sequenceIncludeszcallable(%s)c                 C   s"   |d }t tdƒ| ¡ g|jd�S )Nr   Úcallable©Úprefix)r   r   Úcloner   )r   r   r   r   r   r   r   Ú_isCallable4   s    zFixOperator._isCallablezoperator.mul(%s)c                 C   s   |   ||d¡S )NÚmulr   r   r   r   r   Ú_repeat9   s    zFixOperator._repeatzoperator.imul(%s)c                 C   s   |   ||d¡S )NÚimulr   r   r   r   r   Ú_irepeat=   s    zFixOperator._irepeatz(isinstance(%s, collections.abc.Sequence)c                 C   s   |   ||dd¡S )Núcollections.abcÚSequence©Ú_handle_type2abcr   r   r   r   Ú_isSequenceTypeA   s    zFixOperator._isSequenceTypez'isinstance(%s, collections.abc.Mapping)c                 C   s   |   ||dd¡S )Nr&   ÚMappingr(   r   r   r   r   Ú_isMappingTypeE   s    zFixOperator._isMappingTypezisinstance(%s, numbers.Number)c                 C   s   |   ||dd¡S )NZnumbersÚNumberr(   r   r   r   r   Ú_isNumberTypeI   s    zFixOperator._isNumberTypec                 C   s   |d d }||_ | ¡  d S )Nr   r   )ÚvalueZchanged)r   r   r   Únamer   r   r   r   r   M   s    zFixOperator._handle_renamec                 C   sF   t d ||ƒ |d }| ¡ tdd ||g¡ ƒg}ttdƒ||jd�S )Nr   z, Ú.Ú
isinstancer   )r   r    r   Újoinr   r   r   )r   r   r   ÚmoduleÚabcr   Úargsr   r   r   r)   R   s    zFixOperator._handle_type2abcc                 C   s^   t | d|d d j ƒ}t|tjjƒrZd|kr2|S t|d ƒf}|j| }|  |d| ¡ d S )NÚ_r   r   r4   r   zYou should use '%s' here.)	Úgetattrr/   r2   Úcollectionsr5   ÚCallableÚstrr   Zwarning)r   r   r   r   ÚsubZinvocation_strr   r   r   r   X   s    
zFixOperator._check_methodN)Ú__name__Ú
__module__Ú__qualname__ZBM_compatibleÚorderr   r   ÚdictZPATTERNr   r   r   r!   r#   r%   r*   r,   r.   r   r)   r   r   r   r   r   r      s2   
û






r   )Ú__doc__Zcollections.abcr9   Zlib2to3r   Zlib2to3.fixer_utilr   r   r   r   r   ZBaseFixr   r   r   r   r   Ú<module>   s
   