ó
pÁìVc           @  sp   d  Z  d d l m Z d d l m Z d d l m Z d d l m Z d d l	 m
 Z
 d e f d „  ƒ  YZ d	 S(
   ué   
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.
iÿÿÿÿ(   t   unicode_literals(   t   SimpleTemplateResponse(   t   six(   t	   responses(   t
   Serializert   Responsec           B  sP   e  Z d  Z d d d d e d d „ Z e d „  ƒ Z e d „  ƒ Z d „  Z	 RS(   u]   
    An HttpResponse that allows its data to be rendered into
    arbitrary media types.
    c   
      C  s›   t  t |  ƒ j d d | ƒt | t ƒ r@ d } t | ƒ ‚ n  | |  _ | |  _ | |  _	 | |  _
 | r— x* t j | ƒ D] \ } }	 |	 |  | <qz Wn  d S(   uÿ   
        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`.
        t   statusut   You passed a Serializer instance as data, but probably meant to pass serialized `.data` or `.error`. representation.N(   t   superR   t   __init__t   Nonet
   isinstanceR   t   AssertionErrort   datat   template_namet	   exceptiont   content_typeR   t	   iteritems(
   t   selfR   R   R   t   headersR   R   t   msgt   namet   value(    (    sq   /opt/seafile/seafile-server-5.1.3/seahub/thirdpart/djangorestframework-3.3.2-py2.7.egg/rest_framework/response.pyR      s    
				c         C  s7  t  |  d d  ƒ } t  |  d d  ƒ } t  |  d d  ƒ } | sH t d ƒ ‚ | sZ t d ƒ ‚ | sl t d ƒ ‚ |  | d <| j } |  j } | d  k rµ | d  k	 rµ d j | | ƒ } n | d  k rÊ | } n  | |  d	 <| j |  j | | ƒ } t | t	 j
 ƒ r#| st d
 ƒ ‚ t | j | ƒ ƒ S| s3|  d	 =n  | S(   Nu   accepted_rendereru   accepted_media_typeu   renderer_contextu&   .accepted_renderer not set on Responseu(   .accepted_media_type not set on Responseu%   .renderer_context not set on Responseu   responseu   {0}; charset={1}u   Content-Typeu?   renderer returned unicode, and did not specify a charset value.(   t   getattrR	   R   t   charsetR   t   formatt   renderR   R
   R   t	   text_typet   bytest   encode(   R   t   renderert
   media_typet   contextR   R   t   ret(    (    sq   /opt/seafile/seafile-server-5.1.3/seahub/thirdpart/djangorestframework-3.3.2-py2.7.egg/rest_framework/response.pyt   rendered_content3   s,    
			
		
c         C  s   t  j |  j d ƒ S(   uw   
        Returns reason text corresponding to our HTTP response status code.
        Provided for convenience.
        u    (   R   t   gett   status_code(   R   (    (    sq   /opt/seafile/seafile-server-5.1.3/seahub/thirdpart/djangorestframework-3.3.2-py2.7.egg/rest_framework/response.pyt   status_textT   s    c         C  sJ   t  t |  ƒ j ƒ  } x$ d	 D] } | | k r | | =q q Wg  | d <| S(
   uO   
        Remove attributes from the response that shouldn't be cached.
        u   accepted_rendereru   renderer_contextu   resolver_matchu   clientu   requestu   jsonu   wsgi_requestu   _closable_objects(   u   accepted_rendereru   renderer_contextu   resolver_matchu   clientu   requestu   jsonu   wsgi_request(   R   R   t   __getstate__(   R   t   statet   key(    (    sq   /opt/seafile/seafile-server-5.1.3/seahub/thirdpart/djangorestframework-3.3.2-py2.7.egg/rest_framework/response.pyR%   ^   s     

N(
   t   __name__t
   __module__t   __doc__R	   t   FalseR   t   propertyR!   R$   R%   (    (    (    sq   /opt/seafile/seafile-server-5.1.3/seahub/thirdpart/djangorestframework-3.3.2-py2.7.egg/rest_framework/response.pyR      s   !
N(   R*   t
   __future__R    t   django.template.responseR   t   django.utilsR   t"   django.utils.six.moves.http_clientR   t   rest_framework.serializersR   R   (    (    (    sq   /opt/seafile/seafile-server-5.1.3/seahub/thirdpart/djangorestframework-3.3.2-py2.7.egg/rest_framework/response.pyt   <module>   s   