ó
à™xTc           @   s|   d  d l  m Z d  d l Z e j Z d „  Z d „  Z d „  Z d „  Z e	 d k rx d  d l
 Z
 e d e
 j d	 ƒ n  d S(
   iÿÿÿÿ(   t   divisionNc            s4  t  d d d g ƒ } g  } g  } xx |  D]p } | | k r@ q( n  | j ƒ  ‰ ˆ j d ƒ s‡ | j ˆ ƒ | j d j | ƒ ƒ g  } q( | j ˆ d  ƒ q( Wt | ƒ d k rÇ | j d j | ƒ ƒ n  i  ‰  g  } x�| D]‡‰ ‡ f d	 †  } ˆ j d
 ƒ rIˆ j d ƒ rqÚ n  ˆ j d ƒ r(qÚ n  ˆ j d ƒ r=qÚ n  | ƒ  } nz ˆ j d ƒ r³ˆ j d ƒ rmqÚ n  | ƒ  } xJ t | ƒ D]& \ } }	 |	 d k rƒ| | } PqƒqƒWqÚ n | j ˆ ƒ qÚ | d d k sßt | ƒ ‚ | d } | j d ƒ ‡  f d †  }
 d } xS t | ƒ D]E \ } }	 |	 d k r| | k rP|
 | | | !ƒ n  | d } qqWqÚ Wd } t  ˆ  j	 ƒ  ƒ } t  ƒ  } x{ | D]s ‰ g  } x9 ˆ D]1 } | j
 | ƒ d k  rÄd } n  | j | ƒ q Wd j | ƒ j ƒ  } | j | j | ƒ ƒ q�Wt | | ƒ } ‡  f d †  } | j | ƒ | S(   Ns#   import libtbx.forward_compatibilitys!     import libtbx.start_print_traces       import libtbx.callbackss   \t    iÿÿÿÿi    t    c              s   ˆ  j  d d ƒ j ƒ  S(   Nt   ,s    , (   t   replacet   split(    (   t   l(    s[   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/libtbx/command_line/find_unused_imports_crude.pyR      s    s   import s    # import dependencys    # implicit imports    # special imports   from s   from __future__ t   importi   R   c            s™   t  |  ƒ d k r |  d } n# t  |  ƒ d k r> |  d } n d  S| d k rW d } n | j d ƒ d } | d	 k r• | ˆ  k r• t  ˆ  ƒ ˆ  | <n  d  S(
   Ni   i    i   i   s   libtbx.load_envt   envt   .iÿÿÿÿt   *(   t   lenR   (   t   fldst   name(   t   imported_names_dict(    s[   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/libtbx/command_line/find_unused_imports_crude.pyt   collect6   s    	t?   _0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyzc            s   t  ˆ  |  ˆ  | f Œ  S(   N(   t   cmp(   t   at   b(   R   (    s[   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/libtbx/command_line/find_unused_imports_crude.pyt   cmp_input_orderU   s    (   t   sett   stript   endswitht   appendt   joinR   t
   startswitht	   enumeratet   AssertionErrort   keyst   findR   t   updatet   intersectiont   listt   sort(   t   py_linest   imports_to_ignoret   combined_linest   blockt   linet   non_import_linesR   R   t   it   fldR   t   jt   idct   imported_namest
   used_namest   filteredt   ct   unused_namesR   (    (   R   R   s[   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/libtbx/command_line/find_unused_imports_crude.pyt   inspect   s‚    		

		c         C   sS   t  d t |  ƒ j ƒ  j ƒ  ƒ } t | ƒ d k rO d |  d j | ƒ f GHHn  | S(   NR#   i    s   %s: %ss   , (   R2   t   opent   readt
   splitlinesR   R   (   t	   file_namet   unused_imports(    (    s[   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/libtbx/command_line/find_unused_imports_crude.pyt   show_unused_importsZ   s    c         C   sy   xr | D]j } | j  d ƒ s" q n  t j | | ƒ } t j | ƒ r t t | ƒ ƒ d k rq |  d c d 7<qq q q Wd  S(   Ns   .pyi    i   (   R   t   opR   t   isfileR   R8   (   t   countert   dirnamet   namesR   R6   (    (    s[   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/libtbx/command_line/find_unused_imports_crude.pyt	   walk_funcb   s    c         C   s¹   t  |  ƒ d k r d g }  n  d g } xs |  D]k } t j | ƒ rY t j | t | ƒ q. t j | ƒ r. t  t d | ƒ ƒ d k r™ | d c d 7<q™ q. q. W| d d k rµ d GHn  d  S(   Ni    R	   R6   i   sÔ   HINT:
  To suppress flagging of unused imports follow these examples:
    import scitbx.array_family.flex # import dependency
    import something.related # implicit import
    import wingdbstub # special import
(   R   R9   t   isdirt   walkR>   R:   R8   (   t   argsR;   t   arg(    (    s[   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/libtbx/command_line/find_unused_imports_crude.pyt   runk   s    	t   __main__RA   i   (   t
   __future__R    t   ost   pathR9   R2   R8   R>   RC   t   __name__t   syst   argv(    (    (    s[   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/libtbx/command_line/find_unused_imports_crude.pyt   <module>   s   		U				