§
    dŠtjj  ã                  ó  — d dl m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 ddlmZ ddlmZ d„ Z G d	„ d
ej        ¦  «        Z G d„ dej        ¦  «        Z G d„ dej        ¦  «        Z G d„ dej        ¦  «        Zd„ ZdS )é    )ÚannotationsN)ÚIteratoré   )Úabc)Úonly)ÚZipPathc                óZ   — t          t          j                             | ¦  «        ¦  «        S ©N)ÚiterÚcollectionsÚOrderedDictÚfromkeys)Úitemss    úY/var/www/html/CA-Chatbot/venv/lib/python3.11/site-packages/importlib_resources/readers.pyÚremove_duplicatesr      s!   € Ý•Ô'×0Ò0°Ñ7Ô7Ñ8Ô8Ð8ó    c                  ó    — e Zd Zd„ Zd„ Zd„ ZdS )Ú
FileReaderc                óL   — t          j        |j        ¦  «        j        | _        d S r
   )ÚpathlibÚPathÚpathÚparent)ÚselfÚloaders     r   Ú__init__zFileReader.__init__   s   € Ý”L ¤Ñ-Ô-Ô4ˆŒ	ˆ	ˆ	r   c                óP   — t          | j                             |¦  «        ¦  «        S ©z{
        Return the file system path to prevent
        `resources.path()` from creating a temporary
        copy.
        ©Ústrr   Újoinpath©r   Úresources     r   Úresource_pathzFileReader.resource_path   ó"   € õ �4”9×%Ò% hÑ/Ô/Ñ0Ô0Ð0r   c                ó   — | j         S r
   ©r   ©r   s    r   ÚfileszFileReader.files!   ó
   € ØŒyÐr   N)Ú__name__Ú
__module__Ú__qualname__r   r$   r)   © r   r   r   r      sA   € € € € € ð5ð 5ð 5ð1ð 1ð 1ðð ð ð ð r   r   c                  ó0   ‡ — e Zd Zd„ Zˆ fd„Zd„ Zd„ Zˆ xZS )Ú	ZipReaderc                óà   — |j                              dd¦  «        | _         |                     |¦  «        r,|                     d¦  «        \  }}}| xj         |dz   z  c_         |j        | _        d S )Nú\ú/ú.)ÚprefixÚreplaceÚ
is_packageÚ
rpartitionÚarchive)r   r   ÚmoduleÚ_Únames        r   r   zZipReader.__init__&   sk   € Ø”m×+Ò+¨D°#Ñ6Ô6ˆŒØ×Ò˜VÑ$Ô$ð 	&Ø×*Ò*¨3Ñ/Ô/‰JˆAˆq�$ØˆKŒK˜4 #™:Ñ%ˆKŒKØ”~ˆŒˆˆr   c                ó    •— 	 t          ¦   «                              |¦  «        S # t          $ r}t          |j        d         ¦  «        ‚d }~ww xY w©Nr   )ÚsuperÚopen_resourceÚKeyErrorÚFileNotFoundErrorÚargs)r   r#   ÚexcÚ	__class__s      €r   r@   zZipReader.open_resource-   sS   ø€ ð	1Ý‘7”7×(Ò(¨Ñ2Ô2Ð2øÝð 	1ð 	1ð 	1Ý# C¤H¨Q¤KÑ0Ô0Ð0øøøøð	1øøøs   ƒ $ ¤
A®AÁAc                ó    — |                       ¦   «                              |¦  «        }|                     ¦   «         o|                     ¦   «         S )zf
        Workaround for `zipfile.Path.is_file` returning true
        for non-existent paths.
        )r)   r!   Úis_fileÚexists)r   r   Útargets      r   Úis_resourcezZipReader.is_resource3   s<   € ð
 —’‘”×&Ò& tÑ,Ô,ˆØ�~Š~ÑÔÐ3 F§M¢M¡O¤OÐ3r   c                ó6   — t          | j        | j        ¦  «        S r
   )r   r9   r5   r(   s    r   r)   zZipReader.files;   s   € Ý�t”| T¤[Ñ1Ô1Ð1r   )r+   r,   r-   r   r@   rJ   r)   Ú__classcell__©rE   s   @r   r0   r0   %   se   ø€ € € € € ð&ð &ð &ð1ð 1ð 1ð 1ð 1ð4ð 4ð 4ð2ð 2ð 2ð 2ð 2ð 2ð 2r   r0   c                  ó~   ‡ — e Zd ZdZd„ Zd„ Zd„ Zd„ Zd„ Zd„ Z	ˆ fd„Z
