
    Xj                     p   d dl mZ  e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
 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 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 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 d0 d1e          Z G d2 d3e          Z G d4 d5e          Z G d6 d7e          Z G d8 d9e          Z  G d: d;e          Z! G d< d=e          Z"d>S )?    )
get_loggerc                   .     e Zd Zddededef fdZ xZS )AppException  messagecodestatus_codec                     || _         || _        || _        t                                          | j                    t
                              d| d| |           d S )NzException created: z - )
error_code)r   r   r	   super__init__loggererror)selfr   r   r	   	__class__s       ;/lsinfo/ai/hellotax_ai/base_platform/app/core/exceptions.pyr   zAppException.__init__   s`    	&&&&=4==G==$OOOOO    )r   )__name__
__module____qualname__strintr   __classcell__r   s   @r   r   r      se        P P P3 PS P P P P P P P P P Pr   r   c                   $     e Zd Zdef fdZ xZS )KnowledgeBaseNotFoundErrorbase_idc                 X    t                                          d| ddd           d S )NzKnowledge base 
 not foundKNOWLEDGE_BASE_NOT_FOUND  r   r   r	   r   r   )r   r   r   s     r   r   z#KnowledgeBaseNotFoundError.__init__   sB    9g999+ 	 	
 	
 	
 	
 	
r   r   r   r   r   r   r   r   s   @r   r   r      sD        
 
 
 
 
 
 
 
 
 
 
r   r   c                   $     e Zd Zdef fdZ xZS )DocumentNotFoundErrordoc_idc                 X    t                                          d| ddd           d S )Nz	Document r   DOCUMENT_NOT_FOUNDr!   r"   r#   )r   r'   r   s     r   r   zDocumentNotFoundError.__init__   sB    22229M[^ 	 	
 	
 	
 	
 	
r   r$   r   s   @r   r&   r&      sD        
s 
 
 
 
 
 
 
 
 
 
r   r&   c                   $     e Zd Zdef fdZ xZS )CategoryNotFoundErrorcategory_idc                 X    t                                          d| ddd           d S )Nz	Category r   CATEGORY_NOT_FOUNDr!   r"   r#   )r   r,   r   s     r   r   zCategoryNotFoundError.__init__$   B    7777>R`c 	 	
 	
 	
 	
 	
r   r$   r   s   @r   r+   r+   "   D        
C 
 
 
 
 
 
 
 
 
 
r   r+   c                   $     e Zd Zdef fdZ xZS )TagNotFoundErrortag_idc                 X    t                                          d| ddd           d S )NzTag r   TAG_NOT_FOUNDr!   r"   r#   )r   r3   r   s     r   r   zTagNotFoundError.__init__,   s5    !:!:!:!:^abbbbbr   r$   r   s   @r   r2   r2   *   sO        cs c c c c c c c c c cr   r2   c                   $     e Zd Zdef fdZ xZS )QANotFoundErrorqa_idc                 X    t                                          d| ddd           d S )NzQ&A r   QA_NOT_FOUNDr!   r"   r#   )r   r8   r   s     r   r   zQANotFoundError.__init__2   s5    !9!9!9!9\_`````r   r$   r   s   @r   r7   r7   0   sO        ac a a a a a a a a a ar   r7   c                   &     e Zd Zddef fdZ xZS )VectorSearchErrorVector search failedreasonc                 P    t                                          |dd           d S )NVECTOR_SEARCH_ERROR  r"   r#   r   r>   r   s     r   r   zVectorSearchError.__init__8   *    .CQTUUUUUr   )r=   r   r   r   r   r   r   r   s   @r   r<   r<   6   U        V Vs V V V V V V V V V Vr   r<   c                        e Zd Z fdZ xZS )VectorStoreConnectionErrorc                 P    t                                          ddd           d S )Nz!Failed to connect to vector storeVECTOR_STORE_CONNECTION_ERROR  r"   r#   r   r   s    r   r   z#VectorStoreConnectionError.__init__>   s7    70 	 	
 	
 	
 	
 	
r   r   r   r   r   r   r   s   @r   rG   rG   <   s8        
 
 
 
 
 
 
 
 
r   rG   c                   &     e Zd Zddef fdZ xZS )EmbeddingGenerationErrorFailed to generate embeddingsr>   c                 P    t                                          |dd           d S )NEMBEDDING_GENERATION_ERRORrA   r"   r#   rB   s     r   r   z!EmbeddingGenerationError.__init__H   s*    .JX[\\\\\r   )rO   rD   r   s   @r   rN   rN   F   sU        ] ]s ] ] ] ] ] ] ] ] ] ]r   rN   c                   (     e Zd Zdedef fdZ xZS )FileProcessingErrorfilenamer>   c                 \    t                                          d| d| dd           d S )NzFailed to process file '': FILE_PROCESSING_ERRORr   r"   r#   r   rT   r>   r   s      r   r   zFileProcessingError.__init__N   sG    DxDDFDD( 	 	
 	
 	
 	
 	
r   rD   r   s   @r   rS   rS   L   K        
 
