ó
    F\hS  ã                   ó  • S SK r S SKrS SKrS SKrS SKrS SKJrJrJrJ	r	J
r
JrJr  S SKJrJr  S SKJr  \\\R"                  \   4   r/ SQr " S S\ R(                  S9r " S	 S
\5      r\ " S S\5      5       r " S S\5      rg)é    N)ÚAnyÚBinaryIOÚIterableÚIteratorÚNoReturnÚTextÚOptional)Úruntime_checkableÚProtocol)ÚUnion)ÚResourceReaderÚTraversableÚTraversableResourcesc                   óÚ   • \ rS rSrSr\R                  S\S\4S j5       r	\R                  S\S\4S j5       r
\R                  S\S\4S j5       r\R                  S\\   4S	 j5       rS
rg)r   é   zDAbstract base class for loaders to provide resource reading support.ÚresourceÚreturnc                 ó   • [         e)z¹Return an opened, file-like object for binary reading.

The 'resource' argument is expected to represent only a file name.
If the resource cannot be found, FileNotFoundError is raised.
©ÚFileNotFoundError©Úselfr   s     Ú./usr/lib/python3.13/importlib/resources/abc.pyÚopen_resourceÚResourceReader.open_resource   s
   € ô  Ðó    c                 ó   • [         e)zÇReturn the file system path to the specified resource.

The 'resource' argument is expected to represent only a file name.
If the resource does not exist on the file system, raise
FileNotFoundError.
r   r   s     r   Úresource_pathÚResourceReader.resource_path   s
   € ô  Ðr   Úpathc                 ó   • [         e)zZReturn True if the named 'path' is a resource.

Files are resources, directories are not.
r   ©r   r    s     r   Úis_resourceÚResourceReader.is_resource,   s
   € ô  Ðr   c                 ó   • [         e)z+Return an iterable of entries in `package`.r   ©r   s    r   ÚcontentsÚResourceReader.contents4   s
   € ô  Ðr   © N)Ú__name__Ú
__module__Ú__qualname__Ú__firstlineno__Ú__doc__ÚabcÚabstractmethodr   r   r   r   Úboolr#   r   Ústrr'   Ú__static_attributes__r)   r   r   r   r      s    † ÙNà×Ñð	  dð 	 ¨xó 	 ó ð	 ð 	×Ñð
  dð 
 ¨tó 
 ó ð
 ð 	×Ñð  ð  ¨ó  ó ð ð 	×Ñð ˜( 3™-ó  ó ó r   r   )Ú	metaclassc                   ó   • \ rS rSrSrg)ÚTraversalErroré:   r)   N)r*   r+   r,   r-   r3   r)   r   r   r6   r6   :   s   † Úr   r6   c                   óN  • \ rS rSrSr\R                  S\S    4S j5       rS\	4S jr
SS\\   S\4S jjr\R                  S\4S	 j5       r\R                  S\4S
 j5       rS\SS 4S jrS\SS 4S jr\R                  SS j5       r\\R                  S\4S j5       5       rSrg)r   é>   zÀ
An object with a subset of pathlib.Path methods suitable for
traversing directories and opening files.