ed	„ ¦   «         Zd
„ Zed„ ¦   «         Zd„ Zˆ xZS )ÚMultiplexedPathzÄ
    Given a series of Traversable objects, implement a merged
    version of the interface across all objects. Useful for
    namespace packages which may be multihomed at a single
    name.
    c                óø   — t          t          t          t          |¦  «        ¦  «        ¦  «        | _        | j        sd}t          |¦  «        ‚t          d„ | j        D ¦   «         ¦  «        st          d¦  «        ‚d S )Nz.MultiplexedPath must contain at least one pathc              3  ó>   K  — | ]}|                      ¦   «         V — Œd S r
   ©Úis_dir©Ú.0r   s     r   ú	<genexpr>z+MultiplexedPath.__init__.<locals>.<genexpr>L   s*   è è € Ð9Ð9 T�4—;’;‘=”=Ð9Ð9Ð9Ð9Ð9Ð9r   z)MultiplexedPath only supports directories)ÚlistÚmapÚ_ensure_traversabler   Ú_pathsrB   ÚallÚNotADirectoryError)r   ÚpathsÚmessages      r   r   zMultiplexedPath.__init__G   s   € Ý�3Õ2Õ4EÀeÑ4LÔ4LÑMÔMÑNÔNˆŒØŒ{ð 	-ØFˆGÝ# GÑ,Ô,Ð,ÝÐ9Ð9¨T¬[Ð9Ñ9Ô9Ñ9Ô9ð 	RÝ$Ð%PÑQÔQÐQð	Rð 	Rr   c                óÔ   — d„ | j         D ¦   «         }t          j        d¦  «        }t          j        t          ||¬¦  «        |¬¦  «        }t          | j        d„ |D ¦   «         ¦  «        S )Nc              3  óH   K  — | ]}|                      ¦   «         D ]}|V — ŒŒd S r
   )Úiterdir)rU   r   Úchilds      r   rV   z*MultiplexedPath.iterdir.<locals>.<genexpr>P   s7   è è € ÐNÐN˜d¸t¿|º|¹~¼~ÐNÐN°e�EÐNÐNÐNÐNÐNÐNÐNr   r<   )Úkeyc              3  ó    K  — | ]	\  }}|V — Œ
d S r
   r.   )rU   r<   Úlocss      r   rV   z*MultiplexedPath.iterdir.<locals>.<genexpr>S   s&   è è € Ð!@Ð!@©:¨4° $Ð!@Ð!@Ð!@Ð!@Ð!@Ð!@r   )rZ   ÚoperatorÚ
