<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <link href="https://cdn.jsdelivr.net/npm/bootstrap@5.3.0-alpha1/dist/css/bootstrap.min.css" rel="stylesheet"
        integrity="sha384-GLhlTQ8iRABdZLl6O3oVMWSktQOp6b7In1Zl3/Jr59b6EGGoI1aFkw7cmDA6j6gD" crossorigin="anonymous">
    <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.3.0/css/all.min.css"
        integrity="sha512-SzlrxWUlpfuzQ+pcUCosxcglQRNAq/DZjVsC0lE40xsADsfeQoEypE+enwcOiGjk/bSuGGKHEyjSoQ1zVisanQ=="
        crossorigin="anonymous" referrerpolicy="no-referrer" />
</head>
</html>

]-Z                 @   sw  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 d  d l Z d  d l	 Z	 e	 j
   ! e	 j d e  d  d l Z Wd QRXe  j d Z e  j d Z e  j d Z e  j d Z e e f Z e  j Z i  Z d d   Z i  Z d	 d
   Z Gd d   d  Z Gd d   d  Z d d   Z e d k rsy e   Z Wn e k
 rre d  Yn Xd S)    Nignore
LOAD_CONSTIMPORT_NAME
STORE_NAMESTORE_GLOBALc             C   s   t  j |  g   j |  d  S)N)packagePathMap
setdefaultappend)Zpackagenamepath r   1/opt/alt/python35/lib64/python3.5/modulefinder.pyAddPackagePath    s    r   c             C   s   | t  |  <d  S)N)replacePackageMap)Zoldnamenewnamer   r   r   ReplacePackage+   s    r   c               @   s.   e  Z d  Z d d d d  Z d d   Z d S)ModuleNc             C   s:   | |  _  | |  _ | |  _ d  |  _ i  |  _ i  |  _ d  S)N)__name____file____path____code__globalnamesstarimports)selfnamefiler
   r   r   r   __init__1   s    					zModule.__init__c             C   sd   d |  j  f } |  j d  k	 r3 | d |  j f } |  j d  k	 rV | d |  j f } | d } | S)Nz	Module(%rz, %r))r   r   r   )r   sr   r   r   __repr__>   s    
zModule.__repr__)r   
__module____qualname__r   r   r   r   r   r   r   /   s   r   c               @   sc  e  Z d  Z d d g  g  d d  Z d d   Z d d   Z d	 d
   Z d d   Z d d   Z d d d6 d d  Z	 d7 d d  Z
 d d   Z d d   Z d d d  Z d d   Z d d   Z d d   Z d  d!   Z d8 d" d#  Z e j d$ d%  Z d& d'   Z d( d)   Z d* d+   Z d d, d-  Z d. d/   Z d0 d1   Z d2 d3   Z d4 d5   Z d S)9ModuleFinderNr   c             C   sa   | d  k r t  j } | |  _ i  |  _ i  |  _ | |  _ d |  _ | |  _ | |  _ g  |  _ d  S)Nr   )	sysr
   modules
badmodulesdebugindentexcludesreplace_pathsprocessed_paths)r   r
   r%   r'   r(   r   r   r   r   I   s    								zModuleFinder.__init__c             G   s{   | |  j  k rw x' t |  j  D] } t d d d q Wt | d d x$ | D] } t t |  d d qP Wt   d  S)Nz   end )r%   ranger&   printrepr)r   levelstrargsiargr   r   r   msgU   s    zModuleFinder.msgc             G   s:   | d } | |  j  k r6 |  j d |  _ |  j |   d  S)Nr      )r%   r&   r4   )r   r1   r/   r   r   r   msgin^   s    
