o
    `g                     @   s,   d dl mZmZ G dd deZdd ZdS )    )DictOptionalc                   @   s   e Zd ZU dZeeef ed< ee ed< 	 ee ed< 	 ee ed< 	 ee ed< 	 deeef dd	fd
dZdefddZ	deeef fddZ
d	S )APIErrorz,
    Base exception for all API errors.
    
_raw_errormessagecodehintdetailserrorreturnNc                 C   sJ   || _ |d| _|d| _|d| _|d| _t| t|  d S )Nr   r   r   r	   )	r   getr   r   r   r	   	Exception__init__str)selfr
    r   O/var/www/html/propose/venv/lib/python3.10/site-packages/postgrest/exceptions.pyr      s   zAPIError.__init__c                 C   sv   | j r
d| j  dnd}| jrd| j nd}| jr d| j nd}| jr+d| j nd}| | | | }|p:dS )NzError : z

Message: z
Hint: z

Details: zEmpty error)r   r   r   r	   )r   
error_textmessage_text	hint_textdetails_textcomplete_error_textr   r   r   __repr__   s   zAPIError.__repr__c                 C   s   | j S )zYConvert the error into a dictionary.

        Returns:
            :class:`dict`
        )r   )r   r   r   r   json#   s   zAPIError.json)__name__
__module____qualname____doc__r   r   __annotations__r   r   r   r   r   r   r   r   r      s   
 r   c                 C   s   d| j dt| jdS )NzJSON could not be generatedz!Refer to full message for details)r   r   r   r	   )status_coder   content)rr   r   r   generate_default_error_message,   s
   r$   N)typingr   r   r   r   r$   r   r   r   r   <module>   s    (