ó
è¾bc           @   s^   d  Z  d d l m Z d d l m Z m Z m Z m Z d „  Z d e j	 f d „  ƒ  YZ
 d S(   sÓ  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)
iÿÿÿÿ(   t
   fixer_base(   t   Callt   Namet   Stringt   touch_importc            s   ‡  f d †  } | S(   Nc            s   ˆ  |  _  |  S(   N(   t
   invocation(   t   f(   t   s(    s0   /usr/lib/python2.7/lib2to3/fixes/fix_operator.pyt   dec   s    	(    (   R   R   (    (   R   s0   /usr/lib/python2.7/lib2to3/fixes/fix_operator.pyR      s    t   FixOperatorc           B   sð   e  Z e Z d  Z d Z d Z d e d e d e ƒ Z d „  Z	 e
 d ƒ d „  ƒ Z e
 d	 ƒ d
 „  ƒ Z e
 d ƒ d „  ƒ Z e
 d ƒ d „  ƒ Z e
 d ƒ d „  ƒ Z e
 d ƒ d „  ƒ Z e
 d ƒ d „  ƒ Z d „  Z d „  Z d „  Z RS(   t   presµ   
              method=('isCallable'|'sequenceIncludes'
                     |'isSequenceType'|'isMappingType'|'isNumberType'
                     |'repeat'|'irepeat')
              s   '(' obj=any ')'s¼   
              power< module='operator'
                trailer< '.' %(methods)s > trailer< %(obj)s > >
              |
              power< %(methods)s trailer< %(obj)s > >
              t   methodst   objc         C   s/   |  j  | | ƒ } | d  k	 r+ | | | ƒ Sd  S(   N(   t   _check_methodt   None(   t   selft   nodet   resultst   method(    (    s0   /usr/lib/python2.7/lib2to3/fixes/fix_operator.pyt	   transform)   s    s   operator.contains(%s)c         C   s   |  j  | | d ƒ S(   Nu   contains(   t   _handle_rename(   R   R   R   (    (    s0   /usr/lib/python2.7/lib2to3/fixes/fix_operator.pyt   _sequenceIncludes.   s    s   hasattr(%s, '__call__')c         C   sG   | d } | j  ƒ  t d ƒ t d ƒ g } t t d ƒ | d | j ƒS(   NR   u   , u
   '__call__'u   hasattrt   prefix(   t   cloneR   R   R   R   (   R   R   R   R   t   args(    (    s0   /usr/lib/python2.7/lib2to3/fixes/fix_operator.pyt   _isCallable2   s    
!s   operator.mul(%s)c         C   s   |  j  | | d ƒ S(   Nu   mul(   R   (   R   R   R   (    (    s0   /usr/lib/python2.7/lib2to3/fixes/fix_operator.pyt   _repeat8   s    s   operator.imul(%s)c         C   s   |  j  | | d ƒ S(   Nu   imul(   R   (   R   R   R   (    (    s0   /usr/lib/python2.7/lib2to3/fixes/fix_operator.pyt   _irepeat<   s    s$   isinstance(%s, collections.Sequence)c         C   s   |  j  | | d d ƒ S(   Nu   collectionsu   Sequence(   t   _handle_type2abc(   R   R   R   (    (    s0   /usr/lib/python2.7/lib2to3/fixes/fix_operator.pyt   _isSequenceType@   s    s#   isinstance(%s, collections.Mapping)c         C   s   |  j  | | d d ƒ S(   Nu   collectionsu   Mapping(   R   (   R   R   R   (    (    s0   /usr/lib/python2.7/lib2to3/fixes/fix_operator.pyt   _isMappingTypeD   s    s   isinstance(%s, numbers.Number)c         C   s   |  j  | | d d ƒ S(   Nu   numbersu   Number(   R   (   R   R   R   (    (    s0   /usr/lib/python2.7/lib2to3/fixes/fix_operator.pyt   _isNumberTypeH   s    c         C   s%   | d d } | | _  | j ƒ  d  S(   NR   i    (   t   valuet   changed(   R   R   R   t   nameR   (    (    s0   /usr/lib/python2.7/lib2to3/fixes/fix_operator.pyR   L   s    	c         C   sa   t  d  | | ƒ | d } | j ƒ  t d d j | | g ƒ ƒ g } t t d ƒ | d | j ƒS(   NR   u   , u   .u
   isinstanceR   (   R   R   R   R   t   joinR   R   R   (   R   R   R   t   modulet   abcR   R   (    (    s0   /usr/lib/python2.7/lib2to3/fixes/fix_operator.pyR   Q   s    
+c         C   s„   t  |  d | d d j j d ƒ ƒ } t | ƒ r€ d | k rC | St | d ƒ f } t | j ƒ | } |  j | d | ƒ n  d  S(   Nt   _R   i    t   asciiR$   R   u   You should use '%s' here.(   t   getattrR    t   encodet   callablet   unicodeR   t   warningR   (   R   R   R   R   t   subt   invocation_str(    (    s0   /usr/lib/python2.7/lib2to3/fixes/fix_operator.pyR   W   s    '(   t   __name__t
   __module__t   Truet   BM_compatiblet   orderR   R   t   dictt   PATTERNR   R   R   R   R   R   R   R   R   R   R   R   (    (    (    s0   /usr/lib/python2.7/lib2to3/fixes/fix_operator.pyR	      s    			N(   t   __doc__t   lib2to3R    t   lib2to3.fixer_utilR   R   R   R   R   t   BaseFixR	   (    (    (    s0   /usr/lib/python2.7/lib2to3/fixes/fix_operator.pyt   <module>
   s   "	