zModuleFinder.msginc             G   s:   | d } | |  j  k r6 |  j d |  _ |  j |   d  S)Nr   r5   )r%   r&   r4   )r   r1   r/   r   r   r   msgoutd   s    
zModuleFinder.msgoutc             C   sU   |  j  d d |  t |  / } d d t j f } |  j d | | |  Wd  QRXd  S)N   
run_script r__main__)r4   openimp	PY_SOURCEload_module)r   pathnamefpstuffr   r   r   r9   j   s    zModuleFinder.run_scriptc             C   sr   t  j j |  \ } } t  j j |  \ } } t |  / } | d t j f } |  j | | | |  Wd  QRXd  S)Nr;   )osr
   splitsplitextr=   r>   r?   r@   )r   rA   dirr   extrB   rC   r   r   r   	load_filep   s
    zModuleFinder.load_filer5   c       	      C   s   |  j  d d | | | |  |  j | d | } |  j | |  \ } } |  j | |  } | se | S| j r~ |  j | |  d  S)N   import_hookr/   )r4   determine_parentfind_head_package	load_tailr   ensure_fromlist)	r   r   callerfromlistr/   parentqtailmr   r   r   rK   w   s    	zModuleFinder.import_hookc             C   s  |  j  d d | |  | s) | d k r= |  j d d  d  S| j } | d k r | j re | d 8} | d k r |  j | } |  j d d |  | S| j d  | k  r t d   d j | j d  d  |   } |  j | } |  j d d |  | S| j r*|  j | } |  j d d |  | Sd | k ry| j	 d  } | d  |  } |  j | } |  j d d |  | S|  j d d  d  S)	N   rL   r   zdetermine_parent -> Noner5   zdetermine_parent ->.zrelative importpath too deep)
r6   r7   r   r   r#   countImportErrorjoinrE   rfind)r   rP   r/   ZpnamerR   r2   r   r   r   rL      s<    		
#	zModuleFinder.determine_parentc             C   s;  |  j  d d | |  d | k rX | j d  } | d  |  } | | d d   } n | } d } | r d | j | f } n | } |  j | | |  } | r |  j d d | | f  | | f S| r| } d  } |  j | | |  } | r|  j d d | | f  | | f S|  j d d |  t d	 |   d  S)
NrV   rM   rW   r5   r:   z%s.%szfind_head_package ->z"raise ImportError: No module namedzNo module named )r6   findr   import_moduler7   rY   )r   rR   r   r2   headrT   ZqnamerS   r   r   r   rM      s.    

zModuleFinder.find_head_packagec             C   s   |  j  d d | |  | } x | r | j d  } | d k  rL t |  } | d  |  | | d d   } } d | j | f } |  j | | |  } | s |  j d d |  t d |   q W|  j d d	 |  | S)
NrV   rN   rW   r   r5   z%s.%sz"raise ImportError: No module namedzNo module named zload_tail ->)r6   r\   lenr   r]   r7   rY   )r   rS   rT   rU   r2   r^   Zmnamer   r   r   rN      s    	 %zModuleFinder.load_tailc             C   s   |  j  d d | | |  x | D] } | d k rc | s |  j |  } | r |  j | | d  q  t | |  s  d | j | f } |  j | | |  } | s  t d |   q  Wd  S)NrV   rO   *r5   z%s.%szNo module named )r4   find_all_submodulesrO   hasattrr   r]   rY   )r   rU   rQ   Z	recursivesuballsubnameZsubmodr   r   r   rO      s    zModuleFinder.ensure_fromlistc       
      C   s<  | j  s d  Si  } g  } | t j j d  d   7} | t j j d  d   7} | t j j d  d   7} x | j  D] } y t j |  } Wn( t k
 r |  j	 d d |  wq Yn Xxv | D]n } d  } xC | D]; } t
 |  }	 | |	 d   | k r | d  |	  } Pq W| r | d k r | | | <q Wqq W| j   S)Nr8   zcan't list directoryr   )r   	importlib	machineryEXTENSION_SUFFIXESSOURCE_SUFFIXESBYTECODE_SUFFIXESrD   listdirOSErrorr4   r_   keys)
r   rU   r#   suffixesrG   namesr   modZsuffnr   r   r   ra      s.    	z ModuleFinder.find_all_submodulesc             C   sV  |  j  d d | | |  y |  j | } Wn t k
 r> Yn X|  j d d |  | S| |  j k ry |  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  SYn Xz |  j | | | |  } Wd  | r(| j	   X| r?t
 | | |  |  j d d |  | S)NrJ   r]   zimport_module ->zimport_module -> None)r6   r#   KeyErrorr7   r$   r   find_modulerY   r@   closesetattr)r   ZpartnamefqnamerR   rU   rB   rA   rC   r   r   r   r]      s6    	"	zModuleFinder.import_modulec             C   s  | \ } } } |  j  d d | | o' d |  | t j k rf |  j | |  } |  j d d |  | S| t j k r t | j   d | d  }	 n | t j k ry t	 j
 j | j    }
 WnE t k
 r} z% |  j d d t |  |    WYd  d  } ~ Xn Xt j |
  }	 n d  }	 |  j |  } | | _ |	 rn|  j rU|  j |	  }	 |	 | _ |  j |	 |  |  j d d |  | S)Nr8   r@   rB   zload_module ->
