a DOg^@sddlmZddlmZddlZddlZddlZddlZddl Zddl Z ddl Z ddl m Z ddlZgdZeddZde_d d Zd d Zd1ddZd2ddZed3ddZd4ddZeejjeddZGdddZGdddZz.ddlZddlmZd5ddZ eee Wne!y.Yn0dd Z"d6d!d"Z#d#d$Z$d%d&Z%d'd(Z&d)d*Z'd+Z(e )d,e(d-e(d.e j*Z+[(d/d0Z,dS)7) 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.cCsPz |j}Wn8tyB||}|dur0YdStj||YS0||SdSN) find_specAttributeError find_module importlibutilspec_from_loader)findernamerloaderr,/opt/alt/python39/lib64/python3.9/pkgutil.py _get_specs   rcCs6ddl}|d}|tjjkr"dS|d||S)Nr )marshalreadrr MAGIC_NUMBERload)streamr magicrrrr)s    rc #sifddt||D]}|V|jrzt|jWnJtyX|durT||jYqty~|durx||jnYq0ttj|jddpg}fdd|D}t ||jd|EdHqdS)NcSs||vr dSd||<dS)NTr)pmrrrseenSszwalk_packages..seen__path__csg|]}|s|qSrr).0r'r)rr jz!walk_packages...) r ispkg __import__r ImportError Exceptiongetattrsysmodulesr )pathprefixonerrorinforr,rr 6s     r ccsr|durt}nt|tr$tdn tt|}i}|D]6}t||D]&\}}||vrDd||<t|||VqDq6dS)Nz9path must be None or list of paths to look for modules in)r isinstancestr ValueErrormapriter_importer_modulesr)r7r8Z importersyieldedirr0rrrr os    r cCst|dsgS||S)Nr )hasattrr )importerr8rrrr@s r@c cs |jdustj|jsdSi}ddl}zt|j}WntyNg}Yn0||D]}||}|dks\||vr|q\tj|j|}d}|stj|rd|vr|}zt|} Wntyg} Yn0| D]}||} | dkrd}qqq\|r\d|vr\d||<|||fVq\dSNr__init__Fr/Tr; r7osisdirinspectlistdirOSErrorsort getmodulenamejoin) rDr8rArJ filenamesfnmodnamer7r0 dircontentssubnamerrr_iter_file_finder_moduless<       rUcCsBt&tdttdaWdn1s40YdS)Nignoreimp)warningscatch_warnings simplefilterDeprecationWarningr import_modulerWrrrr _import_imps  r]c@s*eZdZd ddZd ddZd ddZdS) r NcCstdtt||_dSNz5This emulation is deprecated, use 'importlib' instead)rXwarnr[r]r7)selfr7rrrrFs zImpImporter.__init__cCs~|dd}||kr$|jdur$dS|jdur4d}ntj|jg}zt||\}}}WntynYdS0t||||S)Nr/)splitr7rHrealpathrWrr2r )r`fullnamer7rTfilefilenameetcrrrrs  zImpImporter.find_moduler&c cs |jdustj|jsdSi}ddl}zt|j}WntyNg}Yn0||D]}||}|dks\||vr|q\tj|j|}d}|stj|rd|vr|}zt|} Wntyg} Yn0| D]}||} | dkrd}qqq\|r\d|vr\d||<|||fVq\dSrErG) r`r8rArJrPrQrRr7r0rSrTrrrr s<       zImpImporter.iter_modules)N)N)r&)__name__ __module__ __qualname__rFrr rrrrr s  r c@sjeZdZdZZddZddZddZdd Zd d Z d d Z dddZ dddZ ddZ dddZdS)r NcCs.tdtt||_||_||_||_dSr^)rXr_r[r]rerfrdrg)r`rdrerfrgrrrrFszImpLoader.__init__cCsJ|z*t||j|j|j}W|jrF|jn|jrD|j0|Sr)_reopenrW load_modulererfrgclose)r`rdmodrrrrls  zImpLoader.load_modulecCs6t|d}|WdS1s(0YdS)Nrb)openr!)r`pathnamererrrr &s zImpLoader.get_datacCsT|jrP|jjrP|jd}|tjkr2t|jd|_n|tjtjfvrPt|jd|_dS)Nrro) reclosedrgrW PY_SOURCErprf PY_COMPILED C_EXTENSION)r`mod_typerrrrk*s   zImpLoader._reopencCs0|dur|j}n||jkr,td|j|f|S)Nz,Loader for module %s cannot handle module %s)rdr2r`rdrrr _fix_name2s zImpLoader._fix_namecCs||}|jdtjkSNrr)rzrgrW PKG_DIRECTORYryrrr is_package:s zImpLoader.is_packagecCs||}|jdur|jd}|tjkrD||}t||jd|_nT|tjkr| zt |j |_W|j q|j 0n|tj kr||_|jS)Nrrexec)rzcodergrWru get_sourcecompilerfrvrkrrermr| _get_delegateget_code)r`rdrxsourcerrrr>s       zImpLoader.get_codecCs||}|jdur|jd}|tjkrZ|z|j|_W|jq|j0nx|tj krt j |j ddrt|j ddd}||_Wdq1s0Yn|tjkr||_|jS)Nrrrars)rzrrgrWrurkrer!rmrvrHr7existsrfrpr|rr)r`rdrxfrrrrOs     * zImpLoader.get_sourcecCst|j}t|d}|jS)NrF)r rfrr)r`rspecrrrras  zImpLoader._get_delegatecCsH||}|jd}|tjkr*|S|tjtjtjfvrD|j SdSr{) rzrgrWr|r get_filenamerurvrwrf)r`rdrxrrrrfs    zImpLoader.get_filename)N)N)N)rhrirjrrrFrlr rkrzr}rrrrrrrrr s    r ) zipimporterc csttj|j}|j}t|}i}ddl}|D]}||s>q.||dt j }t|dkr|ddr|d|vrd||d<||ddfVt|dkrq.| |d}|dkrq.|r.d|vr.||vr.d||<||dfVq.dS) Nrrrr;z __init__.pyTrFr/F) sorted zipimport_zip_directory_cachearchiver8lenrJ startswithrbrHseprN) rDr8Zdirlist_prefixZplenrArJrQrRrrriter_zipimport_modulests*    rc Cstt|}ztj|}WnVtyntjD]8}z ||}tj||WqjWq,tybYq,0q,d}Yn0|Sr)rHfsdecoder5path_importer_cacheKeyError path_hooks setdefaultr2)Z path_itemrD path_hookrrrrs      rccs|drd|}t|d|vrV|dd}t|}t|dd}|durhdSntjEdHtj }|D]}t |VqldS)Nr/'Relative module name {!r} not supportedrr*) rformatr2 rpartitionrr\r4r5 meta_pathr7r)rdmsgZpkg_namepkgr7itemrrrrs     rcCsn|tjvr tj|}|dur dSt|trb|}t|dd}|durF|St|dddurZdS|j}n|}t|S)N __loader____spec__)r5r6r<rr4rhr)Zmodule_or_namemodulerrdrrrrs    rc Cs|drd|}t|ztj|}WnHttttfyt}z(d}t||t |||WYd}~n d}~00|dur|j SdS)Nr/rz,Error while finding loader for {!r} ({}: {})) rrr2rrrr TypeErrorr>typer)rdrrZexrrrrs  .rc Cst|ts|S|d}|dd}|d\}}}|rdztj|j}Wqjttfy`|YS0ntj}|D]>}t|t sqnt |}|durg} t |dr| |} | dur| j pg} nt |dr||\}} | D]} | |vr|| qtj||} tj| rnz t| } Wn:tyP}z tjd| |fWYd}~qnd}~00| F| D]0}|d}|r\|drq\||q\Wdqn1s0Yqn|S)Nz.pkgr/rrzCan't open %s: %s  #)r<listrr5r6r*rrr7r=rrCrsubmodule_search_locationsrappendrHrOisfilerprLstderrwriterstripr)r7rZ sname_pkgZparent_package_Z final_nameZ search_pathdirrportionsrZportionZpkgfilerrlinerrrrsR!             0rcCstj|}|durdS|j}|dus0t|ds4dStj|pJtj |}|dus^t|dsbdS| d}| dt j |jt j j|}||S)Nr __file__/r)rrrrrCr5r6get _bootstrap_loadrbinsertrHr7dirnamerrOr )packageresourcerrrnpartsZ resource_namerrrr Ws     r z(?!\d)(\w+)(\.(?!\d)(\w+))*z ^(?Pz)(?P:(?Pz)?)?$c Cst|}|std||}|drZt|d}|d}|rT|dng}nn|d}|d}t|}|r|d}|d|}zt|}|d|}Wqxt yYqYqx0qx|}|D]}t ||}q|S)Nzinvalid format: Zclnrobjr/r) _NAME_PATTERNmatchr> groupdictrrr\rbpopr2r4) rr(ZgdrnrrRr'sresultrrr resolve_names0           r)Nr&N)Nr&)r&)r&)r&)r&)- collectionsr functoolsrZ simplegenericrimportlib.utilimportlib.machineryrHZos.pathrer5typesrrX__all__r__doc__rrr r r@rUregister machinery FileFinderr]r r rrrr2rrrrrr Z _DOTTED_WORDSrUrrrrrrsV     9   (Jc   ^+