File: //usr/lib/python3.5/__pycache__/runpy.cpython-35.pyc
Fa. @ s d Z d d l Z d d l Z d d l Z d d l Z d d l m Z m Z d d g Z Gd d d e
Z Gd d d e
Z d d d d d d
d Z
d d d d d d d
Z e d d Z Gd d d e Z d d d Z d d d d d Z e d d Z d d Z d d d d Z e d k re e j d k rge d d e j n e j d =e e j d d S) aZ runpy.py - locating and running Python code using the module namespace
Provides support for locating and running Python scripts using the Python
module namespace instead of the native filesystem.
This allows Python code to play nicely with non-filesystem based PEP 302
importers when locating support scripts as well as when importing modules.
N) read_codeget_importer
run_modulerun_pathc @ s: e Z d Z d Z d d Z d d Z d d Z d S) _TempModulezCTemporarily replace a module in sys.modules with an empty namespacec C s( | | _ t j | | _ g | _ d S)N)mod_nametypes
ModuleTypemodule
_saved_module)selfr r
/usr/lib/python3.5/runpy.py__init__ s z_TempModule.__init__c C sM | j } y | j j t j | Wn t k
r8 Yn X| j t j | <| S)N)r r appendsysmodulesKeyErrorr
)r r r
r
r __enter__ s
z_TempModule.__enter__c G s= | j r# | j d t j | j <n
t j | j =g | _ d S)Nr )r r r r )r argsr
r
r __exit__' s
z_TempModule.__exit__N)__name__
__module____qualname____doc__r r r r
r
r
r r s r c @ s4 e Z d Z d d Z d d Z d d Z d S)_ModifiedArgv0c C s | | _ t | _ | _ d S)N)valueobject_saved_value _sentinel)r r r
r
r r / s z_ModifiedArgv0.__init__c C sB | j | j k r t d t j d | _ | j t j d <d S)NzAlready preserving saved valuer )r r RuntimeErrorr argvr )r r
r
r r 3 s z_ModifiedArgv0.__enter__c G s | j | _ | j t j d <d S)Nr )r r r r r! )r r r
r
r r 9 s z_ModifiedArgv0.__exit__N)r r r r r r r
r
r
r r . s r c
C s | d k r | j | | d k r: d } | } d } n0 | j } | j } | j } | d k rj | j } | j d | d | d | d d d | d | d | t | | | S) z)Helper to run code in nominated namespaceNr __file__
__cached__r
__loader____package____spec__)updateloaderorigincachedparentexec)
codeZrun_globalsinit_globalsr mod_specpkg_namescript_namer( fnamer* r
r
r _run_code>