Ë
    bQêj:&  ã                   ó|  — d dl Z d dlZd dlZd dlZd dlZd dlZd dlZd dlZd dlm	Z	 ddl m
Z
mZmZ ddlmZ ddlmZ ddlmZmZ  G d	„ d
e
«      Zd0d„Zd1d„Z G d„ de j.                  ¬«      Z ed e ed«      «      dj9                  d«      dj9                  d«      d e edd«      «      dœdœddddœdddœdddiid œ e ed«      «      dj9                  d«      dj9                  d«      d! e ed"d#«      «      id$œ¬%«      Z G d&„ d'«      Z G d(„ d)e«      Z G d*„ d+e«      Z  G d,„ d-e«      Z! G d.„ d/e e«      Z"y)2é    N)Ú
ModuleSpecé   )ÚResourceReaderÚTraversableÚTraversableResourcesé   )Ú_path)Úzip)Úimport_helperÚ	os_helperc                   ó0   — e Zd Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zy)ÚReaderc                 ó8   — t        | «      j                  |«       y ©N)ÚvarsÚupdate)ÚselfÚkwargss     úc/home/oem/CyberBrain26-unified/.venv/lib/python3.12/site-packages/importlib_resources/tests/util.pyÚ__init__zReader.__init__   s   € ÜˆT‹
×Ñ˜&Õ!ó    c                 ó   — | S r   © ©r   Úpackages     r   Úget_resource_readerzReader.get_resource_reader   s   € Øˆr   c                 ót   — || _         t        | j                  t        «      r| j                  ‚| j                  S r   )r	   Ú
isinstanceÚfileÚ	Exception©r   Úpaths     r   Úopen_resourcezReader.open_resource   s*   € ØˆŒ
Ü�d—i‘i¤Ô+Ø—)‘)ˆOØ�y‰yÐr   c                 ót   — || _         t        | j                  t        «      r| j                  ‚| j                  S r   )r	   r   r"   r    )r   Úpath_s     r   Úresource_pathzReader.resource_path   s*   € ØˆŒ
Ü�d—i‘i¤Ô+Ø—)‘)ˆOØ�y‰yÐr   c                 ó´   ‡— ‰| _         t        | j                  t        «      r| j                  ‚d„ }t	        ˆfd„t        || j                  «      D «       «      S )Nc                 ó$   — | j                  d«      S )Nú/)Úsplit)Úentrys    r   Úpartz Reader.is_resource.<locals>.part)   s   € Ø—;‘;˜sÓ#Ð#r   c              3   óN   •K  — | ]  }t        |«      d k(  xr |d   ‰k(  –— Œ y­w)r   r   N)Úlen)Ú.0Úpartsr%   s     €r   ú	<genexpr>z%Reader.is_resource.<locals>.<genexpr>,   s/   øè ø€ ò 
Ø6;ŒC�‹J˜!‰OÒ1  a¡¨EÑ 1Ó1ñ
ùs   ƒ"%)r	   r   r"   r    ÚanyÚmapÚ	_contents)r   r%   r,   s    ` r   Úis_resourcezReader.is_resource$   sM   ø€ ØˆŒ
Ü�d—i‘i¤Ô+Ø—)‘)ˆOò	$ô ó 
Ü?BÀ4ÈÏÉÓ?Xô
ó 
ð 	
r   c              #   ó„   K  — t        | j                  t        «      r| j                  ‚| j                  E d {  –—†  y 7 Œ­wr   )r   r"   r    r4   ©r   s    r   ÚcontentszReader.contents0   s*   è ø€ Ü�d—i‘i¤Ô+Ø—)‘)ˆOØ—>‘>×!Ò!ús   ‚6A ¸>¹A N)	Ú__name__Ú
__module__Ú__qualname__r   r   r#   r&   r5   r8   r   r   r   r   r      s    „ ò"òòòò

ó"r   r   c                 ón   — d}t        j                  |«      }t        || d|¬«      }||_        | |_        |S )NÚtestingpackagezdoes-not-exist)ÚoriginÚ
is_package)ÚtypesÚ
ModuleTyper   Ú__spec__Ú
__loader__)Úloaderr?   ÚnameÚmoduleÚspecs        r   Úcreate_package_from_loaderrH   6   s<   € Ø€DÜ×Ñ˜dÓ#€FÜ�d˜FÐ+;È
ÔS€DØ€F„OØ€FÔØ€Mr   c                 ó2   — t        t        | ||¬«      |«      S )N)r   r"   r4   )rH   r   )r   r"   r?   r8   s       r   Úcreate_packagerJ   ?   s   € Ü%Ü�D˜t¨xÔ8Øóð r   c                   ód   — e Zd ZdZej
                  d„ «       Zd„ Zd„ Zd„ Z	d„ Z
d„ Zd„ Zd	„ Zd
„ Zy)ÚCommonTestsBasez>
    Tests shared by test_open, test_path, and test_read.
    c                  ó   — y)zl
        Call the pertinent legacy API function (e.g. open_text, path)
        on package and path.
        Nr   )r   r   r"   s      r   ÚexecutezCommonTestsBase.executeK   s   � r   c                 óP   — | j                  | j                  j                  d«       y)z=
        Passing in the package name should succeed.
        ú
utf-8.fileN)rN   Údatar9   r7   s    r   Útest_package_namez!CommonTestsBase.test_package_nameR   s   € ð 	�‰�T—Y‘Y×'Ñ'¨Õ6r   c                 ó<   — | j                  | j                  d«       y)z?
        Passing in the package itself should succeed.
        rP   N©rN   rQ   r7   s    r   Útest_package_objectz#CommonTestsBase.test_package_objectX   s   € ð 	�‰�T—Y‘Y Õ-r   c                 ó@   — d}| j                  | j                  |«       y)zB
        Passing in a string for the path should succeed.
        rP   NrT   r!   s     r   Útest_string_pathz CommonTestsBase.test_string_path^   s   € ð ˆØ�‰�T—Y‘Y Õ%r   c                 óf   — t        j                  d«      }| j                  | j                  |«       y)zS
        Passing in a pathlib.PurePath object for the path should succeed.
        rP   N)ÚpathlibÚPurePathrN   rQ   r!   s     r   Útest_pathlib_pathz!CommonTestsBase.test_pathlib_pathe   s&   € ô ×Ñ Ó-ˆØ�‰�T—Y‘Y Õ%r   c                 óš   — t         j                  | j                  j                  = | j	                  | j                  j                  d«       y)z=
        The anchor package can already be imported.
        rP   N)ÚsysÚmodulesrQ   r9   rN   r7   s    r   Ú$test_importing_module_as_side_effectz4CommonTestsBase.test_importing_module_as_side_effectl   s2   € ô �K‰K˜Ÿ	™	×*Ñ*Ð+Ø�‰�T—Y‘Y×'Ñ'¨Õ6r   c                 ó²   — t        j                  d«      }t        |t        «       ¬«      }| j	                  |d«       |j
                  j                  dk(  sJ ‚y)z©
        Attempting to open or read or request the path for a
        non-existent path should succeed if open_resource
        can return a viable data stream.
        ó   Hello, world!©r   r"   rP   N)ÚioÚBytesIOrJ   ÚFileNotFoundErrorrN   rC   r	   )r   Ú
bytes_datar   s      r   Útest_missing_pathz!CommonTestsBase.test_missing_paths   sK   € ô —Z‘ZÐ 0Ó1ˆ
Ü  jÔ7HÓ7JÔKˆØ�‰�W˜lÔ+Ø×!Ñ!×'Ñ'¨<Ò7Ð7Ñ7r   c                 ó®   — t        j                  d«      }t        }t        ||¬«      }| j	                  |d«       |j
                  j                  dk(  sJ ‚y )Nra   rb   rP   )rc   rd   Ú__file__rJ   rN   rC   r	   )r   rf   r"   r   s       r   Útest_extant_pathz CommonTestsBase.test_extant_path~   sL   € ô —Z‘ZÐ 0Ó1ˆ
äˆÜ  j°tÔ<ˆØ�‰�W˜lÔ+Ø×!Ñ!×'Ñ'¨<Ò7Ð7Ñ7r   c                 ó¶   — t        t        «       t        «       ¬«      }| j                  t        «      5  | j                  |d«       d d d «       y # 1 sw Y   y xY w)Nrb   rP   )rJ   re   ÚassertRaisesrN   r   s     r   Útest_useless_loaderz#CommonTestsBase.test_useless_loader‰   sH   € Ü Ô&7Ó&9Ô@QÓ@SÔTˆØ×ÑÔ0Ó1ñ 	0Ø�L‰L˜ ,Ô/÷	0÷ 	0ñ 	0ús   ³AÁAN)r9   r:   r;   Ú__doc__ÚabcÚabstractmethodrN   rR   rU   rW   r[   r_   rg   rj   rm   r   r   r   rL   rL   F   sI   „ ñð 	×Ññó ðò7ò.ò&ò&ò7ò	8ò	8ó0r   rL   )Ú	metaclassÚ é   u   ï»¿Hello, UTF-16 world!
z	utf-16-lezHello, UTF-8 world!
úutf-8é   )ú__init__.pyúbinary.file)rv   rw   úutf-16.filerP   Úsubdirectoryzone resource)rv   zresource1.txtztwo resource)rv   zresource2.txtÚ	subsubdirzresource.txtz
a resource)rv   ÚoneÚtwory   rw   é   é   )rw   rx   rP   ry   )Údata01Údata02Únamespacedata01c                   ó   — e Zd Zd„ Zd„ Zy)ÚModuleSetupc                 ó  — t        j                  «       | _        | j                  | j                  j                  «       | j                  j                  t        j                  «       «       | j                  | j                  «      | _
        y r   )Ú
contextlibÚ	ExitStackÚfixturesÚ
addCleanupÚcloseÚenter_contextr   Úisolated_modulesÚload_fixtureÚMODULErQ   r7   s    r   ÚsetUpzModuleSetup.setUp¬   sY   € Ü"×,Ñ,Ó.ˆŒØ�‰˜Ÿ™×+Ñ+Ô,à�‰×#Ñ#¤M×$BÑ$BÓ$DÔEØ×%Ñ% d§k¡kÓ2ˆ�	r   c                 ó`   — | j                  |t        |   i«       t        j                  |«      S r   )Útree_on_pathr‡   Ú	importlibÚimport_module©r   rF   s     r   rŒ   zModuleSetup.load_fixture³   s+   € Ø×Ñ˜6¤8¨FÑ#3Ð4Ô5Ü×&Ñ& vÓ.Ð.r   N)r9   r:   r;   rŽ   rŒ   r   r   r   rƒ   rƒ   «   s   „ ò3ó/r   rƒ   c                   ó   — e Zd ZdZd„ Zy)ÚZipSetupr   c           
      ó$  — | j                   j                  t        j                  «       «      }t	        j
                  |«      dz  }| j                   j                  t        j                  t        t        j                  ||«      «      «      «       y )Nzzipped modules.zip)r‡   rŠ   r   Útemp_dirrY   ÚPathr   ÚDirsOnSysPathÚstrÚzip_Úmake_zip_file)r   rG   r—   r^   s       r   r�   zZipSetup.tree_on_path»   se   € Ø—=‘=×.Ñ.¬y×/AÑ/AÓ/CÓDˆÜ—,‘,˜xÓ(Ð+?Ñ?ˆØ�‰×#Ñ#Ü×'Ñ'¬¬D×,>Ñ,>¸tÀWÓ,MÓ(NÓOõ	
r   N©r9   r:   r;   r�   r�   r   r   r   r•   r•   ¸   s   „ Ø€Fó
r   r•   c                   ó   — e Zd ZdZd„ Zy)Ú	DiskSetupr   c                 ó  — | j                   j                  t        j                  «       «      }t	        j
                  |t        j                  |«      «       | j                   j                  t        j                  |«      «       y r   )
