
                             d Z ddlmZmZ ddlZddlZddlmZmZ ddlm	Z	m
Z
  ej                  e      Z G d de      Zd	 Zy)
zoauthlib.oauth2.rfc6749 ~~~~~~~~~~~~~~~~~~~~~~~

This module is an implementation of various logic needed
for consuming and providing OAuth 2.0 RFC6749.
    )absolute_importunicode_literalsN   )TemporarilyUnavailableErrorServerError)FatalClientErrorOAuth2Errorc                   z    e Zd Zd Zed        Zej                  d        Zed        Zej                  d        Zy)BaseEndpointc                      d| _         d| _        y )NTF)
_available_catch_errorsselfs    3lib/third_party/oauthlib/oauth2/rfc6749/__init__.py__init__zBaseEndpoint.__init__   s    DOD    c                     | j                   S Nr   r   s    r   	availablezBaseEndpoint.available   s    ??r   c                     || _         y r   r   )r   r   s     r   r   zBaseEndpoint.available   s	    DOr   c                     | j                   S r   r   r   s    r   catch_errorszBaseEndpoint.catch_errors    s    r   c                     || _         y r   r   )r   r   s     r   r   zBaseEndpoint.catch_errors$   s
    %Dr   N)__name__
__module____qualname__r   propertyr   setterr    r   r   r   r      sc             & &r   r   c                 B     t        j                          fd       }|S )Nc                 ~   | j                   s1t               }t        j                  d|z         i |j                  dfS | j
                  r	  | |g|i |S  | |g|i |S # t        $ r  t        $ r  t        $ r;}t               }t        j                  d|z         i |j                  dfcY d }~S d }~ww xY w)Nz*Endpoint unavailable, ignoring request %s.i  z.Exception caught while processing request, %s.i  )r   r   loginfojsonr   r	   r   	Exceptionr   warning)endpointuriargskwargseerrorfs         r   wrapperz0catch_errors_and_unavailability.<locals>.wrapper+   s    
%
'a	hh;cAB_	#30000 x.t.v..    #DqHI5::s""#s   A& &B<0B71B<7B<)	functoolswraps)r0   r1   s   ` r   catch_errors_and_unavailabilityr4   )   s%    ??1/ /( 
.r   )__doc__
__future__r   r   r2   loggingerrorsr   r   r   r	   	getLoggerr   r%   objectr   r4   r"   r   r   <module>r;      s>   
 9   < 1g!&6 &.r   