
    Q-j                        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 erd dlmZ  G d	 d
      Zy)    )annotationsN)Any)cast)ClassVar)IO)TYPE_CHECKING)TracebackTypec                      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      j/Users/jameslopez/projects/TradingBot25/.venv/lib/python3.12/site-packages/optuna/testing/tempfile_pool.py__init__zNamedTemporaryFilePool.__init__   sZ    15
^^!!>>--OODNN$:$:;-1* "!!s   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'   sx    &(C(C(`5(`TXT_T_(`a
^^!!NN  ''/ "zz "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.cleanup7   sc    YY99SYY'DCI  A		! 	 Y &7 s   'AA&A#&A87A8N)r   r   returnNone)r6   r    )r)   ztype[BaseException]r*   BaseExceptionr+   r	   r6   r7   )r6   r7   )__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<   typingr   r   r   r   r   typesr	   r   r"   r   r   <module>rC      s:    #   	         #+ +r   