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 |¡ƒS©z{ Return the file system path to prevent `resources.path()` from creating a temporary copy. ©Ú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 r6!s €ÿzZipReader.open_resourcecCs| ¡ |¡}| ¡o| ¡Sr)r#rÚis_fileÚexists)rrÚtargetr r r Ú is_resource'szZipReader.is_resourcecCst |j|j¡Sr)Úzipfilerr0r.r"r r r r#-r zZipReader.files)r&r'r(rr6r@r#Ú __classcell__r r r;r r)s  r)c@sheZdZdZdd„Zdd„Zdd„Zdd „Zd d „Zd d „Z dd„Z e Z dd„Z e dd„ƒZdd„ZdS)ÚMultiplexedPathzÄ Given a series of Traversable objects, implement a merged version of the interface across all objects. Useful for namespace packages which may be multihomed at a single name. cGsHtttjt|ƒƒƒ|_|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 Ú_pathsr8ÚallÚNotADirectoryError)rÚpathsÚmessager r r r9sÿzMultiplexedPath.__init__ccsB�g}|jD]}| ¡D]}|j|vrq | |j¡|Vq qdSr)rJÚiterdirr3Úappend)rZvisitedrÚfiler r r rOAs€    üÿzMultiplexedPath.iterdircCót|›d�ƒ‚©Nz is not a file©r8r"r r r Ú read_bytesJózMultiplexedPath.read_bytescOrRrSrT©rr9Úkwargsr r r Ú read_textMrVzMultiplexedPath.read_textcCódS)NTr r"r r r rDPózMultiplexedPath.is_dircCrZ)NFr r"r r r r=Sr[zMultiplexedPath.is_filecCs.| ¡D] }|j|kr|Sq|jd|Sr4)rOr3rJ)rÚchildrQr r r rVs  ÿzMultiplexedPath.joinpathcOrRrSrTrWr r r Úopen`rVzMultiplexedPath.opencCs |jdjSr4)rJr3r"r r r r3cs zMultiplexedPath.namecCs"d dd„|jDƒ¡}d|›d�S)Nz, css�|] }d|›d�VqdS)ú'Nr rEr r r rGhs€z+MultiplexedPath.__repr__..zMultiplexedPath(ú))ÚjoinrJ)rrMr r r Ú__repr__gs zMultiplexedPath.__repr__N)r&r'r(Ú__doc__rrOrUrYrDr=rÚ __truediv__r]Úpropertyr3rar r r r rC1s   rCc@r)ÚNamespaceReadercCs&dt|ƒvr tdƒ‚tt|ƒŽ|_dS)NZ NamespacePathz Invalid path)rÚ ValueErrorrCrHr)rÚnamespace_pathr r r rms zNamespaceReader.__init__cCrrrrr r r rrrzNamespaceReader.resource_pathcCr rr!r"r r r r#zr$zNamespaceReader.filesNr%r r r r rels re) rrArÚrr ZTraversableResourcesrr)Z TraversablerCrer r r r Ús ;