r‡   rŠ   r   r—   r	   ÚbuildrY   r˜   r   r™   )r   rG   r—   s      r   r�   zDiskSetup.tree_on_pathÆ   sS   € Ø—=‘=×.Ñ.¬y×/AÑ/AÓ/CÓDˆÜ�‰�Dœ'Ÿ,™, xÓ0Ô1Ø�‰×#Ñ#¤M×$?Ñ$?ÀÓ$IÕJr   Nr�   r   r   r   rŸ   rŸ   Ã   s   „ Ø€FóKr   rŸ   c                   óæ   — e Zd ZdZdZd„ Zej                  d„ «       Z G d„ de	j                  j                  «      Z G d„ de	j                  j                  «      Z G d	„ d
e«      Z G d„ de«      Zy)ÚMemorySetupz#Support loading a module in memory.r   c                 ó€   — | j                   j                  | j                  |«      «       t        j                  |«      S r   )r‡   rŠ   Úaugment_sys_metapathr‘   r’   r“   s     r   rŒ   zMemorySetup.load_fixtureÑ   s0   € Ø�‰×#Ñ# D×$=Ñ$=¸fÓ$EÔFÜ×&Ñ& vÓ.Ð.r   c              #   ó²   K  — | j                  |«      }t        j                  j                  |«       d –— t        j                  j	                  |«       y ­wr   )ÚMemoryFinderr]   Ú	meta_pathÚappendÚremove)r   rF   Úfinder_instances      r   r¥   z MemorySetup.augment_sys_metapathÕ   s=   è ø€ à×+Ñ+¨FÓ3ˆÜ�‰×Ñ˜_Ô-ÛÜ�‰×Ñ˜_Õ-ùs   ‚AAc                   ó   — e Zd Zd„ Zdd„Zy)úMemorySetup.MemoryFinderc                 ó   — || _         y r   ©Ú_moduler“   s     r   r   z!MemorySetup.MemoryFinder.__init__Ý   ó	   € Ø!ˆD�Lr   Nc                 ó    — || j                   k7  ry t        j                  j                  |t        j                  | j                   «      d¬«      S )NT)rE   rD   r?   )r°   r‘   Ú	machineryr   r£   ÚMemoryLoader)r   Úfullnamer"   Útargets       r   Ú	find_specz"MemorySetup.MemoryFinder.find_specà   sG   € Ø˜4Ÿ<™<Ò'Øä×&Ñ&×1Ñ1ØÜ"×/Ñ/°·±Ó=Øð 2ó ð r   r   )r9   r:   r;   r   r·   r   r   r   r§   r­   Ü   s   „ ò	"ô	r   r§   c                   ó   — e Zd Zd„ Zd„ Zd„ Zy)úMemorySetup.MemoryLoaderc                 ó   — || _         y r   r¯   r“   s     r   r   z!MemorySetup.MemoryLoader.__init__ë   r±   r   c                  ó   — y r   r   r“   s     r   Úexec_modulez$MemorySetup.MemoryLoader.exec_moduleî   s   € Ør   c                 óB   — t         j                  | j                  |«      S r   )r£   ÚMemoryTraversableResourcesr°   )r   rµ   s     r   r   z,MemorySetup.MemoryLoader.get_resource_readerñ   s   € Ü×9Ñ9¸$¿,¹,ÈÓQÐQr   N)r9   r:   r;   r   r¼   r   r   r   r   r´   r¹   ê   s   „ ò	"ò	ó	Rr   r´   c                   ó   — e Zd Zd„ Zd„ Zy)ú&MemorySetup.MemoryTraversableResourcesc                 ó    — || _         || _        y r   ©r°   Ú	_fullname©r   rF   rµ   s      r   r   z/MemorySetup.MemoryTraversableResources.__init__õ   ó   € Ø!ˆDŒLØ%ˆD�Nr   c                 óV   — t         j                  | j                  | j                  «      S r   )r£   ÚMemoryTraversabler°   rÃ   r7   s    r   Úfilesz,MemorySetup.MemoryTraversableResources.filesù   s   € Ü×0Ñ0°·±¸t¿~¹~ÓNÐNr   N)r9   r:   r;   r   rÈ   r   r   r   r¾   rÀ   ô   s   „ ò	&ó	Or   r¾   c                   óR   — e Zd ZdZd„ Zd„ Zd„ Zdefd„Zdefd„Z	dd	„Z
ed
„ «       Zy)úMemorySetup.MemoryTraversablezåImplement only the abstract methods of `Traversable`.

        Besides `.__init__()`, no other methods may be implemented or overridden.
        This is critical for validating the concrete `Traversable` implementations.
        c                 ó    — || _         || _        y r   rÂ   rÄ   s      r   r   z&MemorySetup.MemoryTraversable.__init__  rÅ   r   c                 óŒ   — t        j                  | j                  «      }t        j                  d„ |j
                  t        «      S )zÓ
            Fully traverse the `fixtures` dictionary.

            This should be wrapped in a `try/except KeyError`
            but it is not currently needed and lowers the code coverage numbers.
            c                 ó   — | |   S r   r   )ÚdÚps     r   ú<lambda>z8MemorySetup.MemoryTraversable._resolve.<locals>.<lambda>  s
   € °°1±€ r   )rY   ÚPurePosixPathrÃ   Ú	functoolsÚreducer0   r‡   r!   s     r   Ú_resolvez&MemorySetup.MemoryTraversable._resolve  s2   € ô ×(Ñ(¨¯©Ó8ˆDÜ×#Ñ#Ñ$5°t·z±zÄ8ÓLÐLr   c              #   óì   K  — | j                  «       }t        |t        «      st        | j                  › d�«      ‚|D ]3  }t
        j                  | j                  | j                  › d|› �«      –— Œ5 y ­w)Nz is not a directoryr)   )rÔ   r   ÚdictÚOSErrorrÃ   r£   rÇ   r°   )r   Ú	directoryr"   s      r   Úiterdirz%MemorySetup.MemoryTraversable.iterdir  sn   è ø€ ØŸ™›ˆIÜ˜i¬Ô.ä §¡Ð 0Ð0CÐDÓEÐEØ!ò �Ü!×3Ñ3Ø—L‘L T§^¡^Ð$4°A°d°VÐ"<óó ñùs   ‚A2A4Úreturnc                 ó>   — t        | j                  «       t        «      S r   )r   rÔ   rÖ   r7   s    r   Úis_dirz$MemorySetup.MemoryTraversable.is_dir  s   € Ü˜dŸm™m›o¬tÓ4Ð4r   c                 ó$   — | j                  «        S r   )rÜ   r7   s    r   Úis_filez%MemorySetup.MemoryTraversable.is_file  s   € Ø—{‘{“}Ð$Ð$r   Nc                 ó  — | j                  «       }t        |t        «      rt        | j                  › d�«      ‚t        |t
        «      r|j                  d«      }t        j                  |«      }d|v r|S t        j                  |||¬«      S )Nz is a directoryrt   Úb)ÚencodingÚerrors)
