§
    dŠtjJ  ã                   óö   — d Z ddlZddlZddlZddlmZ ddlmZ  G d„ d¦  «        Z G d„ de¦  «        Z		 ddl
Z	 	 	 	 	 	 dd„Zn# e$ r 	 	 	 	 	 	 dd„ZY nw xY wej        dk    rdZddlmZ d„ ZdS ddlmZ dS )z,
Backports of fixes for joblib dependencies
é    N)Úutil)Úbasenamec                   ó>   — e Zd ZdZd
d„Zd„ Zd„ Zd„ Zd„ Zd„ Z	d	„ Z
dS )ÚVersionúþBackport from deprecated distutils

    We maintain this backport to avoid introducing a new dependency on
    `packaging`.

    We might rexplore this choice in the future if all major Python projects
    introduce a dependency on packaging anyway.
    Nc                 ó8   — |r|                       |¦  «         d S d S ©N©Úparse©ÚselfÚvstrings     úN/var/www/html/CA-Chatbot/venv/lib/python3.11/site-packages/joblib/backports.pyÚ__init__zVersion.__init__   ó,   € Øð 	 Ø�JŠJ�wÑÔÐÐÐð	 ð 	 ó    c                 ó@   — | j         j        ›dt          | ¦  «        ›d�S )Nz ('z'))Ú	__class__Ú__name__Ústr©r   s    r   Ú__repr__zVersion.__repr__   s"   € Ø"œnÔ5Ð5Ð5µs¸4±y´y°y°yÐAÐAr   c                 óN   — |                       |¦  «        }|t          u r|S |dk    S ©Nr   ©Ú_cmpÚNotImplemented©r   ÚotherÚcs      r   Ú__eq__zVersion.__eq__   ó,   € Ø�IŠI�eÑÔˆØ•ÐÐØˆHØ�AŠvˆr   c                 óN   — |                       |¦  «        }|t          u r|S |dk     S r   r   r   s      r   Ú__lt__zVersion.__lt__#   ó,   € Ø�IŠI�eÑÔˆØ•ÐÐØˆHØ�1Šuˆr   c                 óN   — |                       |¦  «        }|t          u r|S |dk    S r   r   r   s      r   Ú__le__zVersion.__le__)   r"   r   c                 óN   — |                       |¦  «        }|t          u r|S |dk    S r   r   r   s      r   Ú__gt__zVersion.__gt__/   r%   r   c                 óN   — |                       |¦  «        }|t          u r|S |dk    S r   r   r   s      r   Ú__ge__zVersion.__ge__5   r"   r   r	   )r   Ú
__module__Ú__qualname__Ú__doc__r   r   r!   r$   r'   r)   r+   © r   r   r   r      s�   € € € € € ðð ð ð  ð  ð  ðBð Bð Bðð ð ðð ð ðð ð ðð ð ðð ð ð ð r   r   c                   ó^   — e Zd ZdZ ej        dej        ¦  «        Zd	d„Zd„ Z	d„ Z
d„ Zd„ ZdS )
ÚLooseVersionr   z(\d+ | [a-z]+ | \.)Nc                 ó8   — |r|                       |¦  «         d S d S r	   r
   r   s     r   r   zLooseVersion.__init__H   r   r   c                 óÚ   — || _         d„ | j                             |¦  «        D ¦   «         }t          |¦  «        D ](\  }}	 t	          |¦  «        ||<   Œ# t
          $ r Y Œ%w xY w|| _        d S )Nc                 ó"   — g | ]}|¯|d k    ¯
|‘ŒS )ú.r/   )Ú.0Úxs     r   ú
<listcomp>z&LooseVersion.parse.<locals>.<listcomp>Q   s#   € ÐTÐTÐT˜AÀQÐTÈ1ÐPSÊ8È8�aÈ8È8È8r   )r   Úcomponent_reÚsplitÚ	enumerateÚintÚ
ValueErrorÚversion)r   r   Ú
componentsÚiÚobjs        r   r   zLooseVersion.parseL   s�   € ð ˆŒØTÐT Ô!2×!8Ò!8¸Ñ!AÔ!AÐTÑTÔTˆ
Ý 
Ñ+Ô+ð 	ð 	‰FˆAˆsðÝ # C¡¤�
˜1‘�øÝð ð ð Ø�ðøøøð "ˆŒˆˆs   ÁAÁ
A!Á A!c                 ó   — | j         S r	   )r   r   s    r   Ú__str__zLooseVersion.__str__Z   s
   € ØŒ|Ðr   c                 ó&   — dt          | ¦  «        z  S )NzLooseVersion ('%s'))r   r   s    r   r   zLooseVersion.__repr__]   s   € Ø$¥s¨4¡y¤yÑ0Ð0r   c                 óô   — t          |t          ¦  «        rt          |¦  «        }nt          |t          ¦  «        st          S | j        |j        k    rdS | j        |j        k     rdS | j        |j        k    rdS d S )Nr   éÿÿÿÿé   )Ú
