o 0¦iã@sxddlZddlZddlZddlmZdd„ZGdd„dejƒZGdd „d ejƒZGd d „d ej ƒZ Gd d „d ejƒZ dS)éNé)ÚabccCsttj |¡ƒS©N)ÚiterÚ collectionsÚ OrderedDictÚfromkeys)Úitems©r ú8/opt/alt/python310/lib64/python3.10/importlib/readers.pyÚremove_duplicatesór c@ó$eZdZdd„Zdd„Zdd„ZdS)Ú FileReadercCst |j¡j|_dSr)ÚpathlibÚPathÚpathÚparent)ÚselfÚloaderr r r Ú__init__ szFileReader.__init__cCó t|j |¡ƒSr©ÚstrrÚjoinpath©rÚresourcer r r Ú resource_pathózFileReader.resource_pathcCó|jSr©r©rr r r ÚfilesózFileReader.filesN©Ú__name__Ú __module__Ú __qualname__rrr"r r r r r s rcs4eZdZdd„Z‡fdd„Zdd„Zdd„Z‡ZS) Ú ZipReadercCs4| d¡\}}}|j dd¡|d|_|j|_dS)NÚ.ú\ú/)Ú rpartitionÚprefixÚreplaceÚarchive)rrÚmoduleÚ_Únamer r r rs zZipReader.__init__c s6ztƒ |¡WSty}zt|jdƒ‚d}~ww©Nr)ÚsuperÚ open_resourceÚKeyErrorÚFileNotFoundErrorÚargs)rrÚexc©Ú __class__r r r5!s €ÿzZipReader.open_resourcecCs| ¡ |¡}| ¡o| ¡Sr)r"rÚis_fileÚexists)rrÚtargetr r r Ú is_resource'szZipReader.is_resourcecCst |j|j¡Sr)Úzipfilerr/r-r!r r r r"-r zZipReader.files)r%r&r'rr5r?r"Ú __classcell__r r r:r r(s  r(c@sfeZdZ dd„Zdd„Zdd„Zdd„Zd d „Zd d „Zd d„Z e Z dd„Z e dd„ƒZ dd„ZdS)ÚMultiplexedPathcGsHtttjt|ƒƒƒ|_|jsd}t|ƒ‚tdd„|jDƒƒs"tdƒ‚dS)Nz.MultiplexedPath must contain at least one pathcss�|]}| ¡VqdSr)Úis_dir©Ú.0rr r r Ú >s€z+MultiplexedPath.__init__..z)MultiplexedPath only supports directories) ÚlistÚmaprrr Ú_pathsr7ÚallÚNotADirectoryError)rÚpathsÚmessager r r r9sÿzMultiplexedPath.__init__ccsB�g}|jD]}| ¡D]}|j|vrq | |j¡|Vq qdSr)rIÚiterdirr2Úappend)rZvisitedrÚfiler r r rNAs€    üÿzMultiplexedPath.iterdircCót|›d�ƒ‚©Nz is not a file©r7r!r r r Ú read_bytesJózMultiplexedPath.read_bytescOrQrRrS©rr8Úkwargsr r r Ú read_textMrUzMultiplexedPath.read_textcCódS)NTr r!r r r rCPózMultiplexedPath.is_dircCrY)NFr r!r r r r<SrZzMultiplexedPath.is_filecCs.| ¡D] }|j|kr|Sq|jd|Sr3)rNr2rI)rÚchildrPr r r rVs  ÿzMultiplexedPath.joinpathcOrQrRrSrVr r r Úopen`rUzMultiplexedPath.opencCs |jdjSr3)rIr2r!r r r r2cs zMultiplexedPath.namecCs"d dd„|jDƒ¡}d|›d�S)Nz, css�|] }d|›d�VqdS)ú'Nr rDr r r rFhs€z+MultiplexedPath.__repr__..zMultiplexedPath(ú))ÚjoinrI)rrLr r r Ú__repr__gs zMultiplexedPath.__repr__N)r%r&r'rrNrTrXrCr<rÚ __truediv__r\Úpropertyr2r`r r r r rB1s   rBc@r)ÚNamespaceReadercCs&dt|ƒvr tdƒ‚tt|ƒŽ|_dS)NZ NamespacePathz Invalid path)rÚ ValueErrorrBrGr)rÚnamespace_pathr r r rms zNamespaceReader.__init__cCrrrrr r r rrrzNamespaceReader.resource_pathcCrrr r!r r r r"zr#zNamespaceReader.filesNr$r r r r rcls rc) rr@rÚrr ZTraversableResourcesrr(Z TraversablerBrcr r r r Ús ;