ó
	Q[c           @   so   d  Z  d d l m Z d d l m Z m Z d d l m Z m Z m	 Z	 i d d 6Z
 d e	 f d     YZ d	 S(
   sC   Fix UserDict.

Incomplete!

TODO: base this on fix_urllib perhaps?
i’’’’(   t
   fixer_base(   t   Namet
   attr_chain(   t
   alternatest   build_patternt
   FixImportst   collectionst   UserDictt   FixUserdictc           B   sM   e  Z e Z e Z e Z d  Z d   Z d   Z	 d   Z
 d   Z d   Z RS(   i   c         C   s   d j  t |  j   S(   Nt   |(   t   joinR   t   mapping(   t   self(    (    s=   lib/python2.7/site-packages/libfuturize/fixes/fix_UserDict.pyR   5   s    c         C   s&   |  j    |  _ t t |   j   d  S(   N(   R   t   PATTERNt   superR   t   compile_pattern(   R   (    (    s=   lib/python2.7/site-packages/libfuturize/fixes/fix_UserDict.pyR   8   s    c            sa   t  t |   j     |  } | r] d | k rY t   f d   t | d  D  rY t S| St S(   Nt   bare_with_attrc         3   s   |  ] }   |  Vq d  S(   N(    (   t   .0t   obj(   t   match(    s=   lib/python2.7/site-packages/libfuturize/fixes/fix_UserDict.pys	   <genexpr>F   s    t   parent(   R   R   R   t   anyR   t   False(   R   t   nodet   results(    (   R   s=   lib/python2.7/site-packages/libfuturize/fixes/fix_UserDict.pyR   ?   s    %c         C   s&   t  t |   j | |  i  |  _ d  S(   N(   R   R   t
   start_treet   replace(   R   t   treet   filename(    (    s=   lib/python2.7/site-packages/libfuturize/fixes/fix_UserDict.pyR   K   s    c         C   sļ   | j  d  } | r£ | j } t |  j |  } | j t | d | j  d | k ri | |  j | <n  d | k rė |  j |  } | r  |  j | |  q  qė nH | d d } |  j j  | j  } | rė | j t | d | j  n  d  S(   Nt   module_namet   prefixt   name_importt   multiple_importsR   i    (	   t   gett   valuet   unicodeR   R   R   R   R   t	   transform(   R   R   R   t
   import_modt   mod_namet   new_namet	   bare_name(    (    s=   lib/python2.7/site-packages/libfuturize/fixes/fix_UserDict.pyR$   O   s    	(   t   __name__t
   __module__t   Truet   BM_compatiblet   keep_line_ordert   MAPPINGR   t	   run_orderR   R   R   R   R$   (    (    (    s=   lib/python2.7/site-packages/libfuturize/fixes/fix_UserDict.pyR   *   s   				N(   t   __doc__t   lib2to3R    t   lib2to3.fixer_utilR   R   t   lib2to3.fixes.fix_importsR   R   R   R.   R   (    (    (    s=   lib/python2.7/site-packages/libfuturize/fixes/fix_UserDict.pyt   <module>   s
   