§
    �Štj-  ã                   ó8   — d dl Z d dlZd dlZ G d„ d¦  «        ZdS )é    Nc                   ó>   — e Zd ZdZd	d
d„Zdedz  fd„Zd
d„Zd
d„ZdS )Ú	FileBatonz0A primitive, file-based synchronization utility.çš™™™™™¹?NÚreturnc                 ó>   — || _         || _        d| _        || _        dS )an  
        Create a new :class:`FileBaton`.

        Args:
            lock_file_path: The path to the file used for locking.
            wait_seconds: The seconds to periodically sleep (spin) when
                calling ``wait()``.
            warn_after_seconds: The seconds to wait before showing
                lock file path to warn existing lock file.
        N)Úlock_file_pathÚwait_secondsÚfdÚwarn_after_seconds)Úselfr   r	   r   s       úT/var/www/html/CA-Chatbot/venv/lib/python3.11/site-packages/torch/utils/file_baton.pyÚ__init__zFileBaton.__init__
   s)   € ð -ˆÔØ(ˆÔØˆŒØ"4ˆÔÐÐó    c                 ó–   — 	 t          j        | j        t           j        t           j        z  ¦  «        | _        dS # t          $ r Y dS w xY w)z–
        Try to atomically create a file under exclusive access.

        Returns:
            True if the file could be created, else False.
        TF)ÚosÚopenr   ÚO_CREATÚO_EXCLr
   ÚFileExistsError©r   s    r   Útry_acquirezFileBaton.try_acquire   sM   € ð	Ý”g˜dÔ1µ2´:ÅÄ	Ñ3IÑJÔJˆDŒGØ�4øÝð 	ð 	ð 	Ø�5�5ð	øøøs   ‚6: º
AÁAc                 ó˜  — d}t          j         ¦   «         }t          j                             | j        ¦  «        r�t          j        | j        ¦  «         | j        �Jt          j         ¦   «         |z
  | j        k    r+|s)t          j	        d| j        › d| j        › d�d¬¦  «         d}t          j                             | j        ¦  «        °ŽdS dS )	zÆ
        Periodically sleeps for a certain amount until the baton is released.

        The amount of time slept depends on the ``wait_seconds`` parameter
        passed to the constructor.
        FNzWaited on lock file "z" for z	 seconds.é   )Ú
stacklevelT)
Útimer   ÚpathÚexistsr   Úsleepr	   r   ÚwarningsÚwarn)r   Ú
has_warnedÚ
start_times      r   ÚwaitzFileBaton.wait'   sê   € ð ˆ
å”Y‘[”[ˆ
ÝŒg�nŠn˜TÔ0Ñ1Ô1ð 	&ÝŒJ�tÔ(Ñ)Ô)Ð)àÔ&Ð2Ý”9‘;”; Ñ+¨dÔ.EÒEÐEÈjÐEÝ”Mð #H¸$Ô:Mð #Hð #HØ%)Ô%<ð#Hð #Hð #HØTUðWñ Wô Wð Wà!%�Jõ Œg�nŠn˜TÔ0Ñ1Ô1ð 	&ð 	&ð 	&ð 	&ð 	&r   c                 óx   — | j         �t          j        | j         ¦  «         t          j        | j        ¦  «         dS )z'Release the baton and removes its file.N)r
   r   ÚcloseÚremover   r   s    r   ÚreleasezFileBaton.release:   s5   € àŒ7ÐÝŒH�T”WÑÔÐå
Œ	�$Ô%Ñ&Ô&Ð&Ð&Ð&r   )r   N)r   N)	Ú__name__Ú
__module__Ú__qualname__Ú__doc__r   Úboolr   r#   r'   © r   r   r   r      sz   € € € € € Ø:Ð:ð5ð 5ð 5ð 5ð 5ð ˜T D™[ð ð ð ð ð&ð &ð &ð &ð&'ð 'ð 'ð 'ð 'ð 'r   r   )r   r   r   r   r-   r   r   ú<module>r.      sR   ðà 	€	€	€	Ø €€€Ø €€€ð8'ð 8'ð 8'ð 8'ð 8'ñ 8'ô 8'ð 8'ð 8'ð 8'r   