rÔ   r   rÖ   r×   rÃ   rš   Úencoderc   rd   ÚTextIOWrapper)r   Úmoderá   râ   Ú_Ú__r8   Úresults           r   Úopenz"MemorySetup.MemoryTraversable.open!  sw   € Ø—}‘}“ˆHÜ˜(¤DÔ)ô  §¡Ð 0°Ð@ÓAÐAÜ˜(¤CÔ(Ø#Ÿ?™?¨7Ó3�Ü—Z‘Z Ó)ˆFØ�d‰{Ø�Ü×#Ñ# F°XÀfÔMÐMr   c                 óT   — t        j                  | j                  «      j                  S r   )rY   rÑ   rÃ   rE   r7   s    r   rE   z"MemorySetup.MemoryTraversable.name.  s   € ä×(Ñ(¨¯©Ó8×=Ñ=Ð=r   )ÚrNN)r9   r:   r;   rn   r   rÔ   rÙ   ÚboolrÜ   rÞ   ré   ÚpropertyrE   r   r   r   rÇ   rÊ   ü   sI   „ ñ	ò	&ò	Mò	ð	5˜Dó 	5ð	%˜Tó 	%ó	Nð 
ñ	>ó 
ñ	>r   rÇ   N)r9   r:   r;   rn   r�   rŒ   r…   Úcontextmanagerr¥   r‘   ro   ÚMetaPathFinderr§   ÚLoaderr´   r   r¾   r   rÇ   r   r   r   r£   r£   Ì   sr   „ Ù-à€Fò/ð ×Ññ.ó ð.ô�y—}‘}×3Ñ3ô ôR�y—}‘}×+Ñ+ô RôOÐ%9ô Oô4>˜Kõ 4>r   r£   c                   ó   — e Zd Zy)ÚCommonTestsN)r9   r:   r;   r   r   r   rò   rò   3  s   „ Ør   rò   )T)NNTr   )#ro   r…   rÒ   r‘   rc   rY   r]   r@   Úimportlib.machineryr   r   r   r   rr   r	   r
   r›   Úcompat.py39r   r   r   rH   rJ   ÚABCMetarL   rÖ   ÚbytesÚrangerã   r‡   rƒ   r•   rŸ   r£   rò   r   r   r   ú<module>rø      sU  ðÛ 
Û Û Û Û 	Û Û 
Û Ý *ç CÑ CÝ Ý ß 1ô""ˆ^ô ""óJóôF0 §¡õ F0ñR àÙ™U 1›X“Ø5×<Ñ<¸[ÓIØ-×4Ñ4°WÓ=àÙ ¡ q¨!£Ó-ñ
ñ	ð Ø!°NÑCØ!°NÑCØ$ ~°|Ð&DÐEñ	ñ ™U 1›X“Ø5×<Ñ<¸[ÓIØ-×4Ñ4°WÓ=à™5¡ r¨2£Ó/ð
ñ	ô#€÷8
/ñ 
/ô
ˆ{ô 
ôK�ô Kôd>�+ô d>ôN	�)˜_õ 	r   