Ë
    òT•jS  ã                   ó  — 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mZmZm	Z	m
Z
mZmZ d dlmZmZ d dlmZ eeej"                  e   f   Zg d¢Z G d„ de j(                  ¬«      Z G d	„ d
e«      Ze G d„ de«      «       Z G d„ de«      Zy)é    N)ÚAnyÚBinaryIOÚIterableÚIteratorÚNoReturnÚTextÚOptional)Úruntime_checkableÚProtocol)ÚUnion)ÚResourceReaderÚTraversableÚTraversableResourcesc                   óÊ   — e Zd ZdZej
                  dedefd„«       Zej
                  dedefd„«       Z	ej
                  dede
fd„«       Zej
                  dee   fd„«       Zy	)
r   zDAbstract base class for loaders to provide resource reading support.ÚresourceÚreturnc                 ó   — t         ‚)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.12/importlib/resources/abc.pyÚopen_resourcezResourceReader.open_resource   s
   € ô  Ðó    c                 ó   — t         ‚)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_pathzResourceReader.resource_path   s
   € ô  Ðr   Úpathc                 ó   — t         ‚)zjReturn True if the named 'path' is a resource.

        Files are resources, directories are not.
        r   ©r   r   s     r   Úis_resourcezResourceReader.is_resource,   s
   € ô  Ðr   c                 ó   — t         ‚)z+Return an iterable of entries in `package`.r   ©r   s    r   ÚcontentszResourceReader.contents4   s
   € ô  Ðr   N)Ú__name__Ú
__module__Ú__qualname__Ú__doc__ÚabcÚabstractmethodr   r   r   r   Úboolr    r   Ústrr#   © r   r   r   r      s    „ ÙNà×Ñð	  dð 	 ¨xò 	 ó ð	 ð 	×Ñð
  dð 
 ¨tò 
 ó ð
 ð 	×Ñð  ð  ¨ò  ó ð ð 	×Ñð ˜( 3™-ò  ó ñ r   r   )Ú	metaclassc                   ó   — e Zd Zy)ÚTraversalErrorN)r$   r%   r&   r,   r   r   r/   r/   :   s   „ Ør   r/   c                   ó2  — e Zd ZdZej
                  ded    fd„«       Zdefd„Z	dde
e   defd„Zej
                  defd„«       Zej
                  defd	„«       Zd
edd fd„Zdedd fd„Zej
                  dd„«       Zeej
                  defd„«       «       Zy)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                  ó   — y)z3
        Yield Traversable objects in self
        Nr,   r"   s    r   ÚiterdirzTraversable.iterdirH   ó   � r   c                 óp   — | j                  d«      5 }|j                  «       cddd«       S # 1 sw Y   yxY w)z0
        Read contents of self as bytes
        ÚrbN©ÚopenÚread)r   Ústrms     r   Ú
read_byteszTraversable.read_bytesN   s/   € ð �Y‰Y�t‹_ð 	 Ø—9‘9“;÷	÷ 	ò 	ús   ’,¬5NÚencodingc                 ór   — | j                  |¬«      5 }|j                  «       cddd«       S # 1 sw Y   yxY w)z/
        Read contents of self as text
        )r;   Nr6   )r   r;   r9   s      r   Ú	read_textzTraversable.read_textU   s2   € ð �Y‰Y ˆYÓ)ð 	¨TØ—9‘9“;÷	÷ 	ò 	ús   “-­6c                  ó   — y)z4
        Return True if self is a directory
        Nr,   r"   s    r   Úis_dirzTraversable.is_dir\   r3   r   c                  ó   — y)z/
        Return True if self is a file
        Nr,   r"   s    r   Úis_filezTraversable.is_fileb   r3   r   Údescendantsc                 óL  ‡— |s| S t         j                  j                  d„ t        t        j
                  |«      D «       «      }t        |«      Šˆfd„| j                  «       D «       }	 t        |«      } |j                  |Ž S # t        $ r t        d‰t        |«      «      ‚w xY w)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   ó4   K  — | ]  }|j                   –— Œ y ­w©N)Úparts)Ú.0r   s     r   ú	<genexpr>z'Traversable.joinpath.<locals>.<genexpr>r   s   è ø€ ò .
