???<!-- GIF89;a -->
123123123123
.....................................................................................................................................???<!-- GIF89;a -->
123123123123
.....................................................................................................................................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
   