c 
 
 
 
 
 
 
 
 
 
r   rS   c                   $     e Zd Zdef fdZ xZS )UnsupportedFileTypeError	file_typec                 V    t                                          d| dd           d S )NzUnsupported file type: UNSUPPORTED_FILE_TYPEr   r"   r#   )r   r\   r   s     r   r   z!UnsupportedFileTypeError.__init__X   s?    9i99( 	 	
 	
 	
 	
 	
r   rD   r   s   @r   r[   r[   V   sD        
# 
 
 
 
 
 
 
 
 
 
r   r[   c                   $     e Zd Zdef fdZ xZS )ProviderNotFoundErrorprovider_idc                 X    t                                          d| ddd           d S )Nz	Provider r   PROVIDER_NOT_FOUNDr!   r"   r#   )r   ra   r   s     r   r   zProviderNotFoundError.__init__b   r/   r   r$   r   s   @r   r`   r`   `   r0   r   r`   c                   $     e Zd Zdef fdZ xZS )ModelNotFoundErrormodel_idc                 X    t                                          d| ddd           d S )NzModel r   MODEL_NOT_FOUNDr!   r"   r#   )r   rf   r   s     r   r   zModelNotFoundError.__init__j   sB    1X1118IWZ 	 	
 	
 	
 	
 	
r   r$   r   s   @r   re   re   h   sD        
 
 
 
 
 
 
 
 
 
 
r   re   c                   $     e Zd Zdef fdZ xZS )ProviderNotConfiguredErrorprovider_namec                 X    t                                          d| ddd           d S )Nz
Provider 'z' is not configuredPROVIDER_NOT_CONFIGUREDr   r"   r#   )r   rk   r   s     r   r   z#ProviderNotConfiguredError.__init__r   sB    CCCC* 	 	
 	
 	
 	
 	
r   rD   r   s   @r   rj   rj   p   D        
c 
 
 
 
 
 
 
 
 
 
r   rj   c                   (     e Zd Zdedef fdZ xZS )InsufficientPermissionErrorresourceactionc                 \    t                                          d| d| dd           d S )NzInsufficient permission to  INSUFFICIENT_PERMISSIONi  r"   r#   )r   rq   rr   r   s      r   r   z$InsufficientPermissionError.__init__|   sG    E&EE8EE* 	 	
 	
 	
 	
 	
r   rD   r   s   @r   rp   rp   z   rY   r   rp   c                   $     e Zd Zdef fdZ xZS )CircularReferenceErrorresource_typec                 V    t                                          d| dd           d S )NzCircular reference detected in CIRCULAR_REFERENCEr   r"   r#   r   rx   r   s     r   r   zCircularReferenceError.__init__   s?    EmEE% 	 	
 	
 	
 	
 	
r   rD   r   s   @r   rw   rw      rn   r   rw   c                   $     e Zd Zdef fdZ xZS )InvalidParentErrorrx   c                 V    t                                          d| dd           d S )NzInvalid parent for INVALID_PARENTr   r"   r#   r{   s     r   r   zInvalidParentError.__init__   s?    9-99@P^a 	 	
 	
 	
 	
 	
r   rD   r   s   @r   r}   r}      sD        
c 
 
 
 
 
 
 
 
 
 
r   r}   c                   &     e Zd Zddef fdZ xZS )TextChunkingErrorText chunking failedr>   c                 P    t                                          |dd           d S )NTEXT_CHUNKING_ERRORrA   r"   r#   rB   s     r   r   zTextChunkingError.__init__   rC   r   )r   rD   r   s   @r   r   r      rE   r   r   c                   (     e Zd Zdedef fdZ xZS )DocumentUploadErrorrT   r>   c                 \    t                                          d| d| dd           d S )NzFailed to upload document 'rV   DOCUMENT_UPLOAD_ERRORr   r"   r#   rX   s      r   r   zDocumentUploadError.__init__   sG    G(GGvGG( 	 	
 	
 	
 	
 	
r   rD   r   s   @r   r   r      rY   r   r   c                   &     e Zd Zddef fdZ xZS )DatabaseErrorDatabase operation failedr   c                 P    t                                          |dd           d S )NDATABASE_ERRORrA   r"   r#   r   r   r   s     r   r   zDatabaseError.__init__   s)    /?SQQQQQr   )r   rD   r   s   @r   r   r      sU        R R R R R R R R R R R Rr   r   c                   &     e Zd Zddef fdZ xZS )TransactionErrorTransaction failedr   c                 Z    t                                          |           d| _        d S )Nr   TRANSACTION_ERRORr   r   r   r   s     r   r   zTransactionError.__init__   s)    )))'			r   )r   rD   r   s   @r   r   r      sI        ( ( ( ( ( ( ( ( ( ( ( (r   r   c                   &     e Zd Zddef fdZ xZS )ConstraintViolationErrorunknown
constraintc                 n    t                                          d|            d| _        d| _        d S )NzDatabase constraint violation: r   CONSTRAINT_VIOLATIONi  r   r   r   r	   )r   r   r   s     r   r   z!ConstraintViolationError.__init__   s<    !O:!O!OPPP*	r   )r   rD   r   s   @r   r   r      sI         3          r   r   c                   *     e Zd Zddedef fdZ xZS )ExternalServiceErrorExternal service errorservicer   c                 Z    t                                          | d| dd           d S )Nz: EXTERNAL_SERVICE_ERRORi  r"   r#   )r   r   r   r   s      r   r   zExternalServiceError.__init__   sE    ++'++2JX[ 	 	
 	
 	
 	
 	
r   )r   rD   r   s   @r   r   r      sP        
 
 
c 
 
 
 
 
 
 
 
 
 