ØˆD�J�Jñ.
ùó   ‚c              3   óB   •K  — | ]  }|j                   ‰k(  sŒ|–— Œ y ­wrE   ©Úname)rG   ÚtraversableÚtargets     €r   rH   z'Traversable.joinpath.<locals>.<genexpr>v   s$   øè ø€ ò 
Ø'¸[×=MÑ=MÐQWÓ=WŒKñ
ùs   ƒ˜z"Target not found during traversal.)Ú	itertoolsÚchainÚfrom_iterableÚmapÚpathlibÚPurePosixPathÚnextr2   ÚStopIterationr/   ÚlistÚjoinpath)r   rB   ÚnamesÚmatchesÚmatchrN   s        @r   rX   zTraversable.joinpathh   s¥   ø€ ñ ØˆKÜ—‘×-Ñ-ñ .
Ü#&¤w×'<Ñ'<¸kÓ#Jô.
ó 
ˆô �e“ˆó
Ø+/¯<©<«>ô
ˆð	Ü˜“MˆEð
 ˆu�~‰~˜uÐ%Ð%øô	 ò 	Ü Ø4°f¼dÀ5»kóð ð	ús   Á)B Â B#Úchildc                 ó$   — | j                  |«      S )z2
        Return Traversable child in self
        )rX   )r   r\   s     r   Ú__truediv__zTraversable.__truediv__�   s   € ð �}‰}˜UÓ#Ð#r   c                  ó   — y)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   r7   zTraversable.open‡   r3   r   c                  ó   — y)zM
        The base name of this object without any parent references.
        Nr,   r"   s    r   rL   zTraversable.name‘   r3   r   rE   )Úr)r$   r%   r&   r'   r(   r)   r   r2   Úbytesr:   r	   r+   r=   r*   r?   rA   ÚStrPathrX   r^   r7   ÚpropertyrL   r,   r   r   r   r   >   sû   „ ñð 	×Ñð˜ -Ñ0ò ó ðð
˜Eó ñ (¨3¡-ð ¸3ó ð 	×Ñð˜ò ó ðð
 	×Ñð˜ò ó ðð
& Wð &°ó &ð2$ ð $¨]ó $ð 	×Ñòó ðð Ø×Ñð�cò ó ó ñr   r   c                   óŒ   — e Zd ZdZej
                  dd„«       Zdedej                  fd„Z
dedefd„Zdedefd„Zdee   fd	„Zy
)r   zI
    The required interface for providing traversable
    resources.
    r   c                  ó   — y)z3Return a Traversable object for the loaded package.Nr,   r"   s    r   ÚfileszTraversableResources.filesŸ   r3   r   r   c                 ó^   — | j                  «       j                  |«      j                  d«      S )Nr5   )rj   rX   r7   r   s     r   r   z"TraversableResources.open_resource£   s$   € Ø�z‰z‹|×$Ñ$ XÓ.×3Ñ3°DÓ9Ð9r   c                 ó   — t        |«      ‚rE   r   r   s     r   r   z"TraversableResources.resource_path¦   s   € Ü Ó)Ð)r   r   c                 ó\   — | j                  «       j                  |«      j                  «       S rE   )rj   rX   rA   r   s     r   r    z TraversableResources.is_resource©   s"   € Ø�z‰z‹|×$Ñ$ TÓ*×2Ñ2Ó4Ð4r   c                 óL   — d„ | j                  «       j                  «       D «       S )Nc              3   ó4   K  — | ]  }|j                   –— Œ y ­wrE   rK   )rG   Úitems     r   rH   z0TraversableResources.contents.<locals>.<genexpr>­   s   è ø€ Ò=˜d�—	•	Ñ=ùrI   )rj   r2   r"   s    r   r#   zTraversableResources.contents¬   s   € Ù= d§j¡j£l×&:Ñ&:Ó&<Ô=Ð=r   N)r   r   )r$   r%   r&   r'   r(   r)   rj   rf   ÚioÚBufferedReaderr   r   r   r   r*   r    r   r+   r#   r,   r   r   r   r   ™   sr   „ ñð
 	×ÑòBó ðBð: gð :°"×2CÑ2Có :ð* cð *¨hó *ð5 ð 5¨Dó 5ð>˜( 3™-ô >r   r   )r(   rq   rO   ÚosrS   Útypingr   r   r   r   r   r   r	   r
   r   r   r+   ÚPathLikerf   Ú__all__ÚABCMetar   Ú	Exceptionr/   r   r   r,   r   r   ú<module>ry      sŠ   ðÛ 
Û 	Û Û 	Û ß N× NÑ Nß .Ý ð ��R—[‘[ Ñ%Ð%Ñ
&€â
C€ô' ˜sŸ{™{õ ' ôT	�Yô 	ð ôW�(ó Wó ðWôt>˜>õ >r   