isinstancer   r1   r   r>   )r   r   s     r   r   zLooseVersion._cmp`   s   € Ý�e�SÑ!Ô!ð 	"Ý  Ñ'Ô'ˆEˆEÝ˜E¥<Ñ0Ô0ð 	"Ý!Ð!àŒ<˜5œ=Ò(Ð(Ø�1ØŒ<˜%œ-Ò'Ð'Ø�2ØŒ<˜%œ-Ò'Ð'Ø�1ð (Ð'r   r	   )r   r,   r-   r.   ÚreÚcompileÚVERBOSEr9   r   r   rC   r   r   r/   r   r   r1   r1   <   s†   € € € € € ðð ð �2”:Ð4°b´jÑAÔA€Lð ð  ð  ð  ð"ð "ð "ðð ð ð1ð 1ð 1ðð ð ð ð r   r1   Úuint8úr+ÚCFc                 ó6  — t          j        d                     |t          | ¦  «        t	          j        ¦   «         ¦  «        ¦  «         t          j        | |||||¬¦  «        }t          t          j	        ¦  «        dk     r||_
        |rddlm}  ||¦  «         |S )ab  Custom memmap constructor compatible with numpy.memmap.

        This function:
        - is a backport the numpy memmap offset fix (See
          https://github.com/numpy/numpy/pull/8443 for more details.
          The numpy fix is available starting numpy 1.13)
        - adds ``unlink_on_gc_collect``, which specifies  explicitly whether
          the process re-constructing the memmap owns a reference to the
          underlying file. If set to True, it adds a finalizer to the
          newly-created memmap that sends a maybe_unlink request for the
          memmaped file to resource_tracker.
        z?[MEMMAP READ] creating a memmap (shape {}, filename {}, pid {}))ÚdtypeÚmodeÚoffsetÚshapeÚorderz1.13rG   )Úadd_maybe_unlink_finalizer)r   ÚdebugÚformatr   ÚosÚgetpidÚnpÚmemmapr1   Ú__version__rR   Ú_memmapping_reducerrU   )	ÚfilenamerP   rQ   rR   rS   rT   Úunlink_on_gc_collectÚmmrU   s	            r   Úmake_memmapra   q   s´   € õ* 	Œ
ØM×TÒTØ•x Ñ)Ô)­2¬9©;¬;ñô ñ	
ô 	
ð 	
õ ŒYØ˜E¨°VÀ5ÐPUð
ñ 
ô 
ˆõ �œÑ'Ô'¨&Ò0Ð0ØˆBŒIØð 	+ØGÐGÐGÐGÐGÐGà&Ð& rÑ*Ô*Ð*Øˆ	r   c                 ó    — t          d¦  «        ‚)NzL'joblib.backports.make_memmap' should not be used if numpy is not installed.)ÚNotImplementedError)r^   rP   rQ   rR   rS   rT   r_   s          r   ra   ra   ˜   s   € õ "ð)ñ
ô 
ð 	
r   Únt)é   é   )Úreplacec                 óì   — d}d}d}||k     rh	 t          | |¦  «         dS # t          $ rB}t          |dd¦  «        t          v rt	          j        |¦  «         ||z  }|dz  }n‚ Y d}~nd}~ww xY w||k     °h‚ )z²Renames ``src`` into ``dst`` overwriting ``dst`` if it exists.

        On Windows os.replace can yield permission errors if executed by two
        different processes.
        rG   r   gü©ñÒMbP?ÚwinerrorNé   )rg   Ú	ExceptionÚgetattrÚaccess_denied_errorsÚtimeÚsleep)ÚsrcÚdstÚmax_sleep_timeÚtotal_sleep_timeÚ
sleep_timeÚexcs         r   Úconcurrency_safe_renamerv   ¬   s¸   € ð ˆØÐØˆ
Ø Ò/Ð/ð	Ý˜˜SÑ!Ô!Ð!Ø�øÝð ð ð Ý˜3 
¨DÑ1Ô1Õ5IÐIÐIÝ”J˜zÑ*Ô*Ð*Ø$¨
Ñ2Ð$Ø !‘O�J�Jàð �J�J�J�Jøøøøð	øøøð	  Ò/Ð/ð s   Ž   
A,ª8A'Á'A,)rL   rM   r   NrN   F)r.   rX   rI   rn   Úmultiprocessingr   Úos.pathr   r   r1   ÚnumpyrZ   ra   ÚImportErrorÚnamerm   rg   rv   r/   r   r   ú<module>r|      sŠ  ððð ð 
€	€	€	Ø 	€	€	€	Ø €€€Ø  Ð  Ð  Ð  Ð  Ð  Ø Ð Ð Ð Ð Ð ð-ð -ð -ð -ð -ñ -ô -ð -ð`/ð /ð /ð /ð /�7ñ /ô /ð /ðd6
ØÐÐÐð ØØØØØ"ð$ð $ð $ð $ð $øðJ ð 
ð 
ð 
ð ØØØØØ"ð
ð 
ð 
ð 
ð 
ð 
ð
øøøð" „7ˆd‚?€?à"ÐØÐÐÐÐÐðð ð ð ð ð. 6Ð5Ð5Ð5Ð5Ð5Ð5Ð5s   ·A ÁAÁA