U e5d@%ã @s²ddlZddlZddlmZddlmZmZddlm Z ddl m Z ddl m Z mZddlmZdd lmZdd lmZmZmZmZmZdd lmZdd lmZmZdd lmZdddddddddg Zee efZ!ee ej"fZ#edœdd„Z$e dœdd„Z%eeej&dœdd„Z'dd „Z(e!e#ed!œd"d„Z)d-e!e#e e ed%œd&d„Z*e!e#e+d!œd'd„Z,d.e!e#e e e d%œd(d„Z-ee!e#eed!œd)d„ƒZ.e!e e/d*œd+d„Z0e!ee dœd,d„Z1dS)/éNé)Úabc)ÚcontextmanagerÚsuppress)Ú import_module)ÚResourceLoader)ÚBytesIOÚ TextIOWrapper)ÚPath)Ú ModuleType)ÚIterableÚIteratorÚOptionalÚSetÚUnion)Úcast)ÚBinaryIOÚTextIO)ÚZipImportErrorÚPackageÚResourceÚcontentsÚ is_resourceÚ open_binaryÚ open_textÚpathÚ read_binaryÚ read_text)ÚreturncCs\t|dƒr0|jjdkr*td |jj¡ƒ‚qX|Sn(t|ƒ}|jjdkrTtd |¡ƒ‚n|SdS)NÚ__spec__z{!r} is not a package)ÚhasattrrÚsubmodule_search_locationsÚ TypeErrorÚformatÚnamer)ÚpackageÚmodule©r'ú+/usr/lib64/python3.8/importlib/resources.pyÚ _get_package"s  ÿ r)cCs,tj |¡\}}|r$td |¡ƒ‚n|SdS)Nz{!r} must be only a file name)ÚosrÚsplitÚ ValueErrorr#)rÚparentÚ file_namer'r'r(Ú_normalize_path6sr/)r%rcCs,|j}t|jdƒr(ttj|j |j¡ƒSdS)NÚget_resource_reader)rr ÚloaderrÚ resources_abcÚResourceReaderr0r$)r%Úspecr'r'r(Ú_get_resource_readerBs   ÿr5cCs&|jjdks|jjs"td|›�ƒ‚dS)NzPackage has no location )rÚoriginÚ has_locationÚFileNotFoundError)r%r'r'r(Ú_check_locationPsr9)r%Úresourcerc Csôt|ƒ}t|ƒ}t|ƒ}|dk r*| |¡St|ƒtj |jj ¡}tj  |¡}tj  ||¡}zt |dd�WSt k rîtt|jjƒ}d}t|jjdƒr¸tt ƒ�| |¡}W5QRX|dkrÞ|jj}d ||¡} t| ƒ‚n t|ƒYSYnXdS)NÚrb)ÚmodeÚget_dataú{!r} resource not found in {!r})r/r)r5Ú open_resourcer9r*rÚabspathrr6ÚdirnameÚjoinÚopenÚOSErrorrrr1r rr=r$r#r8r) r%r:ÚreaderÚabsolute_package_pathÚ package_pathÚ full_pathr1ÚdataÚ package_nameÚmessager'r'r(rUs2   ÿ úutf-8Ústrict)r%r:ÚencodingÚerrorsrc Cs t|ƒ}t|ƒ}t|ƒ}|dk r2t| |¡||ƒSt|ƒtj |j j ¡}tj  |¡}tj  ||¡}zt |d||d�WStk �rtt|j jƒ}d} t|j jdƒrÆttƒ�| |¡} W5QRX| dkrì|j j} d || ¡} t| ƒ‚ntt| ƒ||ƒYSYnXdS)NÚr)r<rNrOr=r>)r/r)r5r r?r9r*rr@rr6rArBrCrDrrr1r rr=r$r#r8r) r%r:rNrOrErFrGrHr1rIrJrKr'r'r(rts2  ÿ c Cs:t|ƒ}t|ƒ}t||ƒ�}| ¡W5QR£SQRXdS©N)r/r)rÚread)r%r:Úfpr'r'r(r–s c Cs>t|ƒ}t|ƒ}t||||ƒ�}| ¡W5QR£SQRXdSrQ)r/r)rrR)r%r:rNrOrSr'r'r(ržs c cst|ƒ}t|ƒ}t|ƒ}|dk rNzt| |¡ƒVWdStk rJYqVXnt|ƒd}|jjdk r|t|jjƒj }||}|dk r”|  ¡r”|Vnxt ||ƒ�}|  ¡}W5QRXt  ¡\}}z$t ||¡t |¡t|ƒVW5zt |¡Wntk �rYnXXdSrQ)r/r)r5r Ú resource_pathr8r9rr6r-ÚexistsrrRÚtempfileZmkstempr*ÚremoveÚwriteÚclose) r%r:rEZ file_pathÚpackage_directoryrSrIÚfdZraw_pathr'r'r(r­s6      )r%r$rc Cs|t|ƒ}t|ƒt|ƒ}|dk r*| |¡Sztt|ƒƒ}Wnttfk rTYdSX||krbdSt|j j ƒj |}|  ¡S)NF) r)r/r5rÚsetrÚNotADirectoryErrorr8r rr6r-Úis_file)r%r$rEZpackage_contentsrr'r'r(rÜs cCsTt|ƒ}t|ƒ}|dk r | ¡S|jjdks4|jjs8dSt|jjƒj}t  |¡SdS)Nr') r)r5rrr6r7r r-r*Úlistdir)r%rErZr'r'r(rós)rLrM)rLrM)2r*rVÚrr2Ú contextlibrrÚ importlibrÚ importlib.abcrÚiorr Úpathlibr Útypesr Útypingr r rrrrZ typing.iorrZ zipimportrÚ__all__ÚstrrÚPathLikerr)r/r3r5r9rrÚbytesrrrÚboolrrr'r'r'r(Úsh       ÷  ÿ !ýý " ýý .