
     @gu                        d dl mZmZ d dlZd dlmZmZ d dlmZ d dl	m
Z
 ddlmZ  ej        e          Z G d d	e          Z G d
 de          Z G d de          Z G d de          Z G d de          Z G d de          ZdS )    )ABCabstractmethodN)ListUnion)FastAPI)Response   )QueueClientBasec                   F    e Zd Zededededeedf         fd            ZdS )RequestFilterBase
request_idrequest_jsonrequest_headersreturnNc                 
   K   d S N )selfr   r   r   s       A/var/www/piapp/venv/lib/python3.11/site-packages/aiproxy/proxy.pyfilterzRequestFilterBase.filter             __name__
__module____qualname__r   strdictr   r   r   r   r   r   r      s\        s $ QU Z_`cei`iZj    ^  r   r   c            	       B    e Zd Zedededeedf         fd            ZdS )ResponseFilterBaser   response_jsonr   Nc                 
   K   d S r   r   )r   r   r!   s      r   r   zResponseFilterBase.filter   r   r   r   r   r   r   r    r       sQ        s 4 E$PT*DU    ^  r   r    c                   $    e Zd ZddededdfdZdS )FilterException  messagestatus_coder   Nc                 "    || _         || _        d S r   )r&   r'   )r   r&   r'   s      r   __init__zFilterException.__init__   s    &r   )r%   )r   r   r   r   intr)   r   r   r   r$   r$      sB        ' ' '# ' ' ' ' ' ' 'r   r$   c                       e Zd ZdS )RequestFilterExceptionNr   r   r   r   r   r   r,   r,                r   r,   c                       e Zd ZdS )ResponseFilterExceptionNr-   r   r   r   r0   r0   "   r.   r   r0   c                       e Zd Zddddee         dee         defdZdeeef         fdZ	dd	e
d
edefdZededefd            ZdS )	ProxyBaseN)request_filtersresponse_filtersr3   r4   access_logger_queuec                8    |pg | _         |pg | _        || _        d S r   )r3   r4   r5   )r   r3   r4   r5   s       r   r)   zProxyBase.__init__&   s.      /4" 0 6B $7   r   r   c                    t          |t                    rC| j                            |           t                              d|j        j                    d S t          |t                    rC| j	                            |           t                              d|j        j                    d S t          
                    d|j        j                    d S )Nzrequest filter: zresponse filter: zInvalid filter: )
isinstancer   r3   appendloggerinfo	__class__r   r    r4   warning)r   r   s     r   
add_filterzProxyBase.add_filter4   s    f/00 	K ''///KKF6+;+DFFGGGGG 233 	K!((000KKGF,<,EGGHHHHHNNIf.>.GIIJJJJJr   responser   headersc                 j    ||j         d<   |r$|                                D ]\  }}||j         |<   d S d S )NzX-AIProxy-Request-Id)r@   items)r   r?   r   r@   kvs         r   add_response_headerszProxyBase.add_response_headers>   sW    3=/0 	( ( (1&' ##	( 	(( (r   appbase_urlc                     d S r   r   )r   rF   rG   s      r   	add_routezProxyBase.add_routeD   s    r   r   )r   r   r   r   r   r    r
   r)   r   r>   r   r   r   rE   r   r   rI   r   r   r   r2   r2   %   s         4859	7 7 7 /07 12	7
 -7 7 7 7K'8:L'L!M K K K K( (X (3 (QU ( ( ( ( W     ^  r   r2   )abcr   r   loggingtypingr   r   fastapir   fastapi.responsesr   queueclientr
   	getLoggerr   r:   r   r    	Exceptionr$   r,   r0   r2   r   r   r   <module>rR      sr   # # # # # # # #                & & & & & & ( ( ( ( ( ( 
	8	$	$              ' ' ' ' 'i ' ' ' 3 2 2 2 2_ 2 2 2 4 3 3 3 3o 3 3 3! ! ! ! ! ! ! ! ! !r   