grthtrhthjhtyjytjytkergtrhtrjytjerhrfh3 \·.ã@sþddlZddlZddlZddlZddlmZmZddgZGdd„de ƒZ Gdd„de ƒZ dd d „Z d d d „Z efd d„ZGdd„deƒZd!dd„Zd"dd„Zefdd„Zdd„Zd#dd„Zedk�rúeejƒdk�räedejd�nejd=eejdƒdS)$éN)Ú read_codeÚ get_importerÚ run_moduleÚrun_pathc@s$eZdZdd„Zdd„Zdd„ZdS)Ú _TempModulecCs||_tj|ƒ|_g|_dS)N)Úmod_nameÚtypesÚ ModuleTypeÚmoduleÚ _saved_module)Úselfr©r ú/usr/lib64/python3.6/runpy.pyÚ__init__s z_TempModule.__init__c CsB|j}y|jjtj|ƒWntk r0YnX|jtj|<|S)N)rr ÚappendÚsysÚmodulesÚKeyErrorr )r rr r rÚ __enter__s z_TempModule.__enter__cGs.|jr|jdtj|j<n tj|j=g|_dS)Nr)r rrr)r Úargsr r rÚ__exit__'s z_TempModule.__exit__N)Ú__name__Ú __module__Ú __qualname__rrrr r r rrs rc@s$eZdZdd„Zdd„Zdd„ZdS)Ú_ModifiedArgv0cCs||_tƒ|_|_dS)N)ÚvalueÚobjectÚ _saved_valueÚ _sentinel)r rr r rr/sz_ModifiedArgv0.__init__cCs0|j|jk rtdƒ‚tjd|_|jtjd<dS)NzAlready preserving saved valuer)rrÚ RuntimeErrorrÚargvr)r r r rr3s  z_ModifiedArgv0.__enter__cGs|j|_|jtjd<dS)Nr)rrrrr )r rr r rr9sz_ModifiedArgv0.__exit__N)rrrrrrr r r rr.src Csn|dk r|j|ƒ|dkr(d}|}d} n |j}|j}|j} |dkrH|j}|j||| d|||d�t||ƒ|S)N)rÚ__file__Ú __cached__Ú__doc__Ú __loader__Ú __package__Ú__spec__)ÚupdateÚloaderÚoriginÚcachedÚparentÚexec) ÚcodeZ run_globalsÚ init_globalsrÚmod_specÚpkg_nameÚ script_namer(Úfnamer*r r rÚ _run_code>s(  r3c Cs^|dkr |n|j}t|ƒ�6}t|ƒ�"|jj}t|||||||ƒWdQRXWdQRX|jƒS)N)r)rrr Ú__dict__r3Úcopy) r-r.rr/r0r1r2Ú temp_moduleÚ mod_globalsr r rÚ_run_module_codeXs  r8c ;Cs4|jdƒr|dƒ‚|jdƒ\}}}|rÄy t|ƒWnJtk r|}z.|jdksj|j|krl|j|jdƒ rl‚WYdd}~XnXtjj|ƒ}|dk rÄt|dƒ rÄddl m }dj ||d�}|t |ƒƒyt jj|ƒ}WnJttttfk �r} z$d}||j |t| ƒj| ƒƒ| ‚WYdd} ~ XnX|dk�r6|d |ƒ‚|jdk �r¶|d k�sX|jd ƒ�r`|d ƒ‚y|d } t| |ƒS|k �r´}z$|tjk�r”‚|d||fƒ‚WYdd}~XnX|j} | dk�rÒ|d|ƒ‚y| j|ƒ} Wn2tk �r}z|t |ƒƒ|‚WYdd}~XnX| dk�r*|d|ƒ‚||| fS)NÚ.z#Relative module names not supportedÚ__path__r)Úwarnzš{mod_name!r} found in sys.modules after import of package {pkg_name!r}, but prior to execution of {mod_name!r}; this may result in unpredictable behaviour)rr0z:Error while finding module specification for {!r} ({}: {})zNo module named %sÚ__main__z .__main__z%Cannot use package as __main__ modulez%s; %r is a package and cannot zbe directly executedz0%r is a namespace package and cannot be executedzNo code object available for %sz3%s; %r is a package and cannot be directly executed)Ú startswithÚ rpartitionÚ __import__Ú ImportErrorÚnamerrÚgetÚhasattrÚwarningsr;ÚformatÚRuntimeWarningÚ importlibÚutilÚ find_specÚAttributeErrorÚ TypeErrorÚ ValueErrorÚtyperÚsubmodule_search_locationsÚendswithÚ_get_module_detailsr(Úget_code) rÚerrorr0Ú_ÚeZexistingr;ÚmsgÚspecZexZ pkg_main_namer(r-r r rrPfsZ      ,          rPc@s eZdZdS)Ú_ErrorN)rrrr r r rrW srWTcCs˜y0|s|dkr t|tƒ\}}}nttƒ\}}}Wn:tk rj}zdtj|f}tj|ƒWYdd}~XnXtjdj}|rˆ|jtj d<t ||dd|ƒS)Nr<z%s: %sr) rPrWÚ_get_main_module_detailsrÚ executableÚexitrr4r)r r3)rZ alter_argvr/r-ÚexcrUZ main_globalsr r rÚ_run_module_as_main§s   r\FcCs@t|ƒ\}}}|dkr|}|r,t||||ƒSt|i|||ƒSdS)N)rPr8r3)rr.Úrun_nameZ alter_sysr/r-r r rrÃs cCs~d}tj|}tj|=zVyt|ƒStk rh}z,|t|ƒkrV|d|tjdfƒ|‚‚WYdd}~XnXWd|tj|<XdS)Nr<zcan't find %r module in %rr)rrrPr@ÚstrÚpath)rRZ main_nameZ saved_mainr[r r rrXÒs  rXcCsTt|dƒ�}t|ƒ}WdQRX|dkrLt|dƒ�}t|jƒ|dƒ}WdQRX||fS)NÚrbr,)ÚopenrÚcompileÚread)r]r2Úfr-r r rÚ_get_code_from_fileås   rec Cs|dkr d}|jdƒd}t|ƒ}d}t|ƒjdkrFt|ƒjdkrFd}t|tdƒƒsX|rxt||ƒ\}}t|||||d�Stj j d|ƒzRt ƒ\}} }t |ƒ�4} t |ƒ� | jj} t|| ||| |ƒjƒSQRXWdQRXWdytj j|ƒWntk �rYnXXdS) Nz r9rFZimpZ NullImporterT)r0r1)r>rrMrrÚ isinstancerer8rr_ÚinsertrXrrr r4r3r5ÚremoverL) Z path_namer.r]r0ZimporterZis_NullImporterr-r2rr/r6r7r r rrïs0     "r<éz!No module specified for execution)Úfile)NNNNN)NNNNN)T)NNF)NN)rÚimportlib.machineryrGÚimportlib.utilrZpkgutilrrÚ__all__rrrr3r8r@rPÚ ExceptionrWr\rrXrerrÚlenr ÚprintÚstderrr r r rÚ s4  :    1