]) @sddlmZmZmZmZmZmZmZmZm Z yddlm Z Wne k rndZ YnXddl m Z mZmZmZddlmZddlmZddlmZddlZddlZddlZddlZddlZddlZejded d dZd Zd Zd Z d Z!dZ"dZ#dZ$dZ%dZ&ddZ'ddZ(ddZ)dddZ*ddZ+ddZ,Gdd d Z-Gd!d"d"Z.Gd#d$d$e.ej/Z0dd%d&Z1Gd'd(d(e.eZ2dd)d*Z3d+d,Z4d-d.Z5dd/d0Z6d1d2Z7d3d4Z8e rvdd5d6Z9ndZ9dS)7) 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 (/opt/alt/python35/lib64/python3.5/imp.py new_module0sr"cCstjS)N)r MAGIC_NUMBERr r r r! get_magic;sr$cCs tjjS)N)sysimplementation cache_tagr r r r!get_tagCsr(c Cs5tj"tjdtj||SWdQRXdS)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 r0cCsNddtjD}ddtjD}ddtjD}|||S)NcSsg|]}|dtfqS)rb) C_EXTENSION).0sr r r! ks z get_suffixes..cSsg|]}|dtfqS)r) PY_SOURCE)r3r4r r r!r5ls cSsg|]}|dtfqS)r1) PY_COMPILED)r3r4r r r!r5ms )rEXTENSION_SUFFIXESSOURCE_SUFFIXESBYTECODE_SUFFIXES) extensionssourcebytecoder r r! get_suffixesisr?c@s(eZdZddZddZdS) NullImportercCsI|dkr!tdddn$tjj|rEtdd|dS)Nzempty pathnamer.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@rs  r@cs7eZdZdfddZfddZS)_HackedGetDataNcs tj||||_dS)N)superrFfile)rErGr.rN) __class__r r!rFsz_HackedGetData.__init__c sx|jrd||jkrd|jjs0|j}nt|jd|_}||jSWdQRXntj|SdS)Nr6)rNr.closedopenreadrMget_data)rEr.rN)rOr r!rSs  z_HackedGetData.get_data)rIrJrKrFrSr r )rOr!rLs rLc@seZdZdS)_LoadSourceCompatibilityN)rIrJrKr r r r!rTs rTcCst|||}tj||d|}|tjkrRt|tj|}n t|}tj|||_ |j |j _ |S)Nloader) rTrspec_from_file_locationr%modulesr rrSourceFileLoader __loader____spec__rU)rpathnamerNrUspecmoduler r r! load_sources r^c@seZdZdS)_LoadCompiledCompatibilityN)rIrJrKr r r r!r_s r_cCst|||}tj||d|}|tjkrRt|tj|}n t|}t|||_|j|j _ |S)NrU) r_rrVr%rWr rrrYrZrU)rr[rNrUr\r]r r r! load_compileds r`cCstjj|rtjddtjdd}xU|D]8}tjj|d|}tjj|r=|}Pq=Wtdj |t j ||dg}|t j krt|t j |St|SdS)NrFz{!r} is not a packagesubmodule_search_locations)rCr.rDrr:r;joinexists ValueErrorformatrrVr%rWr r)rr.r< extensionZ init_pathr\r r r! load_packages  rgc Cs|\}}}|rI|jd  s1d|krItdj|n@|dkr|tthkrdj|}t|n|tkrt|||S|tkrt|||S|tkr tdk r |dkr t |d}t|||SWdQRXqt|||Sni|t kr9t ||S|t krOt |S|tkret|Sdj||}t|d|dS) Nr6U+zinvalid file open mode {!r}z.file object required for import (type code {})r1z*Don't know how to import {} (type code {})r)r6rh) startswithrdrer7r8r^r`r2 load_dynamicrQ PKG_DIRECTORYrg C_BUILTIN init_builtin PY_FROZENrrB) rrNfilenameZdetailssuffixmodetype_msgZ opened_filer r r! load_modules."         ruc Cs!t|ts-tdjt|n6t|tdtfsctdjt||dkrt|rddddtffSt |rddddt ffSt j }x|D]}t j j||}xbdtjdgD]M}d|}t j j||}t j j|rd|ddtffSqWxOtD]A\}}}||} t j j|| }t j j|rMPqMWqPqWttj|d|d} d|krt|d } tj| jd} WdQRXt||d | } | ||||ffS) Nz'name' must be a str, not {}z%'path' must be None or a list, not {}rAz.pyrrFrbr1encoding) isinstancestr TypeErrorretypelist RuntimeErrorrrmr ror%r.rCrbrr;isfilerlr?rBr rQtokenizedetect_encodingreadline) rr.entryZpackage_directoryrqZpackage_file_nameZ file_pathrrrs file_namerwrNr r r!rHs@          rHcCs tj|S)N) importlibreload)r]r r r!r3src Cs+yt|SWntk r&dSYnXdS)N)rrB)rr r r!rn>s rncCsLddl}|jj||}|jjd|d|d|}t|S)NrrrUorigin)Zimportlib.machineryrExtensionFileLoader ModuleSpecr)rr.rNrrUr\r r r!rkKs   rk):_imprrrrrrrr r r rBZimportlib._bootstrapr r rrZimportlib._bootstrap_externalrrrrrCr%rrr*warnPendingDeprecationWarningZ SEARCH_ERRORr7r8r2Z PY_RESOURCErlrmroZPY_CODERESOURCEZIMP_HOOKr"r$r(r-r0r?r@rLrXrTr^r_r`rgrurHrrnrkr r r r! s\@  "              #4