o ?Og`@sj ddlmZddlmZddlZddlZddlZddlZddl Zddl Z ddl m Z ddl Z gdZeddZde_d d Zd d Zd-ddZd.ddZed/ddZd/ddZeejjeddZGdddZGdddZzddlZddlmZd/ddZeeeWn e yYnwdd Z!d/d!d"Z"d#d$Z#d%d&Z$d'd(Z%d)d*Z&da'd+d,Z(dS)0) namedtuple)singledispatchN) ModuleType) get_importeriter_importers get_loader find_loader walk_packages iter_modulesget_data ImpImporter ImpLoader read_code extend_path ModuleInforzmodule_finder name ispkgz.A namedtuple with minimal info about a module.cCsL z|j}W||Sty%||}|durYdStj||YSwN) find_specAttributeError find_module importlibutilspec_from_loader)findernamerloaderr./opt/alt/python310/lib64/python3.10/pkgutil.py _get_specs rcCs6ddl}|d}|tjjkrdS|d||S)Nr )marshalreadrr MAGIC_NUMBERload)streamr magicrrrr(s     rc #s ifddt||D]V}|V|jrczt|jWn%ty.|dur,||jYq tyA|dur>||jnYq wttj|jddpMg}fdd|D}t ||jd|EdHq dS)NcSs||vrdSd||<dS)NTr)pmrrrseenRs zwalk_packages..seen__path__csg|]}|s|qSrr).0r'r)rr isz!walk_packages...) r ispkg __import__r ImportError Exceptiongetattrsysmodulesr )pathprefixonerrorinforr,rr 5s.     r ccst |dur t}nt|trtdtt|}i}|D]}t||D]\}}||vr6d||<t|||Vq#qdS)Nz9path must be None or list of paths to look for modules in)r isinstancestr ValueErrormapriter_importer_modulesr)r6r7Z importersyieldedirr/rrrr ns    r cCst|dsgS||S)Nr )hasattrr )importerr7rrrr?s  r?c c"|jdus tj|jsdSi}ddl}zt|j}Wn ty(g}Ynw||D]_}||}|dks>||vr?q/tj|j|}d}|s}tj|r}d|vr}|}zt|} Wn tyig} Ynw| D]}||} | dkr{d}nqlq/|rd|vrd||<|||fVq/dSNr__init__Fr.Tr: r6osisdirinspectlistdirOSErrorsort getmodulenamejoin) rCr7r@rJ filenamesfnmodnamer6r/ dircontentssubnamerrr_iter_file_finder_modulesH     rUcCsDttdttdaWddS1swYdS)Nignoreimp)warningscatch_warnings simplefilterDeprecationWarningr import_modulerXrrrr _import_imps   "r^c@s,eZdZ d ddZd ddZd ddZdS) r NcCstdtt||_dSNz[This emulation is deprecated and slated for removal in Python 3.12; use 'importlib' instead)rYwarnr\r^r6)selfr6rrrrFs  zImpImporter.__init__cCs~|dd}||kr|jdurdS|jdurd}ntj|jg}z t||\}}}Wn ty7YdSwt||||S)Nr.)splitr6rHrealpathrXrr1r )rafullnamer6rTfilefilenameetcrrrrs  zImpImporter.find_moduler&c crDrErG) rar7r@rJrPrQrRr6r/rSrTrrrr rVzImpImporter.iter_modulesrr&)__name__ __module__ __qualname__rFrr rrrrr s  r c@sleZdZ dZZddZddZddZdd Zd d Z d d Z dddZ dddZ ddZ dddZdS)r NcCs.tdtt||_||_||_||_dSr_)rYr`r\r^rfrgrerh)rarerfrgrhrrrrFs zImpLoader.__init__cCsJ|zt||j|j|j}W|jr|j|S|jr$|jwwr)_reopenrX load_modulerfrgrhclose)raremodrrrrns  zImpLoader.load_modulecCs6t|d }|WdS1swYdS)Nrb)openr!)rapathnamerfrrrr 's $zImpLoader.get_datacCsb|jr+|jjr-|jd}|tjkrt|jd|_dS|tjtjfvr/t|jd|_dSdSdSdS)Nrrq) rfclosedrhrX PY_SOURCErrrg PY_COMPILED C_EXTENSION)ramod_typerrrrm+s  zImpLoader._reopencCs2|dur |j}|S||jkrtd|j|f|S)Nz,Loader for module %s cannot handle module %s)rer1rarerrr _fix_name3s zImpLoader._fix_namecCs||}|jdtjkSNrt)r|rhrX PKG_DIRECTORYr{rrr is_package;s zImpLoader.is_packagecCs||}|jdurO|jd}|tjkr$||}t||jd|_|jS|tjkrC| zt |j |_W|j |jS|j w|tj krO||_|jS)Nrtexec)r|coderhrXrw get_sourcecompilergrxrmrrfror~ _get_delegateget_code)rarerzsourcerrrr?s"        zImpLoader.get_codecCs||}|jdurn|jd}|tjkr.|z|j|_W|j|jS|jw|tj krbt j |j ddr_t|j ddd}||_Wd|jS1sZwY|jS|tjkrn||_|jS)Nrtrbru)r|rrhrXrwrmrfr!rorxrHr6existsrgrrr~rr)rarerzfrrrrPs*         zImpLoader.get_sourcecCst|j}t|d}|jS)NrF)r rgrr)rarspecrrrrbs  zImpLoader._get_delegatecCsH||}|jd}|tjkr|S|tjtjtjfvr"|j SdSr}) r|rhrXr~r get_filenamerwrxryrg)rarerzrrrrgs    zImpLoader.get_filenamer)rjrkrlrrrFrnr rmr|rrrrrrrrrr s    r ) zipimporterc csttj|j}|j}t|}i}ddl}|D]\}||s q||dt j }t|dkrL|ddrL|d|vrLd||d<||ddfVt|dkrSq| |d}|dkr_q|rtd|vrt||vrtd||<||dfVqdS) Nrrtr:z __init__.pyTrFr.F) sorted zipimport_zip_directory_cachearchiver7lenrJ startswithrcrHseprN) rCr7Zdirlist_prefixZplenr@rJrQrRrrriter_zipimport_modulesus0    rc Csj ztj|}W|Sty4tjD]}z||}tj||WY|Sty.Yqwd}Y|Swr)r4path_importer_cacheKeyError path_hooks setdefaultr1)Z path_itemrC path_hookrrrrs"   rccs |drd|}t|d|vr-|dd}t|}t|dd}|dur,dSn tjEdHtj }|D]}t |Vq8dS)Nr.'Relative module name {!r} not supportedrr*) rformatr1 rpartitionrr]r3r4 meta_pathr6r)remsgZpkg_namepkgr6itemrrrrs"     rcCsv |tjvrtj|}|durdSt|tr5|}t|dd}|dur$|St|dddur.dS|j}t|S|}t|S)N __loader____spec__)r4r5r;rr3rjr)Zmodule_or_namemodulerrerrrrs     rc Cs~ |drd|}t|ztj|}Wnttttfy5}zd}t||t |||d}~ww|dur=|j SdS)Nr.rz,Error while finding loader for {!r} ({}: {})) rrr1rrrr TypeErrorr=typer)rerrZexrrrrs  rc Cs t|ts|S|d}|dd}|d\}}}|r2ztj|j}Wnttfy1|YSwtj}|D]}t|t s?q7t |}|durwg} t |dr]| |} | dur\| j p[g} n t |dri||\}} | D] } | |vrv|| qktj||} tj| rzt| } Wnty}ztjd| |fWYd}~q7d}~ww| | D]}|d}|r|drq||qWdn1swYq7|S)Nz.pkgr.rrzCan't open %s: %s  #)r;listrr4r5r*rrr6r<rrBrsubmodule_search_locationsrappendrHrOisfilerrrLstderrwriterstripr)r6rZ sname_pkgZparent_package_Z final_nameZ search_pathdirrportionsrZportionZpkgfilerrlinerrrrsd            rcCs tj|}|dur dS|j}|dust|dsdStj|p&tj |}|dus0t|ds2dS| d}| dt j |jt j j|}||S)Nr __file__/r)rrrrrBr4r5get _bootstrap_loadrcinsertrHr6dirnamerrOr )packageZresourcerrrppartsZ resource_namerrrr Ws       r c Cs tdurddl}d}|d|d|d|jat|}|s'td||}|drFt |d}|d }|rC| d ng}n6| d }| d}t |}|r||d}|d |} zt | }| d| }Wn t yyYnw|sW|} |D]}t | |} q| S) Nrz(?!\d)(\w+)(\.(?!\d)(\w+))*z ^(?Pz)(?P:(?Pz)?)?$zinvalid format: Zclnrobjr.) _NAME_PATTERNrerUNICODEmatchr= groupdictrrr]rcpopr1r3) rrZ dotted_wordsr(ZgdrprrRr'sresultrrr resolve_namesF             r)Nr&N)Nr&ri)) collectionsr functoolsrZ simplegenericrimportlib.utilimportlib.machineryrHZos.pathr4typesrrY__all__r__doc__rrr r r?rUregister machinery FileFinderr^r r rrrr1rrrrrr rrrrrrsV     9  (Kd    ^+