o ?Og@sxddlZddlZddlZddlmZddZGdddejZGdd d ejZGd d d ej Z Gd d d ejZ dS)N)abccCsttj|SN)iter collections OrderedDictfromkeys)itemsr 8/opt/alt/python310/lib64/python3.10/importlib/readers.pyremove_duplicatesr c@$eZdZddZddZddZdS) FileReadercCst|jj|_dSr)pathlibPathpathparent)selfloaderr r r __init__ szFileReader.__init__cC t|j|Srstrrjoinpathrresourcer r r resource_pathzFileReader.resource_pathcC|jSrrrr r r fileszFileReader.filesN__name__ __module__ __qualname__rrr"r r r r r s rcs4eZdZddZfddZddZddZZS) ZipReadercCs4|d\}}}|jdd|d|_|j|_dS)N.\/) rpartitionprefixreplacearchive)rrmodule_namer r r rs zZipReader.__init__c s6zt|WSty}zt|jdd}~wwNr)super open_resourceKeyErrorFileNotFoundErrorargs)rrexc __class__r r r5!s zZipReader.open_resourcecCs||}|o|Sr)r"ris_fileexists)rrtargetr r r is_resource'szZipReader.is_resourcecCst|j|jSr)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 ddZddZddZddZd d Zd d Zd dZ e Z ddZ e ddZ ddZdS)MultiplexedPathcGsHtttjt||_|jsd}t|tdd|jDs"tddS)Nz.MultiplexedPath must contain at least one pathcss|]}|VqdSr)is_dir.0rr r r >sz+MultiplexedPath.__init__..z)MultiplexedPath only supports directories) listmaprrr _pathsr7allNotADirectoryError)rpathsmessager r r r9szMultiplexedPath.__init__ccsBg}|jD]}|D]}|j|vrq ||j|Vq qdSr)rIiterdirr2append)rZvisitedrfiler r r rNAs    zMultiplexedPath.iterdircCt|dNz is not a filer7r!r r r read_bytesJzMultiplexedPath.read_bytescOrQrRrSrr8kwargsr r r read_textMrUzMultiplexedPath.read_textcCdS)NTr r!r r r rCPzMultiplexedPath.is_dircCrY)NFr r!r r r r<SrZzMultiplexedPath.is_filecCs.|D] }|j|kr|Sq|jd|Sr3)rNr2rI)rchildrPr r r rVs  zMultiplexedPath.joinpathcOrQrRrSrVr r r open`rUzMultiplexedPath.opencCs |jdjSr3)rIr2r!r r r r2cs zMultiplexedPath.namecCs"ddd|jD}d|dS)Nz, css|] }d|dVqdS)'Nr rDr r r rFhsz+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 tdtt||_dS)NZ NamespacePathz Invalid path)r ValueErrorrBrGr)rnamespace_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@rrr ZTraversableResourcesrr(Z TraversablerBrcr r r r s ;