î
\á[\  ã               @   s[   d  Z  d d l m Z d d l m Z m Z m Z m Z m Z Gd d „  d e j	 ƒ Z
 d S)z…Fixer for callable().

This converts callable(obj) into isinstance(obj, collections.Callable), adding a
collections import if needed.é    )Ú
fixer_base)ÚCallÚNameÚStringÚAttrÚtouch_importc               @   s.   e  Z d  Z d Z d Z d Z d d „  Z d S)ÚFixCallableTZprea  
    power< 'callable'
           trailer< lpar='('
                    ( not(arglist | argument<any '=' any>) func=any
                      | func=arglist<(not argument<any '=' any>) any ','> )
                    rpar=')' >
           after=any*
    >
    c             C   ss   | d } t  d  d d | ƒ| j ƒ  t d ƒ g } | j t t d ƒ t d ƒ ƒ ƒ t t d ƒ | d | j ƒS)NÚfuncÚcollectionsÚnodez, ÚCallableÚ
isinstanceÚprefix)r   Zcloner   Úextendr   r   r   r   )Úselfr   Zresultsr	   Úargs© r   ú0/usr/lib/python3.4/lib2to3/fixes/fix_callable.pyÚ	transform   s
    
"zFixCallable.transformN)Ú__name__Ú
__module__Ú__qualname__ZBM_compatibleZorderZPATTERNr   r   r   r   r   r      s   r   N)Ú__doc__Zlib2to3r   Zlib2to3.fixer_utilr   r   r   r   r   ZBaseFixr   r   r   r   r   Ú<module>   s   (