
    *i                         S SK r S SKrS SKJrJr  \" \ R                  S5      r\" \ R                  S5      rSr	Sr
 " S S\5      r " S S	\5      r " S
 S\\S9rg)    N)AnyDictw      c                   :    \ rS rSr\r\rSS\4S jjrS rS r	Sr
g)	suppress_stdout_stderr   disablec                     Xl         g N)r   )selfr   s     N/var/www/html/ai-backend/venv/lib/python3.13/site-packages/llama_cpp/_utils.py__init__suppress_stdout_stderr.__init__   s        c                    U R                   (       a  U $ [        U l        [        U l        U R
                  R                  U R                  5      U l        U R
                  R                  U R                  5      U l        U R                  R                  U l        U R                  R                  U l        U R
                  R                  [        R!                  5       U R                  5        U R
                  R                  ["        R!                  5       U R                  5        [        U R                  l
        ["        U R                  l        U $ 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__ suppress_stdout_stderr.__enter__   s    <<K'4$'4$!%T-I-I!J!%T-I-I!J((//((//\((*D,H,HI\((*D,H,HI&&r   c                    U R                   (       a  g U R                  U R                  l        U R                  U R                  l        U R                  R                  U R                  U R                  5        U R                  R                  U R                  U R                  5        U R                  R                  U R                  5        U R                  R                  U R                  5        g r   )r   r   r   r   r    r   r   r!   r   r   r   r   close)r   _s     r   __exit__suppress_stdout_stderr.__exit__,   s    << ////T++T-I-IJT++T-I-IJd,,-d,,-r   )r   r    r   r   r   r   r   N)T)__name__
__module____qualname____firstlineno__r   r   boolr   r%   r*   __static_attributes__ r   r   r	   r	      s$     C	B (.r   r	   c                   V   ^  \ rS rSr% Sr0 r\\\4   \	S'   S\S\S\4U 4S jjr
SrU =r$ )	MetaSingleton;   z3
Metaclass for implementing the Singleton pattern.

_instancesargskwargsreturnc                    > X R                   ;  a!  [        [        U ]  " U0 UD6U R                   U '   U R                   U    $ r   )r6   superr4   __call__)clsr7   r8   	__class__s      r   r<   MetaSingleton.__call__B   s;    nn$"'s"Dd"Uf"UCNN3~~c""r   r2   )r,   r-   r.   r/   __doc__r6   r   typer   __annotations__r<   r1   __classcell__r>   s   @r   r4   r4   ;   s;     #%JT3Y$#S #C #C # #r   r4   c                   ,   ^  \ rS rSrSrU 4S jrSrU =r$ )	SingletonH   z4
Base class for implementing the Singleton pattern.
c                 *   > [         [        U ]  5         g r   )r;   rF   r   )r   r>   s    r   r   Singleton.__init__M   s    i')r   r2   )r,   r-   r.   r/   r@   r   r1   rC   rD   s   @r   rF   rF   H   s    * *r   rF   )	metaclass)r   r   typingr   r   opendevnullr"   r$   r   r   objectr	   rA   r4   rF   r2   r   r   <module>rO      sa    	 
  BJJ$BJJ$*.V *.Z
#D 
#*- *r   