Ë
    òT•j
  ã                   ó®   — d Z ddlZddlZddlZddlmZmZ ddlmZmZ  G d„ dej                  «      Z
 G d„ d	e«      Z G d
„ de«      Z G d„ dee
«      Zy)z+
Interface adapters for low-level readers.
é    N)ÚBinaryIOÚListé   )ÚTraversableÚTraversableResourcesc                   óâ   — e Zd ZdZeej                  defd„«       «       Zej                  de	d    fd„«       Z
ej                  de	e   fd„«       Zej                  dedefd„«       Zed„ «       Zy	)
ÚSimpleReaderzQ
    The minimum, low-level interface required from a resource
    provider.
    Úreturnc                  ó   — y)zP
        The name of the package for which this reader loads resources.
        N© ©Úselfs    ú1/usr/lib/python3.12/importlib/resources/simple.pyÚpackagezSimpleReader.package   ó   � ó    c                  ó   — y)zo
        Obtain an iterable of SimpleReader for available
        child containers (e.g. directories).
        Nr   r   s    r   ÚchildrenzSimpleReader.children   r   r   c                  ó   — y)zL
        Obtain available named resources for this virtual package.
        Nr   r   s    r   Ú	resourceszSimpleReader.resources!   r   r   Úresourcec                  ó   — y)z:
        Obtain a File-like for a named resource.
        Nr   )r   r   s     r   Úopen_binaryzSimpleReader.open_binary'   r   r   c                 ó>   — | j                   j                  d«      d   S )Nú.éÿÿÿÿ)r   Úsplitr   s    r   ÚnamezSimpleReader.name-   s   € à�|‰|×!Ñ! #Ó& rÑ*Ð*r   N)Ú__name__Ú
__module__Ú__qualname__Ú__doc__ÚpropertyÚabcÚabstractmethodÚstrr   r   r   r   r   r   r   r   r   r   r	   r	      s·   „ ñð
 Ø×Ñð˜ò ó ó ðð
 	×Ñð˜$˜~Ñ.ò ó ðð 	×Ñð˜4 ™9ò ó ðð
 	×Ñð Cð ¨Hò ó ðð
 ñ+ó ñ+r   r	   c                   ó4   — e Zd ZdZdefd„Zd„ Zd„ Zd„ Zd„ Z	y)	ÚResourceContainerzI
    Traversable container for a package's resources via its reader.
    Úreaderc                 ó   — || _         y ©N)r)   )r   r)   s     r   Ú__init__zResourceContainer.__init__7   s	   € Øˆ�r   c                  ó   — y©NTr   r   s    r   Úis_dirzResourceContainer.is_dir:   ó   € Ør   c                  ó   — y©NFr   r   s    r   Úis_filezResourceContainer.is_file=   ó   € Ør   c                 ó¾   ‡ — ˆ fd„‰ j                   j                  D «       }t        t        ‰ j                   j	                  «       «      }t        j                  ||«      S )Nc              3   ó6   •K  — | ]  }t        ‰|«      –— Œ y ­wr+   )ÚResourceHandle)Ú.0r   r   s     €r   ú	<genexpr>z,ResourceContainer.iterdir.<locals>.<genexpr>A   s   øè ø€ ÒN°”  d×+ÑNùs   ƒ)r)   r   Úmapr(   r   Ú	itertoolsÚchain)r   ÚfilesÚdirss   `  r   ÚiterdirzResourceContainer.iterdir@   sB   ø€ ÛN¸¿¹×8MÑ8MÔNˆÜÔ$ d§k¡k×&:Ñ&:Ó&<Ó=ˆÜ�‰˜u dÓ+Ð+r   c                 ó   — t        «       ‚r+   )ÚIsADirectoryError)r   ÚargsÚkwargss      r   ÚopenzResourceContainer.openE   s   € ÜÓ!Ð!r   N)
r   r    r!   r"   r	   r,   r/   r3   r?   rD   r   r   r   r(   r(   2   s'   „ ñð˜|ó òòò,ó
"r   r(   c                   ó:   — e Zd ZdZdedefd„Zd„ Zd„ Zd
d„Z	d„ Z
y	)r7   z9
    Handle to a named resource in a ResourceReader.
    Úparentr   c                 ó    — || _         || _        y r+   )rF   r   )r   rF   r   s      r   r,   zResourceHandle.__init__N   s   € ØˆŒØˆ�	r   c                  ó   — yr.   r   r   s    r   r3   zResourceHandle.is_fileR   r0   r   c                  ó   — yr2   r   r   s    r   r/   zResourceHandle.is_dirU   r4   r   c                 óž   — | j                   j                  j                  | j                  «      }d|vrt	        j
                  |g|¢­i |¤Ž}|S )NÚb)rF   r)   r   r   ÚioÚTextIOWrapper)r   ÚmoderB   rC   Ústreams        r   rD   zResourceHandle.openX   sF   € Ø—‘×#Ñ#×/Ñ/°·	±	Ó:ˆØ�d‰?Ü×%Ñ% fÐ>¨tÒ>°vÑ>ˆFØˆr   c                 ó   — t        d«      ‚)NzCannot traverse into a resource)ÚRuntimeError)r   r   s     r   ÚjoinpathzResourceHandle.joinpath^   s   € ÜÐ<Ó=Ð=r   N)Úr)r   r    r!   r"   r(   r&   r,   r3   r/   rD   rR   r   r   r   r7   r7   I   s/   „ ñðÐ0ð ¸ó òòóó>r   r7   c                   ó   — e Zd ZdZd„ Zy)ÚTraversableReaderzÄ
    A TraversableResources based on SimpleReader. Resource providers
    may derive from this class to provide the TraversableResources
    interface by supplying the SimpleReader interface.
    c                 ó   — t        | «      S r+   )r(   r   s    r   r=   zTraversableReader.filesi   s   € Ü  Ó&Ð&r   N)r   r    r!   r"   r=   r   r   r   rU   rU   b   s   „ ñó'r   rU   )r"   r$   rL   r;   Útypingr   r   r   r   ÚABCr	   r(   r7   rU   r   r   r   ú<module>rY      sS   ðñó Û 	Û ß !ç 2ô"+�3—7‘7ô "+ôJ"˜ô "ô.>�[ô >ô2'Ð,¨lõ 'r   