attrgetterÚ	itertoolsÚgroupbyÚsortedrX   Ú_follow)r   ÚchildrenÚby_nameÚgroupss       r   ra   zMultiplexedPath.iterdirO   sj   € ØNÐN d¤kÐNÑNÔNˆÝÔ% fÑ-Ô-ˆÝÔ"¥6¨(¸Ð#@Ñ#@Ô#@ÀgÐNÑNÔNˆÝ�4”<Ð!@Ð!@¸Ð!@Ñ!@Ô!@ÑAÔAÐAr   c                ó&   — t          | › d�¦  «        ‚©Nz is not a file©rB   r(   s    r   Ú
read_byteszMultiplexedPath.read_bytesU   ó   € Ý 4Ð 7Ð 7Ð 7Ñ8Ô8Ð8r   c                ó&   — t          | › d�¦  «        ‚rp   rq   ©r   rC   Úkwargss      r   Ú	read_textzMultiplexedPath.read_textX   rs   r   c                ó   — dS )NTr.   r(   s    r   rS   zMultiplexedPath.is_dir[   s   € Øˆtr   c                ó   — dS )NFr.   r(   s    r   rG   zMultiplexedPath.is_file^   s   € Øˆur   c                ó†   •— 	  t          ¦   «         j        |Ž S # t          j        $ r  | j        d         j        |Ž cY S w xY wr>   )r?   r!   r   ÚTraversalErrorrZ   )r   ÚdescendantsrE   s     €r   r!   zMultiplexedPath.joinpatha   sX   ø€ ð	9Ø#•5‘7”7Ô# [Ð1Ð1øÝÔ!ð 	9ð 	9ð 	9ð +�4”;˜q”>Ô*¨KÐ8Ð8Ð8Ð8ð	9øøøs   ƒ ™$A ¿A c                óÂ   — t          j        |d¦  «        \  }}}	 t          |¦  «        S # t          $ r* 	  | |Ž cY S # t          $ r t          |¦  «        cY cY S w xY ww xY w)zö
        Construct a MultiplexedPath if needed.

        If children contains a sole element, return it.
        Otherwise, return a MultiplexedPath of the items.
        Unless one of the items is not a Directory, then return the first.
        é   )rh   Úteer   Ú
ValueErrorr\   Únext)Úclsrl   ÚsubdirsÚone_dirÚone_files        r   rk   zMultiplexedPath._followi   s’   € õ &/¤]°8¸QÑ%?Ô%?Ñ"ˆ�˜(ð	&Ý˜‘=”=Ð øÝð 	&ð 	&ð 	&ð&Ø�s˜G�}Ð$Ð$Ð$øÝ%ð &ð &ð &Ý˜H‘~”~Ð%Ð%Ð%Ð%Ð%ð&øøøð	&øøøs)   ›* ª
Aµ<¹A¼AÁAÁAÁAc                ó&   — t          | › d�¦  «        ‚rp   rq   ru   s      r   ÚopenzMultiplexedPath.open|   rs   r   c                ó&   — | j         d         j        S r>   )rZ   r<   r(   s    r   r<   zMultiplexedPath.name   s   € àŒ{˜1Œ~Ô"Ð"r   c                óV   — d                      d„ | j        D ¦   «         ¦  «        }d|› d�S )Nz, c              3  ó"   K  — | ]
}d |› d �V — ŒdS )ú'Nr.   rT   s     r   rV   z+MultiplexedPath.__repr__.<locals>.<genexpr>„   s*   è è € Ð>Ð>¨$˜+˜d˜+˜+˜+Ð>Ð>Ð>Ð>Ð>Ð>r   zMultiplexedPath(ú))ÚjoinrZ   )r   r]   s     r   Ú__repr__zMultiplexedPath.__repr__ƒ   s5   € Ø—	’	Ð>Ð>°$´+Ð>Ñ>Ô>Ñ>Ô>ˆØ* %Ð*Ð*Ð*Ð*r   )r+   r,   r-   Ú__doc__r   ra   rr   rw   rS   rG   r!   Úclassmethodrk   r‡   Úpropertyr<   rŽ   rL   rM   s   @r   rO   rO   ?   sö   ø€ € € € € ðð ðRð Rð RðBð Bð Bð9ð 9ð 9ð9ð 9ð 9ðð ð ðð ð ð9ð 9ð 9ð 9ð 9ð ð&ð &ñ „[ð&ð$9ð 9ð 9ð ð#ð #ñ „Xð#ð+ð +ð +ð +ð +ð +ð +r   rO   c                  óh   — e Zd Zd„ Zedd„¦   «         Zedd„¦   «         Zedd	„¦   «         Zd
„ Z	d„ Z
dS )ÚNamespaceReaderc           	     ó®   — dt          |¦  «        vrt          d¦  «        ‚t          t          t          t          | j        |¦  «        ¦  «        Ž | _        d S )NÚNamespacePathzInvalid path)r    r€   rO   ÚfilterÚboolrX   Ú_resolver   )r   Únamespace_paths     r   r   zNamespaceReader.__init__‰   sI   € Ø¥# nÑ"5Ô"5Ð5Ð5Ý˜^Ñ,Ô,Ð,Ý#¥V­Dµ#°d´mÀ^Ñ2TÔ2TÑ%UÔ%UÐVˆŒ	ˆ	ˆ	r   Úreturnúabc.Traversable | Nonec                ó`   — d„ |                       |¦  «        D ¦   «         }t          |d¦  «        S )aØ  
        Given an item from a namespace path, resolve it to a Traversable.

        path_str might be a directory on the filesystem or a path to a
        zipfile plus the path within the zipfile, e.g. ``/foo/bar`` or
        ``/foo/baz.zip/inner_dir`` or ``foo\baz.zip\inner_dir\sub``.

        path_str might also be a sentinel used by editable packages to
        trigger other behaviors (see python/importlib_resources#311).
        In that case, return None.
        c              3  óB   K  — | ]}|                      ¦   «         ¯|V — Œd S r
   rR   )rU   Úcands     r   rV   z+NamespaceReader._resolve.<locals>.<genexpr>›   s/   è è € ÐQÐQ˜À4Ç;Â;Á=Ä=ÐQ�ÐQÐQÐQÐQÐQÐQr   N)Ú_candidate_pathsr�   )r‚   Úpath_strÚdirss      r   r˜   zNamespaceReader._resolveŽ   s6   € ð RÐQ ×!5Ò!5°hÑ!?Ô!?ÐQÑQÔQˆÝ�D˜$ÑÔÐr   r    r    úIterator[abc.Traversable]c              #  ól   K  — t          j        |¦  «        V — |                      |¦  «        E d {V —† d S r
   )r   r   Ú_resolve_zip_path)r‚   r    s     r   rŸ   z NamespaceReader._candidate_pathsž   sH   è è € åŒl˜8Ñ$Ô$Ð$Ð$Ð$Ø×(Ò(¨Ñ2Ô2Ð2Ð2Ð2Ð2Ð2Ð2Ð2Ð2Ð2r   c              #  óØ  K  — t          t          t          j        d| ¦  «        ¦  «        ¦  «        D ]·}t	          j        t          t          t          t          ¦  «        5  | | 
                    ¦   «         d …                              dd¦  «        dz   }t          | d |                     ¦   «         …         |                     d¦  «        ¦  «        V — d d d ¦  «         n# 1 swxY w Y   Œ¸d S )Nz[\\/]r2   r3   )ÚreversedrW   ÚreÚfinditerÚ
contextlibÚsuppressrB   ÚIsADirectoryErrorr\   ÚPermissionErrorÚendr6   r   ÚstartÚlstrip)r    ÚmatchÚinners      r   r¤   z!NamespaceReader._resolve_zip_path£   s%  è è € å�d¥2¤;¨x¸Ñ#BÔ#BÑCÔCÑDÔDð 	Lð 	LˆEÝÔ$Ý!Ý!Ý"Ýñ	ô ð Lð Lð ! §¢¡¤  Ô/×7Ò7¸¸cÑBÔBÀSÑH�Ý˜h ¨¯ª©¬ Ô7¸¿ºÀcÑ9JÔ9JÑKÔKÐKÐKÐKðLð Lð Lñ Lô Lð Lð Lð Lð Lð Lð Løøøð Lð Lð Lð Løð	Lð 	Ls   ÁA3CÃC"	Ã%C"	c                óP   — t          | j                             |¦  «        ¦  «        S r   r   r"   s     r   r$   zNamespaceReader.resource_path¯   r%   r   c                ó   — | j         S r
   r'   r(   s    r   r)   zNamespaceReader.files·   r*   r   N)rš   r›   )r    r    rš   r¢   )r    r    )r+   r,   r-   r   r�   r˜   rŸ   Ústaticmethodr¤   r$   r)   r.   r   r   r“   r“   ˆ   s¨   € € € € € ðWð Wð Wð
 ð ð  ð  ñ „[ð ð ð3ð 3ð 3ñ „[ð3ð ð	Lð 	Lð 	Lñ „\ð	Lð1ð 1ð 1ðð ð ð ð r   r“   c                ó�   — t          | t          ¦  «        s| S t          j        dt          d¬¦  «         t          j        | ¦  «        S )zk
    Convert deprecated string arguments to traversables (pathlib.Path).

    Remove with Python 3.15.
    z<String arguments are deprecated. Pass a Traversable instead.r~   )Ú