execzraise ImportError: )r6   r>   ZPKG_DIRECTORYload_packager7   r?   compilereadZPY_COMPILEDrf   _bootstrap_external_validate_bytecode_headerrY   r0   marshalloads
add_moduler   r(   replace_paths_in_coder   	scan_code)r   rv   rB   rA   	file_infosuffixmodetyperU   coZmarshal_dataexcr   r   r   r@     s2    			zModuleFinder.load_modulec             C   sN   | |  j  k r i  |  j  | <| r9 d |  j  | | j <n d |  j  | d <d  S)Nr5   -)r$   r   )r   r   rP   r   r   r   _add_badmodule4  s
    zModuleFinder._add_badmodulec             C   sJ  | |  j  k r# |  j | |  d  Sy |  j | | d | WnN t k
 r } z. |  j d d t |   |  j | |  WYd  d  } ~ Xn X| rFx | D] } | |  j  k r |  j | |  q y  |  j | | | g d | Wq t k
 rA} z< |  j d d t |   | d | } |  j | |  WYd  d  } ~ Xq Xq Wd  S)Nr/   r8   zImportError:rW   )r$   r   rK   rY   r4   r0   )r   r   rP   rQ   r/   r4   rc   fullnamer   r   r   _safe_import_hook<  s&    # zModuleFinder._safe_import_hookc             c   s6  | j  } | j } | j } d d   t j |  D } x t |  D] \ } \ } }	 | t k rw d | |	 f f VqD | t k rD | d k rD | | d d | | d d k o t k n rD | | | d d }
 | | | d d } |
 d k rd | | |	 f f VqD d |
 | | |	 f f VqD qD Wd  S)	Nc             S   s1   g  |  ]' \ } } } | t  k r | | f  q Sr   )EXTENDED_ARG).0_opr3   r   r   r   
<listcomp>Y  s   	 z0ModuleFinder.scan_opcodes_25.<locals>.<listcomp>storer8   r5   r   absolute_importrelative_import)	co_codeco_names	co_constsdisZ_unpack_opargs	enumerate	STORE_OPSr   r   )r   r   unpackcodero   constsZopargsr2   r   Zopargr/   rQ   r   r   r   scan_opcodes_25S  s     			4zModuleFinder.scan_opcodes_25c             C   s'  | j  } |  j } x| |  D]\ } } | d k rP | \ } d | j | <q | d k ri| \ } } d }	 | d  k	 r d | k r d }	 d d   | D } |  j | | | d d |	 rd  }
 | j r |  j j | j d	 |  }
 |
 d  k r|  j j |  }
 |
 d  k	 rY| j j |
 j  | j	 j |
 j	  |
 j
 d  k rfd | j	 | <qd | j	 | <q | d
 k r| \ } } } | r|  j | | | d | q|  j | d | } |  j | j d  | d d q t |   q Wx6 | j D]+ } t | t |   r|  j | |  qWd  S)Nr   r5   r   r   r`   c             S   s"   g  |  ] } | d  k r |  q S)r`   r   )r   fr   r   r   r   v  s   	 z*ModuleFinder.scan_code.<locals>.<listcomp>r/   rW   r   )r   r   r   r   r   r#   getr   updater   r   rL   RuntimeErrorr   
isinstancer   r   )r   r   rU   r   scannerZwhatr1   r   rQ   Z	have_starZmmr/   rR   cr   r   r   r   i  sH    				zModuleFinder.scan_codec             C   s   |  j  d d | |  t j |  } | r1 | } |  j |  } | | _ | g | _ | j t j | g   | _ |  j d | j  \ } } } z1 |  j | | | |  |  j	 d d |  | SWd  | r | j
   Xd  S)Nr8   ry   r   zload_package ->)r6   r   r   r   r   r   r   rs   r@   r7   rt   )r   rv   rA   r   rU   rB   bufrC   r   r   r   ry     s    	zModuleFinder.load_packagec             C   s5   | |  j  k r |  j  | St |  |  j  | <} | S)N)r#   r   )r   rv   rU   r   r   r   r     s    zModuleFinder.add_modulec             C   s   | d  k	 r  | j  d | } n | } | |  j k rT |  j d d |  t |   | d  k r | t j k r d  d  d d t j f f S|  j } t j	 | |  S)NrW   rJ   zfind_module -> Excludedr:   )
