=Og ddlZddlZddlZddlZddlmZddlmZdZGddej Z Gdd ej Z Gd d ej Z Gd d ej ZdS)N)abc)unique_everseencZttj|SN)iter collections OrderedDictfromkeys)itemss B/opt/alt/python311/lib64/python3.11/importlib/resources/readers.pyremove_duplicatesr s!  '0077 8 88c eZdZdZdZdZdS) FileReadercLtj|jj|_dSr)pathlibPathpathparent)selfloaders r __init__zFileReader.__init__sL--4 rcPt|j|Sz{ Return the file system path to prevent `resources.path()` from creating a temporary copy. strrjoinpathrresources r resource_pathzFileReader.resource_path" 49%%h//000rc|jSrrrs r fileszFileReader.files yrN__name__ __module__ __qualname__rr!r&rr rrsA555111rrc0eZdZdZfdZdZdZxZS) ZipReaderc|d\}}}|jdd|zdz|_|j|_dS)N.\/) rpartitionprefixreplacearchive)rrmodule_names r rzZipReader.__init__ sK&&s++ 1dm++D#66=C ~ rc t|S#t$r}t|jdd}~wwxYwNr)super open_resourceKeyErrorFileNotFoundErrorargs)rr exc __class__s r r=zZipReader.open_resource%sS 177((22 2 1 1 1#CHQK00 0 1s $ A AA c||}|o|Sr)r&ris_fileexists)rrtargets r is_resourcezZipReader.is_resource+s<&&t,,~~3FMMOO3rc@tj|j|jSr)zipfilerr6r4r%s r r&zZipReader.files1s|DL$+666r)r)r*r+rr=rGr& __classcell__)rBs@r r.r.se&&& 11111 444 7777777rr.cbeZdZdZdZdZdZdZdZdZ dZ e Z d Z e d Zd Zd S) 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. ctttjt ||_|jsd}t |td|jDstddS)Nz.MultiplexedPath must contain at least one pathc3>K|]}|VdSr)is_dir.0rs r z+MultiplexedPath.__init__..Bs*99T4;;==999999rz)MultiplexedPath only supports directories) listmaprrr_pathsr?allNotADirectoryError)rpathsmessages r rzMultiplexedPath.__init__=s3w|->u-E-EFFGG { -FG#G,, ,99T[99999 R$%PQQ Q R Rrcjd|jD}t|tjdS)Nc3HK|]}|D]}|VdSr)iterdir)rQrfiles r rRz*MultiplexedPath.iterdir..Fs7II$$,,..II$IIIIIIIrr9)key)rUroperator attrgetter)rr&s r r\zMultiplexedPath.iterdirEs5II$+IIIu(*=f*E*EFFFFrc&t|dNz is not a filer?r%s r read_byteszMultiplexedPath.read_bytesI4 7 7 7888rc&t|drbrcrr@kwargss r read_textzMultiplexedPath.read_textLrercdS)NTr,r%s r rOzMultiplexedPath.is_dirOstrcdS)NFr,r%s r rDzMultiplexedPath.is_fileRsurcn|D]}|j|kr|cS|jd|z Sr;)r\r9rU)rchildr]s r rzMultiplexedPath.joinpathUsGLLNN  DyE!! "{1~%%rc&t|drbrcrgs r openzMultiplexedPath.open_rerc&|jdjSr;)rUr9r%s r r9zMultiplexedPath.namebs{1~""rcVdd|jD}d|dS)Nz, c3"K|] }d|dV dS)'Nr,rPs r rRz+MultiplexedPath.__repr__..gs*>>$+d+++>>>>>>rzMultiplexedPath())joinrU)rrXs r __repr__zMultiplexedPath.__repr__fs5 >>$+>>>>>*%****rN)r)r*r+__doc__rr\rdrirOrDr __truediv__ropropertyr9rvr,rr rLrL5sRRRGGG999999&&&K999##X#+++++rrLc eZdZdZdZdZdS)NamespaceReaderc|dt|vrtdtt||_dS)N NamespacePathz Invalid path)r ValueErrorrLrSr)rnamespace_paths r rzNamespaceReader.__init__ls; #n"5"5 5 5^,, ,#T.%9%9: rcPt|j|Srrrs r r!zNamespaceReader.resource_pathqr"rc|jSrr$r%s r r&zNamespaceReader.filesyr'rNr(r,rr r{r{ksA;;; 111rr{)r r_rrIr _itertoolsrrTraversableResourcesrr. TraversablerLr{r,rr rs''''''999     )    77777(777,3+3+3+3+3+co3+3+3+lc.r