r   r   c                   (     e Zd Zdedef fdZ xZS )ServiceTimeoutErrorr   timeoutc                 r    t                                          |d| d           d| _        d| _        d S )NzRequest timeout after sr   r   SERVICE_TIMEOUTi  r   )r   r   r   r   s      r   r   zServiceTimeoutError.__init__   sA    2U72U2U2UVVV%	r   )r   r   r   r   floatr   r   r   s   @r   r   r      sK         e          r   r   c                   $     e Zd Zdef fdZ xZS )ServiceUnavailableErrorr   c                 j    t                                          |d           d| _        d| _        d S )NzService unavailabler   SERVICE_UNAVAILABLErJ   r   )r   r   r   s     r   r   z ServiceUnavailableError.__init__   s6    2GHHH)	r   rD   r   s   @r   r   r      sD                  r   r   c                   &     e Zd Zddef fdZ xZS )AuthenticationErrorAuthentication failedr   c                 P    t                                          |dd           d S )NAUTHENTICATION_ERRORi  r"   r#   r   s     r   r   zAuthenticationError.__init__   s*    /ESVWWWWWr   )r   rD   r   s   @r   r   r      sU        X X X X X X X X X X X Xr   r   c                        e Zd Z fdZ xZS )TokenExpiredErrorc                 Z    t                                          d           d| _        d S )NzToken has expiredr   TOKEN_EXPIREDr   rK   s    r   r   zTokenExpiredError.__init__   s*    !4555#			r   rL   r   s   @r   r   r      8        $ $ $ $ $ $ $ $ $r   r   c                        e Zd Z fdZ xZS )InvalidTokenErrorc                 Z    t                                          d           d| _        d S )NzInvalid tokenr   INVALID_TOKENr   rK   s    r   r   zInvalidTokenError.__init__   s)    111#			r   rL   r   s   @r   r   r      r   r   r   c                   &     e Zd Zddef fdZ xZS )RateLimitError<   retry_afterc                 f    t                                          d| ddd           || _        d S )Nz!Rate limit exceeded. Retry after z secondsRATE_LIMIT_EXCEEDEDi  r"   )r   r   r   )r   r   r   s     r   r   zRateLimitError.__init__   sH    MMMM& 	 	
 	
 	

 'r   )r   r$   r   s   @r   r   r      sI        ' 'C ' ' ' ' ' ' ' ' ' 'r   r   c                   *     e Zd Zddedef fdZ xZS )StorageErrorNr   bucketc                 n    |rd| d| nd| }t                                          |dd           d S )NzStorage error in bucket 'rV   zStorage error: STORAGE_ERRORrA   r"   r#   )r   r   r   msgr   s       r   r   zStorageError.__init__   sZ     -<<<7<<<,7,, 	
 	?LLLLLr   )NrD   r   s   @r   r   r      s]        M M MS M M M M M M M M M Mr   r   N)#common_loggingr   r   r   	Exceptionr   r   r&   r+   r2   r7   r<   rG   rN   rS   r[   r`   re   rj   rp   rw   r}   r   r   r   r   r   r   r   r   r   r   r   r   r    r   r   <module>r      sj   % % % % % %	H		P P P P P9 P P P
 
 
 
 
 
 
 

 
 
 
 
L 
 
 

 
 
 
 
L 
 
 
c c c c c| c c ca a a a al a a aV V V V V V V V
 
 
 
 
 
 
 
] ] ] ] ]| ] ] ]
 
 
 
 
, 
 
 

 
 
 
 
| 
 
 

 
 
 
 
L 
 
 

 
 
 
 
 
 
 

 
 
 
 
 
 
 

 
 
 
 
, 
 
 

 
 
 
 
\ 
 
 

 
 
 
 
 
 
 
V V V V V V V V
 
 
 
 
, 
 
 
R R R R RL R R R( ( ( ( (} ( ( (    }   
 
 
 
 
< 
 
 
    .       2   X X X X X, X X X$ $ $ $ $+ $ $ $$ $ $ $ $+ $ $ $' ' ' ' '\ ' ' 'M M M M M< M M M M Mr   