o
    "7h                     @   s<   d Z ddlmZ ddlmZ ddlmZ G dd deZdS )z
The Response class in REST framework is similar to HTTPResponse, except that
it is initialized with unrendered data, instead of a pre-rendered string.

The appropriate renderer is called during Django's template response rendering.
    )	responses)SimpleTemplateResponse)
Serializerc                       sT   e Zd ZdZ			d fdd	Zdd Zedd	 Zed
d Z fddZ	  Z
S )Responsez]
    An HttpResponse that allows its data to be rendered into
    arbitrary media types.
    NFc           
         sd   t  jd|d t|trd}t||| _|| _|| _|| _|r.|	 D ]
\}}	|	| |< q%dS dS )z
        Alters the init arguments slightly.
        For example, drop 'template_name', and instead use 'data'.

        Setting 'renderer' and 'media_type' will typically be deferred,
        For example being set automatically by the `APIView`.
        N)statusztYou passed a Serializer instance as data, but probably meant to pass serialized `.data` or `.error`. representation.)
super__init__
isinstancer   AssertionErrordatatemplate_name	exceptioncontent_typeitems)
selfr   r   r   headersr   r   msgnamevalue	__class__ l/var/www/epreuve.sigeris.cm/public_html/epreuve/venv/lib/python3.10/site-packages/rest_framework/response.pyr      s   


zResponse.__init__c                 O   s   | S )Nr   )clsargskwargsr   r   r   __class_getitem__2   s   zResponse.__class_getitem__c                 C   s   t | dd }t | dd }t | dd }|sJ d|sJ d|d us&J d| |d< |j}|j}| j}|d u rB|d urBd||}n|d u rH|}|| d	< || j||}t|trd|s_J d
|	|S |si| d	= |S )Naccepted_rendereraccepted_media_typerenderer_contextz&.accepted_renderer not set on Responsez(.accepted_media_type not set on Responsez%.renderer_context not set on Responseresponsez{}; charset={}zContent-Typez?renderer returned unicode, and did not specify a charset value.)
getattr
media_typecharsetr   formatrenderr   r	   strencode)r   rendererr   contextr"   r#   r   retr   r   r   rendered_content5   s0   

zResponse.rendered_contentc                 C   s   t | jdS )zw
        Returns reason text corresponding to our HTTP response status code.
        Provided for convenience.
         )r   getstatus_code)r   r   r   r   status_textW   s   zResponse.status_textc                    s.   t   }dD ]	}||v r||= qg |d< |S )zO
        Remove attributes from the response that shouldn't be cached.
        )r   r   resolver_matchclientrequestjsonwsgi_request_closable_objects)r   __getstate__)r   statekeyr   r   r   r6   _   s   
zResponse.__getstate__)NNNNFN)__name__
__module____qualname____doc__r   r   propertyr+   r/   r6   __classcell__r   r   r   r   r      s    
!
r   N)r<   http.clientr   django.template.responser   rest_framework.serializersr   r   r   r   r   r   <module>   s
    