509318396
Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­
<!DOCTYPE html>
<html>
3

  \�  ã               @   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)       -> hasattr(obj, '__call__')
operator.sequenceIncludes(obj) -> operator.contains(obj)
operator.isSequenceType(obj)   -> isinstance(obj, collections.Sequence)
operator.isMappingType(obj)    -> isinstance(obj, collections.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© ú2/usr/lib64/python3.6/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"   | j ||ƒ}|d k	r|||ƒS d S )N)Ú_check_method)ÚselfÚnodeÚresultsÚmethodr
   r
   r   Ú	transform+   s    zFixOperator.transformzoperator.contains(%s)c             C   s   | j ||dƒS )NÚcontains)Ú_handle_rename)r   r   r   r
   r
   r   Ú_sequenceIncludes0   s    zFixOperator._sequenceIncludeszhasattr(%s, '__call__')c             C   s2   |d }|j ƒ tdƒtdƒg}ttdƒ||jd�S )Nr   z, z
'__call__'Úhasattr)Úprefix)Úcloner   r   r   r   )r   r   r   r   Úargsr
   r
   r   Ú_isCallable4   s    zFixOperator._isCallablezoperator.mul(%s)c             C   s   | j ||dƒS )NÚmul)r   )r   r   r   r
   r
   r   Ú_repeat:   s    zFixOperator._repeatzoperator.imul(%s)c             C   s   | j ||dƒS )NÚimul)r   )r   r   r   r
   r
   r   Ú_irepeat>   s    zFixOperator._irepeatz$isinstance(%s, collections.Sequence)c             C   s   | j ||ddƒS )NÚcollectionsÚSequence)Ú_handle_type2abc)r   r   r   r
   r
   r   Ú_isSequenceTypeB   s    zFixOperator._isSequenceTypez#isinstance(%s, collections.Mapping)c             C   s   | j ||ddƒS )Nr"   ÚMapping)r$   )r   r   r   r
   r
   r   Ú_isMappingTypeF   s    zFixOperator._isMappingTypezisinstance(%s, numbers.Number)c             C   s   | j ||ddƒS )NZnumbersÚNumber)r$   )r   r   r   r
   r
   r   Ú_isNumberTypeJ   s    zFixOperator._isNumberTypec             C   s   |d d }||_ |jƒ  d S )Nr   r   )ÚvalueZchanged)r   r   r   Únamer   r
   r
   r   r   N   s    zFixOperator._handle_renamec             C   sF   t d ||ƒ |d }|jƒ tddj||gƒ ƒg}ttdƒ||jd�S )Nr   z, Ú.Ú
isinstance)r   )r   r   r   Újoinr   r   r   )r   r   r   ÚmoduleÚabcr   r   r
   r
   r   r$   S   s    zFixOperator._handle_type2abcc             C   s\   t | d|d d j ƒ}t|tjƒrXd|kr0|S t|d ƒf}|j| }| j|d| ƒ d S )NÚ_r   r   r/   r   zYou should use '%s' here.)Úgetattrr*   r-   r"   ÚCallableÚstrr   Zwarning)r   r   r   r   ÚsubZinvocation_strr
   r
   r   r   Y   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      s    r   )Ú__doc__r"   Zlib2to3r   Zlib2to3.fixer_utilr   r   r   r   r   ZBaseFixr   r
   r
   r
   r   Ú<module>
   s
   