Any exceptions that occur when accessing the backing resource
may propagate unaltered.
r   c                 ó   • g)z#
Yield Traversable objects in self
Nr)   r&   s    r   ÚiterdirÚTraversable.iterdirH   ó   � r   c                 óz   • U R                  S5       nUR                  5       sSSS5        $ ! , (       d  f       g= f)z 
Read contents of self as bytes
ÚrbN©ÚopenÚread)r   Ústrms     r   Ú
read_bytesÚTraversable.read_bytesN   s$   € ð �Y‰Y�tŒ_ Ø—9‘9“;÷ �_�_ús   ’,¬
:NÚencodingc                 óv   • U R                  US9 nUR                  5       sSSS5        $ ! , (       d  f       g= f)z
Read contents of self as text
)rF   Nr@   )r   rF   rC   s      r   Ú	read_textÚTraversable.read_textU   s)   € ð �Y‰Y ˆYÑ)¨TØ—9‘9“;÷ *×)×)ús   �*ª
8c                 ó   • g)z$
Return True if self is a directory
Nr)   r&   s    r   Úis_dirÚTraversable.is_dir\   r=   r   c                 ó   • g)z
Return True if self is a file
Nr)   r&   s    r   Úis_fileÚTraversable.is_fileb   r=   r   Údescendantsc                 óZ  ^• U(       d  U $ [         R                  R                  S [        [        R
                  U5       5       5      n[        U5      mU4S jU R                  5        5       n [        U5      nUR                  " U6 $ ! [         a    [        ST[        U5      5      ef = f)zÃ
Return Traversable resolved with any descendants applied.

Each descendant should be a path segment relative to self
and each may contain multiple levels separated by
``posixpath.sep`` (``/``).
c              3   ó8   #   • U  H  oR                   v •  M     g 7f©N)Úparts)Ú.0r    s     r   Ú	<genexpr>Ú'Traversable.joinpath.<locals>.<genexpr>r   s   é € ð .
Ú#J˜4�JŽJÒ#Jùó   ‚c              3   óJ   >#   • U  H  oR                   T:X  d  M  Uv •  M     g 7frS   ©Úname)rU   ÚtraversableÚtargets     €r   rV   rW   v   s"   øé € ð 
Ú+9˜K×=MÑ=MÐQWÑ=W�K‰Kª>ùs   ƒ#š	#z"Target not found during traversal.)Ú	itertoolsÚchainÚfrom_iterableÚmapÚpathlibÚPurePosixPathÚnextr;   ÚStopIterationr6   ÚlistÚjoinpath)r   rP   ÚnamesÚmatchesÚmatchr]   s        @r   rg   ÚTraversable.joinpathh   s£   ø€ ö ØˆKÜ—‘×-Ñ-ñ .
Ü#&¤w×'<Ñ'<¸kÔ#Jó.
ó 
ˆô �e“ˆô
Ø+/¯<©<¬>ó
ˆð	Ü˜“MˆEð
 �~Š~˜uÐ%Ð%øô	 ó 	Ü Ø4°f¼dÀ5»kóð ð	ús   Á/B	 Â	!B*Úchildc                 ó$   • U R                  U5      $ )z"
Return Traversable child in self
)rg   )r   rl   s     r   Ú__truediv__ÚTraversable.__truediv__�   s   € ð �}‰}˜UÓ#Ð#r   c                 ó   • g)zÕ
mode may be 'r' or 'rb' to open as text or binary. Return a handle
suitable for reading (same as pathlib.Path.open).

When opening as text, accepts encoding parameters such as those
accepted by io.TextIOWrapper.
Nr)   )r   ÚmodeÚargsÚkwargss       r   rA   ÚTraversable.open‡   r=   r   c                 ó   • g)z=
The base name of this object without any parent references.
Nr)   r&   s    r   r[   ÚTraversable.name‘   r=   r   r)   rS   )Úr)r*   r+   r,   r-   r.   r/   r0   r   r;   ÚbytesrD   r	   r2   rH   r1   rK   rN   ÚStrPathrg   rn   rA   Úpropertyr[   r3   r)   r   r   r   r   >   sû   † ñð 	×Ñð˜ -Ñ0ó ó ðð
˜Eô ñ (¨3¡-ð ¸3õ ð 	×Ñð˜ó ó ðð
 	×Ñð˜ó ó ðð
& Wð &°ô &ð2$ ð $¨]ô $ð 	×Ñóó ðð Ø×Ñð�có ó ó ór   r   c                   óž   • \ rS rSrSr\R                  SS j5       rS\S\	R                  4S jrS\S\4S jrS\S\4S	 jrS\\   4S
 jrSrg)r   é™   z=
The required interface for providing traversable
resources.
r   c                 ó   • g)z3Return a Traversable object for the loaded package.Nr)   r&   s    r   ÚfilesÚTraversableResources.filesŸ   r=   r   r   c                 ó^   • U R                  5       R                  U5      R                  S5      $ )Nr?   )r~   rg   rA   r   s     r   r   Ú"TraversableResources.open_resource£   s$   € Ø�z‰z‹|×$Ñ$ XÓ.×3Ñ3°DÓ9Ð9r   c                 ó   • [        U5      erS   r   r   s     r   r   Ú"TraversableResources.resource_path¦   s   € Ü Ó)Ð)r   r    c                 ó\   • U R                  5       R                  U5      R                  5       $ rS   )r~   rg   rN   r"   s     r   r#   Ú TraversableResources.is_resource©   s"   € Ø�z‰z‹|×$Ñ$ TÓ*×2Ñ2Ó4Ð4r   c                 óL   • S U R                  5       R                  5        5       $ )Nc              3   ó8   #   • U  H  oR                   v •  M     g 7frS   rZ   )rU   Úitems     r   rV   Ú0TraversableResources.contents.<locals>.<genexpr>­   s   é € Ð=Ò&<˜d—	–	Ò&<ùrX   )r~   r;   r&   s    r   r'   ÚTraversableResources.contents¬   s   € Ù= d§j¡j£l×&:Ñ&:Ô&<Ó=Ð=r   r)   N)r   r   )r*   r+   r,   r-   r.   r/   r0   r~   ry   ÚioÚBufferedReaderr   r   r   r   r1   r#   r   r2   r'   r3   r)   r   r   r   r   ™   sr   † ñð
 	×ÑóBó ðBð: gð :°"×2CÑ2Cô :ð* cð *¨hô *ð5 ð 5¨Dô 5ð>˜( 3™-÷ >r   r   )r/   r‹   r^   Úosrb   Útypingr   r   r   r   r   r   r	   r
   r   r   r2   ÚPathLikery   Ú__all__ÚABCMetar   Ú	Exceptionr6   r   r   r)   r   r   Ú<module>r“      sŠ   ðÛ 
Û 	Û Û 	Û ß N× NÑ Nß .Ý ð ��R—[‘[ Ñ%Ð%Ñ
&€â
C€ô' ˜sŸ{™{ò ' ôT	�Yô 	ð ôW�(ó Wó ðWôt>˜>õ >r   