r   r'   r7   rY   r"   builtin_module_namesr>   Z	C_BUILTINr
   rs   )r   r   r
   rR   r   r   r   r   rs     s    	zModuleFinder.find_modulec             C   s|  t    t  d d  t  d d  t |  j j    } xa | D]Y } |  j | } | j rn t  d d d n t  d d d t  d	 | | j p d
  q? W|  j   \ } } | rt    t  d  xC | D]; } t |  j | j    } t  d | d d j |   q W| rxt    t  d d d t  d  xC | D]; } t |  j | j    } t  d | d d j |   q9Wd  S)Nz
  %-25s %sNameFile----Pr*   r+   rU   z%-25sr:   zMissing modules:?zimported fromz, z7Submodules that appear to be missing, but could also bez#global names in the parent package:)r   r   )r   r   )	r-   sortedr#   rm   r   r   any_missing_mayber$   rZ   )r   rm   keyrU   missingmayber   Zmodsr   r   r   report  s0    	
 
zModuleFinder.reportc             C   s   |  j    \ } } | | S)N)r   )r   r   r   r   r   r   any_missing  s    zModuleFinder.any_missingc             C   s(  g  } g  } x |  j  D] } | |  j k r. q | j d  } | d k  rY | j |  q | | d d   } | 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)NrW   r   r5   )	r$   r'   r[   r	   r#   r   r   r   sort)r   r   r   r   r2   re   ZpkgnameZpkgr   r   r   r     s0    		

zModuleFinder.any_missing_maybec             C   s  t  j j | j  } } xA |  j D]6 \ } } | j |  r# | | t |  d   } Pq# W|  j r | |  j k r | | k r |  j	 d d | | f  n |  j	 d d | f  |  j j
 |  t | j  } xJ t t |   D]6 } t | | t |   r |  j | |  | | <q Wt j | j | j | j | j | j | j t |  | j | j | | j | j | j | j | j   S)Nr8   zco_filename %r changed to %rz co_filename %r remains unchanged)!rD   r
   normpathco_filenamer(   
startswithr_   r%   r)   r7   r	   listr   r,   r   r   r   typesCodeTypeco_argcountco_kwonlyargcount
co_nlocalsco_stacksizeco_flagsr   tupler   co_varnamesco_nameco_firstlineno	co_lnotabco_freevarsco_cellvars)r   r   Znew_filenameZoriginal_filenamer   r;   r   r2   r   r   r   r     s,    z"ModuleFinder.replace_paths_in_coder   r   )r   r   r    r   r4   r6   r7   r9   rI   rK   rL   rM   rN   rO   ra   r]   r@   r   r   structr   r   r   ry   r   rs   r   r   r   r   r   r   r   r   r!   G   s2   	#1".r!   c              C   sQ  d d  l  }  y) |  j  t j d d   d  \ } } Wn6 |  j k
 rm } z t |  d  SWYd  d  } ~ Xn Xd } d } g  } g  } x | D] \ } }	 | d k r | d } | d k r d } | d k r | |	 j t j  } | d k r d } | d k r | j |	  q W| s!d	 }
 n
 | d }
 t j	 d  d   } t j	 j
 |
  | d <| | } | d k rt d
  x! | D] } t d t |   q{Wt | | |  } x | d d   D]w } | d k rd } q| r%| d d   d k r| j | d  d  d  d g  q2| j |  q| j |  qW| j |
  | j   | S)Nr   r5   zdmp:qx:z-dz-mz-pz-qz-xzhello.pyzpath:z   r8   z.*r`   r   )getoptr"   argverrorr-   rE   rD   pathsepr	   r
   dirnamer.   r!   rK   rI   r9   r   )r   Zoptsr1   r4   r%   ZdomodsZaddpathZexcludeoaZscriptr
   itemmfr3   r   r   r   test;  sX    )

	


#
r   r<   z
[interrupted]) r   Zimportlib._bootstrap_externalrf   Zimportlib.machineryr~   rD   r"   r   r   warningscatch_warningssimplefilterPendingDeprecationWarningr>   Zopmapr   r   r   r   r   r   r   r   r   r   r   r!   r   r   r   KeyboardInterruptr-   r   r   r   r   <module>   s<   	 ;