
    Di                        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mZ d dl	m
Z
 d dl	mZ d dl	mZ d dl	mZ  G d d	      Zy)
    )annotationsN)TracebackType)Any)cast)ClassVar)IOc                      e Zd ZU  ej                         Zded<   g Zded<   dZded<   ddZ	dd	Z
dd
Z	 	 	 	 	 	 	 	 ddZedd       Zy)NamedTemporaryFilePoolzClassVar[threading.Lock]_lockzClassVar[list[str]]_pathFzClassVar[bool]_registeredc                   || _         d | _        | j                  j                  5  | j                  j                  s:t        j                  | j                  j                        }d| j                  _        d d d        y # 1 sw Y   y xY w)NT)kwargs_file	__class__r   r   atexitregistercleanup)selfr   _s      b/home/ubuntu/crypto_trading_bot/.venv/lib/python3.12/site-packages/optuna/testing/tempfile_pool.py__init__zNamedTemporaryFilePool.__init__   sc    15
^^!! 	2>>--OODNN$:$:;-1*	2 	2 	2s   AA??Bc                "    | j                         S N)tempfile)r   s    r   	__enter__z NamedTemporaryFilePool.__enter__    s    }}    c                H   t        dt        j                  dddi| j                        }|| _        | j
                  j                  5  | j
                  j                  j                  |j                         d d d        | j                  S # 1 sw Y   | j                  S xY w)NIO[bytes] | IO[str]deleteF )
r   r   NamedTemporaryFiler   r   r   r   r   appendname)r   fs     r   r   zNamedTemporaryFilePool.tempfile#   s}    &(C(C(`5(`TXT_T_(`a
^^!! 	0NN  ''/	0zz	0zzs   	0BB!c                R    | j                   | j                   j                          y y r   )r   close)r   exc_typeexc_valexc_tbs       r   __exit__zNamedTemporaryFilePool.__exit__*   s#     ::!JJ "r   c                    | j                   5  t        j                  | j                        }g | _        d d d        D ]  }	 t        j                  |        y # 1 sw Y   'xY w# t
        t        f$ r Y 9w xY wr   )r   copyr   osunlinkFileNotFoundErrorPermissionError)clspathps      r   r   zNamedTemporaryFilePool.cleanup3   sp    YY 	99SYY'DCI	  	A		!			 	 &7 s   'AA&A#&A87A8N)r   r   returnNone)r5   r   )r(   ztype[BaseException]r)   BaseExceptionr*   r   r5   r6   )r5   r6   )__name__
__module____qualname__	threadingLockr   __annotations__r   r   r   r   r   r+   classmethodr   r!   r   r   r
   r
      sy    &4inn&6E#6!#E#"'K'2%  	
 
 	 	r   r
   )
__future__r   r   r-   r.   r   r;   typesr   typingr   r   r   r   r
   r!   r   r   <module>rB      s2    #   	       + +r   