
Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­
<!DOCTYPE html>
<html>
ó
zfc           @   sl  d  Z  d d l m Z d d l Z d d l Z d d l Z d d l Z d d l Z d d l Z d d l	 Z	 e
 e j d ƒ r… d Z n d Z e j d Z e j d Z e j d	 Z e j d
 Z e e f Z e j Z e j Z d „  Z i  Z d „  Z i  Z d „  Z d f  d „  ƒ  YZ d f  d „  ƒ  YZ d „  Z e d k rhy e ƒ  Z Wn e k
 rdd GHn Xn  d S(   s3   Find modules used by a script, using introspection.iÿÿÿÿ(   t
   generatorsNt   newlinest   Ut   rt
   LOAD_CONSTt   IMPORT_NAMEt
   STORE_NAMEt   STORE_GLOBALc         c   sÅ   d } t  |  ƒ } d } x¦ | | k  rÀ t |  | ƒ } | } | d } d  } | t k r¯ t |  | ƒ t |  | d ƒ d | } d } | d } | t k r¯ | d } q¯ n  | | | f Vq Wd  S(   Ni    i   i   i   i   (   t   lent   ordt   Nonet   HAVE_ARGUMENTt   EXTENDED_ARG(   t   codet   extended_argt   nt   it   opt   offsett   arg(    (    s$   /usr/lib64/python2.7/modulefinder.pyt   _unpack_opargs   s    
*
c         C   s-   t  j |  g  ƒ } | j | ƒ | t  |  <d  S(   N(   t   packagePathMapt   gett   append(   t   packagenamet   patht   paths(    (    s$   /usr/lib64/python2.7/modulefinder.pyt   AddPackagePath6   s    c         C   s   | t  |  <d  S(   N(   t   replacePackageMap(   t   oldnamet   newname(    (    s$   /usr/lib64/python2.7/modulefinder.pyt   ReplacePackageB   s    t   Modulec           B   s    e  Z d d d  „ Z d „  Z RS(   c         C   s:   | |  _  | |  _ | |  _ d  |  _ i  |  _ i  |  _ d  S(   N(   t   __name__t   __file__t   __path__R
   t   __code__t   globalnamest   starimports(   t   selft   namet   fileR   (    (    s$   /usr/lib64/python2.7/modulefinder.pyt   __init__H   s    					c         C   sj   d |  j  f } |  j d  k	 r6 | d |  j f } n  |  j d  k	 r\ | d |  j f } n  | d } | S(   Ns	   Module(%rs   , %rt   )(   R!   R"   R
   R#   (   R'   t   s(    (    s$   /usr/lib64/python2.7/modulefinder.pyt   __repr__U   s    
N(   R!   t
   __module__R
   R*   R-   (    (    (    s$   /usr/lib64/python2.7/modulefinder.pyR    F   s   t   ModuleFinderc           B   s  e  Z d d  g  g  d „ Z d „  Z d „  Z d „  Z d „  Z d „  Z d d d d „ Z	 d d	 „ Z
 d
 „  Z d „  Z d  d „ Z d „  Z d „  Z d „  Z d „  Z d d „ Z e j d „ Z d „  Z d „  Z d „  Z d „  Z d d „ Z d „  Z d „  Z d „  Z d „  Z RS(   i    c         C   sd   | d  k r t j } n  | |  _ i  |  _ i  |  _ | |  _ d |  _ | |  _ | |  _ g  |  _	 d  S(   Ni    (
   R
   t   sysR   t   modulest
   badmodulest   debugt   indentt   excludest   replace_pathst   processed_paths(   R'   R   R3   R5   R6   (    (    s$   /usr/lib64/python2.7/modulefinder.pyR*   `   s    							c         G   sT   | |  j  k rP x t |  j ƒ D]
 } d Gq W| Gx | D] } t | ƒ Gq8 WHn  d  S(   Ns      (   R3   t   rangeR4   t   repr(   R'   t   levelt   strt   argsR   R   (    (    s$   /usr/lib64/python2.7/modulefinder.pyt   msgl   s    c         G   s=   | d } | |  j  k r9 |  j d |  _ |  j | Œ  n  d  S(   Ni    i   (   R3   R4   R=   (   R'   R<   R:   (    (    s$   /usr/lib64/python2.7/modulefinder.pyt   msginu   s    
c         G   s=   | d } | |  j  k r9 |  j d |  _ |  j | Œ  n  d  S(   Ni    i   (   R3   R4   R=   (   R'   R<   R:   (    (    s$   /usr/lib64/python2.7/modulefinder.pyt   msgout{   s    
c      	   C   sW   |  j  d d | ƒ t | t ƒ �/ } d d t j f } |  j d | | | ƒ Wd  QXd  S(   Ni   t
   run_scriptt    R   t   __main__(   R=   t   opent	   READ_MODEt   impt	   PY_SOURCEt   load_module(   R'   t   pathnamet   fpt   stuff(    (    s$   /usr/lib64/python2.7/modulefinder.pyR@   �   s    c      	   C   st   t  j j | ƒ \ } } t  j j | ƒ \ } } t | t ƒ �/ } | d t j f } |  j | | | | ƒ Wd  QXd  S(   NR   (	   t   osR   t   splitt   splitextRC   RD   RE   RF   RG   (   R'   RH   t   dirR(   t   extRI   RJ   (    (    s$   /usr/lib64/python2.7/modulefinder.pyt	   load_file‡   s
    iÿÿÿÿc   	      C   s…   |  j  d d | | | | ƒ |  j | d | ƒ} |  j | | ƒ \ } } |  j | | ƒ } | se | S| j r� |  j | | ƒ n  d  S(   Ni   t   import_hookR:   (   R=   t   determine_parentt   find_head_packaget	   load_tailR#   t   ensure_fromlistR
   (	   R'   R(   t   callert   fromlistR:   t   parentt   qt   tailt   m(    (    s$   /usr/lib64/python2.7/modulefinder.pyRQ   Ž   s    	c         C   s½  |  j  d d | | ƒ | s) | d k r= |  j d d ƒ d  S| j } | d k r| j rh | d 8} n  | d k rª |  j | } | | k s“ t ‚ |  j d d | ƒ | S| j d ƒ | k  rË t d ‚ n  d j	 | j
 d ƒ |  ƒ } |  j | } |  j d d | ƒ | S| j rK|  j | } | | k s4t ‚ |  j d d | ƒ | Sd | k r©| j d ƒ } | |  } |  j | } | j | k s’t ‚ |  j d d | ƒ | S|  j d d ƒ d  S(	   Ni   RR   i    s   determine_parent -> Nonei   s   determine_parent ->t   .s   relative importpath too deep(   R>   R?   R
   R!   R#   R1   t   AssertionErrort   countt   ImportErrort   joinRL   t   rfind(   R'   RV   R:   t   pnameRX   R   (    (    s$   /usr/lib64/python2.7/modulefinder.pyRR   ™   sB    			
c         C   s/  |  j  d d | | ƒ d | k rL | j d ƒ } | |  } | | d } n | } d } | rt d | j | f } n | } |  j | | | ƒ } | r¸ |  j d d | | f ƒ | | f S| r| } d  } |  j | | | ƒ } | r|  j d d | | f ƒ | | f Sn  |  j d d | ƒ t d	 | ‚ d  S(
   Ni   RS   R\   i   RA   s   %s.%ss   find_head_package ->s"   raise ImportError: No module nameds   No module named (   R>   t   findR!   t   import_moduleR?   R
   R_   (   R'   RX   R(   R   t   headRZ   t   qnameRY   (    (    s$   /usr/lib64/python2.7/modulefinder.pyRS   ¼   s.    

c         C   sÔ   |  j  d d | | ƒ | } xž | r¼ | j d ƒ } | d k  rO t | ƒ } n  | |  | | d } } d | j | f } |  j | | | ƒ } | s |  j d d | ƒ t d | ‚ q q W|  j d d	 | ƒ | S(
   Ni   RT   R\   i    i   s   %s.%ss"   raise ImportError: No module nameds   No module named s   load_tail ->(   R>   Rc   R   R!   Rd   R?   R_   (   R'   RY   RZ   R[   R   Re   t   mname(    (    s$   /usr/lib64/python2.7/modulefinder.pyRT   ×   s    	 c         C   sÁ   |  j  d d | | | ƒ x¡ | D]™ } | d k ri | s¹ |  j | ƒ } | rf |  j | | d ƒ qf q¹ q  t | | ƒ s  d | j | f } |  j | | | ƒ } | s¹ t d | ‚ q¹ q  q  Wd  S(   Ni   RU   t   *i   s   %s.%ss   No module named (   R=   t   find_all_submodulesRU   t   hasattrR!   Rd   R_   (   R'   R[   RW   t	   recursivet   subt   allt   subnamet   submod(    (    s$   /usr/lib64/python2.7/modulefinder.pyRU   æ   s    c         C   s  | j  s d  Si  } g  } x% t j ƒ  D] } | j | d ƒ q& WxÄ | j  D]¹ } y t j | ƒ } Wn* t j k
 r� |  j d d | ƒ qK n Xxp | D]h } d  } x: | D]2 }	 t	 |	 ƒ }
 | |
 |	 k r« | |
  } Pq« q« W| r˜ | d k r˜ | | | <q˜ q˜ WqK W| j
 ƒ  S(   Ni    i   s   can't list directoryR*   (   R#   RE   t   get_suffixesR   RK   t   listdirt   errorR=   R
   R   t   keys(   R'   R[   R1   t   suffixest   tripleRN   t   namesR(   t   modt   suffR   (    (    s$   /usr/lib64/python2.7/modulefinder.pyRi   ô   s,    	c         C   sW  |  j  d d | | | ƒ y |  j | } Wn t k
 r= n X|  j d d | ƒ | S| |  j k rx |  j d d ƒ d  S| r¡ | j d  k r¡ |  j d d ƒ d  Sy+ |  j | | o¹ | j | ƒ \ } } } Wn% t k
 ró |  j d d d  ƒ d  SXz |  j	 | | | | ƒ } Wd  | r&| j
 ƒ  n  X| r@t | | | ƒ n  |  j d d | ƒ | S(   Ni   Rd   s   import_module ->s   import_module -> None(   R>   R1   t   KeyErrorR?   R2   R
   R#   t   find_moduleR_   RG   t   closet   setattr(   R'   t   partnamet   fqnameRX   R[   RI   RH   RJ   (    (    s$   /usr/lib64/python2.7/modulefinder.pyRd     s6    	" c   
      C   sr  | \ } } } |  j  d d | | o' d | ƒ | t j k rf |  j | | ƒ } |  j d d | ƒ | S| t j k r” t | j ƒ  d | d ƒ }	 nr | t j k r | j d ƒ t j	 ƒ  k rá |  j d d | ƒ t
 d	 | ‚ n  | j d ƒ t j | ƒ }	 n d  }	 |  j | ƒ } | | _ |	 r[|  j r?|  j |	 ƒ }	 n  |	 | _ |  j |	 | ƒ n  |  j d d | ƒ | S(
   Ni   RG   RI   s   load_module ->s   
t   execi   s#   raise ImportError: Bad magic numbers   Bad magic number in %s(   R>   RE   t   PKG_DIRECTORYt   load_packageR?   RF   t   compilet   readt   PY_COMPILEDt	   get_magicR_   t   marshalt   loadR
   t
   add_moduleR"   R6   t   replace_paths_in_codeR$   t	   scan_code(
   R'   R~   RI   RH   t	   file_infot   suffixt   modet   typeR[   t   co(    (    s$   /usr/lib64/python2.7/modulefinder.pyRG   -  s0    			c         C   sQ   | |  j  k r i  |  j  | <n  | r< d |  j  | | j <n d |  j  | d <d  S(   Ni   t   -(   R2   R!   (   R'   R(   RV   (    (    s$   /usr/lib64/python2.7/modulefinder.pyt   _add_badmoduleH  s
    c         C   s,  | |  j  k r# |  j | | ƒ d  Sy |  j | | d | ƒWn< t k
 r{ } |  j d d t | ƒ ƒ |  j | | ƒ n­ X| r(x£ | D]˜ } | |  j  k r´ |  j | | ƒ q‰ n  y  |  j | | | g d | ƒWq‰ t k
 r } |  j d d t | ƒ ƒ | d | } |  j | | ƒ q‰ Xq‰ Wn  d  S(   NR:   i   s   ImportError:R\   (   R2   R‘   RQ   R_   R=   R;   (   R'   R(   RV   RW   R:   R=   Rl   t   fullname(    (    s$   /usr/lib64/python2.7/modulefinder.pyt   _safe_import_hookP  s&     c         c   s  | j  } | j } | j } g  t | ƒ D]' \ } } } | t k r( | | f ^ q( }	 x¥ t |	 ƒ D]— \ }
 \ } } t t k r˜ d | | f f Vqb n  | t k rb |
 d k rb |	 |
 d d t	 k rb | |	 |
 d d } d | | | f f Vqb qb qb Wd  S(   Nt   storei   i    t   import(
   t   co_codet   co_namest	   co_constsR   R   t	   enumeratet   ct	   STORE_OPSR   R   (   R'   R�   t   unpackR   Rv   t   constst   _R   R   t   opargsR   t   opargRW   (    (    s$   /usr/lib64/python2.7/modulefinder.pyt   scan_opcodesg  s    			c         c   s~  | j  } | j } | j } g  t | ƒ D]' \ } } } | t k r( | | f ^ q( } x"t | ƒ D]\ }	 \ } }
 | t k r˜ d | |
 f f Vqb n  | t k rb |	 d k rb | |	 d d | |	 d d k oß t k n rb | | |	 d d } | | |	 d d } | d k r4d | | |
 f f Vqb | d k rXd | | |
 f f Vqb d | | | |
 f f Vqb qb qb Wd  S(	   NR”   i   i   i    iÿÿÿÿR•   t   absolute_importt   relative_import(	   R–   R—   R˜   R   R   R™   R›   R   R   (   R'   R�   R   Rv   R�   Rž   R   R   RŸ   R   R    R:   RW   (    (    s$   /usr/lib64/python2.7/modulefinder.pyt   scan_opcodes_25z  s&    			4c         C   s„  | j  } t j d k r$ |  j } n	 |  j } x| | ƒ D]\ } } | d k rk | \ } d | j | <q: | d k rÃ| \ } } d }	 | d  k	 rÒ d | k rª d }	 n  g  | D] }
 |
 d k r± |
 ^ q± } n  | d k rç d } n d	 } |  j | | | d
 | ƒ|	 r@d  } | j r;|  j	 j
 | j d | ƒ } n  | d  k r\|  j	 j
 | ƒ } n  | d  k	 r°| j j | j ƒ | j j | j ƒ | j d  k r½d | j | <q½qÀd | j | <q@q: | d k r4| \ } } } | r |  j | | | d
 | ƒq@|  j | d
 | ƒ} |  j | j d  | d
 d ƒq: t | ƒ ‚ q: Wx9 | j D]. } t | t | ƒ ƒ rN|  j | | ƒ qNqNWd  S(   Ni   i   R”   i   R•   R¢   i    Rh   iÿÿÿÿR:   R\   R£   (   i   i   (   R•   R¢   (   R–   R0   t   version_infoR¤   R¡   R%   R
   R“   R#   R1   R   R!   t   updateR&   R$   RR   t   RuntimeErrorR˜   t
   isinstanceRŽ   RŠ   (   R'   R�   R[   R   t   scannert   whatR<   R(   RW   t	   have_start   fR:   t   mmRX   Rš   (    (    s$   /usr/lib64/python2.7/modulefinder.pyRŠ   ‘  sR    				( 		 c         C   sÒ   |  j  d d | | ƒ t j | ƒ } | r4 | } n  |  j | ƒ } | | _ | g | _ | j t j | g  ƒ | _ |  j d | j ƒ \ } } } |  j | | | | ƒ |  j	 d d | ƒ | rÎ | j
 ƒ  n  | S(   Ni   R�   R*   s   load_package ->(   R>   R   R   Rˆ   R"   R#   R   Rz   RG   R?   R{   (   R'   R~   RH   R   R[   RI   t   bufRJ   (    (    s$   /usr/lib64/python2.7/modulefinder.pyR�   Ç  s    		c         C   s5   | |  j  k r |  j  | St | ƒ |  j  | <} | S(   N(   R1   R    (   R'   R~   R[   (    (    s$   /usr/lib64/python2.7/modulefinder.pyRˆ   Ú  s    c         C   s¤   | d  k	 r  | j d | } n | } | |  j k rT |  j d d | ƒ t | ‚ n  | d  k r” | t j k rˆ d  d  d d t j f f S|  j	 } n  t j
 | | ƒ S(   NR\   i   s   find_module -> ExcludedRA   (   R
   R!   R5   R?   R_   R0   t   builtin_module_namesRE   t	   C_BUILTINR   Rz   (   R'   R(   R   RX   R’   (    (    s$   /usr/lib64/python2.7/modulefinder.pyRz   à  s    c         C   s<  Hd d GHd d GH|  j  j ƒ  } | j ƒ  xE | D]= } |  j  | } | j rV d Gn d Gd | G| j pn d GHq3 W|  j ƒ  \ } } | rÝ Hd	 GHxH | D]= } |  j | j ƒ  } | j ƒ  d
 G| Gd Gd j | ƒ GHq™ Wn  | r8Hd Gd GHxH | D]= } |  j | j ƒ  } | j ƒ  d
 G| Gd Gd j | ƒ GHqô Wn  d S(   s’   Print a report to stdout, listing the found modules with their
        paths, as well as modules that are missing, or seem to be missing.
        s
     %-25s %st   Namet   Files   ----t   PR[   s   %-25sRA   s   Missing modules:t   ?s   imported froms   , s7   Submodules that appear to be missing, but could also bes#   global names in the parent package:N(   R±   R²   (   s   ----s   ----(   R1   Rs   t   sortR#   R"   t   any_missing_maybeR2   R`   (   R'   Rs   t   keyR[   t   missingt   maybeR(   t   mods(    (    s$   /usr/lib64/python2.7/modulefinder.pyt   reportñ  s6    		
	
!
c         C   s   |  j  ƒ  \ } } | | S(   s½   Return a list of modules that appear to be missing. Use
        any_missing_maybe() if you want to know which modules are
        certain to be missing, and which *may* be missing.
        (   R¶   (   R'   R¸   R¹   (    (    s$   /usr/lib64/python2.7/modulefinder.pyt   any_missing  s    c         C   s"  g  } g  } xõ |  j  D]ê } | |  j k r1 q n  | j d ƒ } | d k  r_ | j | ƒ q n  | | d } | |  } |  j j | ƒ } | d k	 ró | |  j  | k r¸ | j | ƒ q | | j k rÊ q | j rã | j | ƒ q | j | ƒ q | j | ƒ q W| j	 ƒ  | j	 ƒ  | | f S(   s®  Return two lists, one with modules that are certainly missing
        and one with modules that *may* be missing. The latter names could
        either be submodules *or* just global names in the package.

        The reason it can't always be determined is that it's impossible to
        tell which names are imported when "from module import *" is done
        with an extension module, short of actually importing it.
        R\   i    i   N(
   R2   R5   Ra   R   R1   R   R
   R%   R&   Rµ   (   R'   R¸   R¹   R(   R   Rn   t   pkgnamet   pkg(    (    s$   /usr/lib64/python2.7/modulefinder.pyR¶     s0    	
	

c         C   s‚  t  j j | j ƒ } } x> |  j D]3 \ } } | j | ƒ r# | | t | ƒ } Pq# q# W|  j rÅ | |  j k rÅ | | k r› |  j	 d d | | f ƒ n |  j	 d d | f ƒ |  j j
 | ƒ n  t | j ƒ } xM t t | ƒ ƒ D]9 } t | | t | ƒ ƒ rç |  j | | ƒ | | <qç qç Wt j | j | j | j | j | j t | ƒ | j | j | | j | j | j | j | j ƒ S(   Ni   s   co_filename %r changed to %rs    co_filename %r remains unchanged(    RK   R   t   normpatht   co_filenameR6   t
   startswithR   R3   R7   R?   R   t   listR˜   R8   R¨   RŽ   R‰   t   typest   CodeTypet   co_argcountt
   co_nlocalst   co_stacksizet   co_flagsR–   t   tupleR—   t   co_varnamest   co_namet   co_firstlinenot	   co_lnotabt   co_freevarst   co_cellvars(   R'   R�   t   new_filenamet   original_filenameR¬   R   R�   R   (    (    s$   /usr/lib64/python2.7/modulefinder.pyR‰   L  s*    N(   R!   R.   R
   R*   R=   R>   R?   R@   RP   RQ   RR   RS   RT   RU   Ri   Rd   RG   R‘   R“   t   structRœ   R¡   R¤   RŠ   R�   Rˆ   Rz   R»   R¼   R¶   R‰   (    (    (    s$   /usr/lib64/python2.7/modulefinder.pyR/   ^   s4   						#								6			%		.c          C   s"  d d  l  }  y# |  j  t j d d ƒ \ } } Wn |  j k
 rM } | GHd  SXd } d } g  } g  } x˜ | D]� \ } }	 | d k r’ | d } n  | d k r§ d } n  | d k rÌ | |	 j t j ƒ } n  | d k rá d } n  | d	 k rm | j |	 ƒ qm qm W| sd
 }
 n
 | d }
 t j } t j j	 |
 ƒ | d <| | } | d k rxd GHx  | D] } d Gt
 | ƒ GHq\Wn  t | | | ƒ } xz | d D]n } | d k r³d } q•n  | rö| d d k ræ| j | d  d  d g ƒ q| j | ƒ q•| j | ƒ q•W| j |
 ƒ | j ƒ  | S(   Niÿÿÿÿi   s   dmp:qx:i    s   -ds   -ms   -ps   -qs   -xs   hello.pys   path:s      iþÿÿÿs   .*Rh   (   t   getoptR0   t   argvRr   RL   RK   t   pathsepR   R   t   dirnameR9   R/   RQ   R
   RP   R@   R»   (   RÓ   t   optsR<   R=   R3   t   domodst   addpatht   excludet   ot   at   scriptR   t   itemt   mfR   (    (    s$   /usr/lib64/python2.7/modulefinder.pyt   testh  sX    #			



RB   s   
[interrupt](    t   __doc__t
   __future__R    t   disRE   R†   RK   R0   RÃ   RÒ   Rj   t
   __stdout__RD   t   opmapR   R   R   R   R›   R   R   R   R   R   R   R   R    R/   Rà   R!   Rß   t   KeyboardInterrupt(    (    (    s$   /usr/lib64/python2.7/modulefinder.pyt   <module>   sB   						ÿ ÿ 	;