3 \) @sddlmZmZmZmZmZmZmZmZm Z yddlm Z Wne k rTdZ YnXddl m Z mZmZmZddlmZddlmZddlmZddlZddlZddlZddlZddlZddlZejded d dZd Zd Zd Z d Z!dZ"dZ#dZ$dZ%dZ&ddZ'ddZ(ddZ)d7ddZ*ddZ+ddZ,Gdd d Z-Gd!d"d"Z.Gd#d$d$e.ej/Z0d8d%d&Z1Gd'd(d(e.eZ2d9d)d*Z3d+d,Z4d-d.Z5d:d/d0Z6d1d2Z7d3d4Z8e rd;d5d6Z9ndZ9dS)<) lock_held acquire_lock release_lockget_frozen_objectis_frozen_package init_frozen is_builtin is_frozen_fix_co_filename)create_dynamicN)_ERR_MSG_exec_load_builtin_from_name)SourcelessFileLoader) machinery)utilzhthe imp module is deprecated in favour of importlib; see the module's documentation for alternative uses) stacklevel cCs tj|S)N)types ModuleType)namer /usr/lib64/python3.6/imp.py new_module0sr"cCstjS)N)r MAGIC_NUMBERr r r r! get_magic;sr$cCstjjS)N)sysimplementation cache_tagr r r r!get_tagCsr(c Cs*tjtjdtj||SQRXdS)Nignore)warningscatch_warnings simplefilterrcache_from_source)pathdebug_overrider r r!r-Hs  r-cCs tj|S)N)rsource_from_cache)r.r r r!r0[s r0cCs<ddtjD}ddtjD}ddtjD}|||S)NcSsg|]}|dtfqS)rb) C_EXTENSION).0sr r r! ksz get_suffixes..cSsg|]}|dtfqS)r) PY_SOURCE)r3r4r r r!r5lscSsg|]}|dtfqS)r1) PY_COMPILED)r3r4r r r!r5ms)rEXTENSION_SUFFIXESSOURCE_SUFFIXESBYTECODE_SUFFIXES) extensionssourcebytecoder r r! get_suffixesisr?c@seZdZddZddZdS) NullImportercCs2|dkrtdddntjj|r.td|ddS)Nzempty pathname)r.zexisting directory) ImportErrorosr.isdir)selfr.r r r!__init__zs zNullImporter.__init__cCsdS)Nr )rEfullnamer r r! find_moduleszNullImporter.find_moduleN)__name__ __module__ __qualname__rFrHr r r r!r@rsr@cs*eZdZdfdd ZfddZZS)_HackedGetDataNcstj||||_dS)N)superrFfile)rErGr.rN) __class__r r!rFsz_HackedGetData.__init__c sX|jrH||jkrH|jjs |j}nt|jd|_}| |jSQRXn tj|SdS)Nr6)rNr.closedopenreadrMget_data)rEr.rN)rOr r!rSsz_HackedGetData.get_data)N)rIrJrKrFrS __classcell__r r )rOr!rLsrLc@s eZdZdS)_LoadSourceCompatibilityN)rIrJrKr r r r!rUsrUcCs\t|||}tj|||d}|tjkr8t|tj|}nt|}tj|||_ |j |j _ |S)N)loader) rUrspec_from_file_locationr%modulesr rrSourceFileLoader __loader____spec__rV)rpathnamerNrVspecmoduler r r! load_sources   r_c@s eZdZdS)_LoadCompiledCompatibilityN)rIrJrKr r r r!r`sr`cCsZt|||}tj|||d}|tjkr8t|tj|}nt|}t|||_|j|j _ |S)N)rV) r`rrWr%rXr rrrZr[rV)rr\rNrVr]r^r r r! load_compileds    racCstjj|rhtjddtjdd}x>|D](}tjj|d|}tjj|r.|}Pq.Wtdj |t j ||gd}|t j krt|t j |St|SdS)NrFz{!r} is not a package)submodule_search_locations)rCr.rDrr:r;joinexists ValueErrorformatrrWr%rXr r)rr.r< extensionZ init_pathr]r r r! load_packages     rhc Cs|\}}}|r2|jd  s"d|kr2tdj|n|dkrZ|tthkrZdj|}t|n|tkrnt|||S|tkrt|||S|tkrtdk r|dkrt |d}t|||SQRXn t|||SnL|t krt ||S|t krt |S|tkrt|Sdj||}t||ddS) Nr6U+zinvalid file open mode {!r}z.file object required for import (type code {})r1z*Don't know how to import {} (type code {}))r)r6ri) startswithrerfr7r8r_rar2 load_dynamicrQ PKG_DIRECTORYrh C_BUILTIN init_builtin PY_FROZENrrB) rrNfilenameZdetailssuffixmodetype_msgZ opened_filer r r! load_modules.         rvc Cst|tstdjt|n$t|tdtfsBtdjt||dkrt|rbddddtffSt |rzddddt ffSt j }x|D]}t j j||}xHdtjdgD]6}d|}t j j||}t j j|rd|ddtffSqWx:tD].\}}}||} t j j|| }t j j|rPqWqPqWttj||dd} d|krjt|d } tj| jd} WdQRXt||| d } | ||||ffS) Nz'name' must be a str, not {}z%'path' must be None or a list, not {}rAz.pyrrF)rbr1)encoding) isinstancestr TypeErrorrftypelist RuntimeErrorrrnr rpr%r.rCrcrr;isfilermr?rBr rQtokenizedetect_encodingreadline) rr.entryZpackage_directoryrrZpackage_file_nameZ file_pathrsrt file_namerxrNr r r!rHs@       rHcCs tj|S)N) importlibreload)r^r r r!r3src Cs"yt|Stk rdSXdS)N)rrB)rr r r!ro>srocCs0ddl}|jj||}|jj|||d}t|S)Nr)rrVorigin)importlib.machineryrExtensionFileLoader ModuleSpecr)rr.rNrrVr]r r r!rlKs  rl)N)N)N)N)N):_imprrrrrrrr r r rBZimportlib._bootstrapr r rrZimportlib._bootstrap_externalrrrrrCr%rrr*warnDeprecationWarningZ SEARCH_ERRORr7r8r2Z PY_RESOURCErmrnrpZPY_CODERESOURCEZIMP_HOOKr"r$r(r-r0r?r@rLrYrUr_r`rarhrvrHrrorlr r r r! s\,          # 4