stacklevel)Ú
isinstancer    ÚwarningsÚwarnÚDeprecationWarningr   r   r'   s    r   rY   rY   »   sO   € õ �d�CÑ Ô ð Øˆå„MØFÝØðñ ô ð õ Œ<˜ÑÔÐr   )Ú
__future__r   r   r©   rh   rf   r   r§   r¸   Úcollections.abcr   Ú r   Ú
_itertoolsr   Úcompat.py39r   r   ÚTraversableResourcesr   r0   ÚTraversablerO   r“   rY   r.   r   r   ú<module>rÂ      sŒ  ðØ "Ð "Ð "Ð "Ð "Ð "à Ð Ð Ð Ø Ð Ð Ð Ø Ð Ð Ð Ø €€€Ø €€€Ø 	€	€	€	Ø €€€Ø $Ð $Ð $Ð $Ð $Ð $à Ð Ð Ð Ð Ð Ø Ð Ð Ð Ð Ð Ø  Ð  Ð  Ð  Ð  Ð  ð9ð 9ð 9ðð ð ð ð �Ô)ñ ô ð ð 2ð 2ð 2ð 2ð 2�Ô(ñ 2ô 2ð 2ð4F+ð F+ð F+ð F+ð F+�c”oñ F+ô F+ð F+ðR0ð 0ð 0ð 0ð 0�cÔ.ñ 0ô 0ð 0ðfð ð ð ð r   