
    Pi                         d dl Z d dlZd dlmZmZ  ee j        d          Z ee j        d          ZdZ	dZ
 G d de          Z G d d	e          Z G d
 dee          ZdS )    N)AnyDictw      c                   0    e Zd ZeZeZddefdZd Zd ZdS )suppress_stdout_stderrTdisablec                     || _         d S N)r
   )selfr
   s     d/home/jaya/work/projects/VOICE-AGENT/VIET/agent-env/lib/python3.11/site-packages/llama_cpp/_utils.py__init__zsuppress_stdout_stderr.__init__   s        c                 <   | j         r| S t          | _        t          | _        | j                            | j                  | _        | j                            | j                  | _        | j	        j
        | _        | j	        j        | _        | j                            t                                          | j                   | j                            t"                                          | j                   t          | j	        _
        t"          | j	        _        | S r   )r
   STDOUT_FILENOold_stdout_fileno_undupSTDERR_FILENOold_stderr_fileno_unduposdupold_stdout_filenoold_stderr_filenosysstdout
old_stdoutstderr
old_stderrdup2outnull_filefilenoerrnull_file)r   s    r   	__enter__z suppress_stdout_stderr.__enter__   s    < 	K'4$'4$!%T-I!J!J!%T-I!J!J(/(/\((**D,HIII\((**D,HIII&&r   c                 l   | j         rd S | j        | j        _        | j        | j        _        | j                            | j        | j	                   | j                            | j
        | j                   | j                            | j                   | j                            | j
                   d S r   )r
   r   r   r   r   r   r   r   r   r   r   r   close)r   _s     r   __exit__zsuppress_stdout_stderr.__exit__,   s    < 	F //T+T-IJJJT+T-IJJJd,---d,-----r   N)T)	__name__
__module____qualname__r   r   boolr   r#   r'    r   r   r	   r	      s^         C	B       (. . . . .r   r	   c                   P     e Zd ZU dZi Zeeef         ed<   dededef fdZ	 xZ
S )MetaSingletonz;
    Metaclass for implementing the Singleton pattern.
    
_instancesargskwargsreturnc                     | | j         vr( t          t          |           j        |i || j         | <   | j         |          S r   )r/   superr.   __call__)clsr0   r1   	__class__s      r   r5   zMetaSingleton.__call__B   sE    cn$$"D%s";";"Dd"Uf"U"UCN3~c""r   )r(   r)   r*   __doc__r/   r   typer   __annotations__r5   __classcell__r7   s   @r   r.   r.   ;   sx           #%JT3Y$$$#S #C #C # # # # # # # # # #r   r.   c                   "     e Zd ZdZ fdZ xZS )	Singletonz<
    Base class for implementing the Singleton pattern.
    c                 V    t          t          |                                            d S r   )r4   r>   r   )r   r7   s    r   r   zSingleton.__init__M   s%    i'')))))r   )r(   r)   r*   r8   r   r;   r<   s   @r   r>   r>   H   sB         * * * * * * * * *r   r>   )	metaclass)r   r   typingr   r   opendevnullr    r"   r   r   objectr	   r9   r.   r>   r,   r   r   <module>rE      s    				 



         tBJ$$tBJ$$*. *. *. *. *.V *. *. *.Z
# 
# 
# 
# 
#D 
# 
# 
#* * * * *- * * * * * *r   