a DOg)@sddlZddlmZddlmZddlmZddlmZmZddl m Z ddl m Z dd l mZmZdd lmZdd lmZdd lmZmZmZmZdd lmZddlmZmZgdZeeefZeeej fZ!edddZ"edddZ#edddZ$eeej%dddZ&ddZ'ee!edddZ(d4ee!eeed!d"d#Z)ee!e*dd$d%Z+d5ee!eeed!d&d'Z,eej-dd(d)Z.ee!d*dd+d,Z/ed-d.Z0eee1d/d0d1Z2eeedd2d3Z3dS)6N)abc)_common)as_file)contextmanagersuppress) import_module)ResourceLoader)BytesIO TextIOWrapper)Path) ModuleType)ContextManagerIterableOptionalUnion)cast)BinaryIOTextIO) PackageResourcercontentsfiles is_resource open_binary open_textpath read_binary read_text)returncCst|dr|St|S)N__spec__)hasattrrnamer$8/opt/alt/python39/lib64/python3.9/importlib/resources.py_resolve$s r&cCs&t|}|jjdur"td||S)Nz{!r} is not a package)r&r submodule_search_locations TypeErrorformat)packagemoduler$r$r% _get_package+s r,cCs&tj|\}}|r"td||S)Nz{!r} must be only a file name)osrsplit ValueErrorr))rparent file_namer$r$r%_normalize_path7sr2)r*rcCs,|j}t|jdr(ttj|j|jSdS)Nget_resource_reader)r r!loaderr resources_abcResourceReaderr3r#)r*specr$r$r%_get_resource_readerBs   r8cCs&|jjdus|jjs"td|dS)NzPackage has no location )r origin has_locationFileNotFoundErrorr*r$r$r%_check_locationPsr=)r*resourcerc Cst|}t|}t|}|dur*||Stj|jjp:d}tj |}tj ||}zt |ddWSt yt t|jj}d}t|jjdrtt ||}Wdn1s0Y|dur|jj}d||} t| t|YS0dS)Nznon-existent filerb)modeget_dataz{!r} resource not found in {!r})r2r,r8 open_resourcer-rabspathr r9dirnamejoinopenOSErrorrr r4r!rrAr#r)r;r ) r*r>readerZabsolute_package_path package_path full_pathr4dataZ package_namemessager$r$r%rUs2     (rutf-8strict)r*r>encodingerrorsrcCstt||||dS)N)rOrP)r r)r*r>rOrPr$r$r%rss rcCs6t||}|WdS1s(0YdSN)rread)r*r>fpr$r$r%r|s rcCs:t||||}|WdS1s,0YdSrQ)rrR)r*r>rOrPrSr$r$r%rs rcCstt|SrQ)r from_packager,r<r$r$r%rsrzContextManager[Path]cCs2tt|}|rt||Stt|t|SrQ)r8r,_path_from_readerrrrjoinpathr2)r*r>rHr$r$r%rs  rccst|}tt"t||VWddS1s80Y||}tj|j|d}|VWdn1sx0YdS)N)suffix) r2rr;r resource_pathrBrZ _tempfilerR)rHr>Z norm_resourceZ opener_readerresr$r$r%rUs   rU)r*r#rcCsTt|}t|t|}|dur*||Stt|}||vrBdSt||S)NF) r,r2r8rsetrrrTis_file)r*r#rHZpackage_contentsr$r$r%rs  rcCsdt|}t|}|dur |S|jjdup6|jjdk}|sD|jjsHdStddt| DS)N namespacer$css|] }|jVqdSrQr").0itemr$r$r% zcontents..) r,r8rr r9r:listrrTiterdir)r*rHr\r$r$r%rs   r)rMrN)rMrN)4r-rr5rr contextlibrr importlibr importlib.abcr ior r pathlibr typesr typingrrrrrZ typing.iorr__all__strrPathLikerr&r,r2r6r8r=rrbytesrr TraversablerrrUboolrrr$r$r$r%sZ