+
    oi'                         R t ^ RIHt ^ RIt^ RIt^ RIHt ^ RIHt ^ RI	t	]P                  ! ]4      tRt ! R R]P                  4      t ! R R]P                   4      tR	 t ! R
 R]4      tR# )zTransport adapter for httplib2.)absolute_importN)
exceptions)	transportc                   Z   a  ] tR t^ t o RtR t]R 4       t]R 4       t]R 4       t	Rt
V tR# )	_Responsezhttplib2 transport response adapter.

Args:
    response (httplib2.Response): The raw httplib2 response.
    data (bytes): The response body.
c                    Wn         W n        R # N)	_response_data)selfresponsedatas   &&&w/Users/tonyclaw/.openclaw/workspace/scripts/youtube-playlists/venv/lib/python3.14/site-packages/google_auth_httplib2.py__init___Response.__init__(   s    !
    c                .    V P                   P                  # )zint: The HTTP status code.)r	   statusr   s   &r   r   _Response.status,   s     ~~$$$r   c                ,    \        V P                  4      # )z-Mapping[str, str]: The HTTP response headers.)dictr	   r   s   &r   headers_Response.headers1   s     DNN##r   c                    V P                   # )zbytes: The response body.)r
   r   s   &r   r   _Response.data6   s     zzr   )r
   r	   N)__name__
__module____qualname____firstlineno____doc__r   propertyr   r   r   __static_attributes____classdictcell____classdict__s   @r   r   r       sK      % % $ $  r   r   c                   4   a  ] tR t^<t o RtR tRR ltRtV tR# )RequestaM  httplib2 request adapter.

This class is used internally for making requests using various transports
in a consistent way. If you use :class:`AuthorizedHttp` you do not need
to construct or use this class directly.

This class can be useful if you want to manually refresh a
:class:`~google.auth.credentials.Credentials` instance::

    import google_auth_httplib2
    import httplib2

    http = httplib2.Http()
    request = google_auth_httplib2.Request(http)

    credentials.refresh(request)

Args:
    http (httplib2.Http): The underlying http object to use to make
        requests.
c                    Wn         R # r   http)r   r*   s   &&r   r   Request.__init__S   s    	r   Nc           	     \   Ve   \         P                  R4        \         P                  RW!4       V P                  P                  ! V3RVRVRV/VB w  rx\        Wx4      #   \        P                  \        P                  P                  3 d   p	\        P                  ! T	4      hRp	?	ii ; i)a  Make an HTTP request using httplib2.

Args:
    url (str): The URI to be requested.
    method (str): The HTTP method to use for the request. Defaults
        to 'GET'.
    body (bytes): The payload / body in HTTP request.
    headers (Mapping[str, str]): Request headers.
    timeout (Optional[int]): The number of seconds to wait for a
        response from the server. This is ignored by httplib2 and will
        issue a warning.
    kwargs: Additional arguments passed throught to the underlying
        :meth:`httplib2.Http.request` method.

Returns:
    google.auth.transport.Response: The HTTP response.

Raises:
    google.auth.exceptions.TransportError: If any exception occurred.
Nzvhttplib2 transport does not support per-request timeout. Set the timeout when constructing the httplib2.Http instance.zMaking request: %s %smethodbodyr   )_LOGGERwarningdebugr*   requestr   httplib2HttpLib2ErrorclientHTTPExceptionr   TransportError)
r   urlr-   r.   r   timeoutkwargsr   r   excs
   &&&&&&,   r   __call__Request.__call__V   s    . OOP
		1MM16?!YY..")-7>BHNH X,, &&(A(AB 	1++C00	1s   AA! !/B+B&&B+r)   )GETNNN)	r   r   r   r   r    r   r<   r"   r#   r$   s   @r   r'   r'   <   s     ,&1 &1r   r'   c                 ,    \         P                  ! 4       # )z)Returns a default httplib2.Http instance.)r3   Http r   r   _make_default_httprB      s    ==?r   c                   d  a  ] tR t^t o RtR]P                  ]P                  3R ltR t	RRR]
P                  R3R ltRR lt]R 4       t]P                   R	 4       t]R
 4       t]P                   R 4       t]R 4       t]P                   R 4       t]R 4       t]P                   R 4       tRtV tR# )AuthorizedHttpar  A httplib2 HTTP class with credentials.

This class is used to perform requests to API endpoints that require
authorization::

    from google.auth.transport._httplib2 import AuthorizedHttp

    authed_http = AuthorizedHttp(credentials)

    response = authed_http.request(
        'https://www.googleapis.com/storage/v1/b')

This class implements :meth:`request` in the same way as
:class:`httplib2.Http` and can usually be used just like any other
instance of :class:`httplib2.Http`.

The underlying :meth:`request` implementation handles adding the
credentials' headers to the request and refreshing credentials as needed.
Nc                    Vf   \        4       pW n        Wn        W0n        W@n        \        V P                  4      V n        R# )a8  
Args:
    credentials (google.auth.credentials.Credentials): The credentials
        to add to the request.
    http (httplib2.Http): The underlying HTTP object to
        use to make requests. If not specified, a
        :class:`httplib2.Http` instance will be constructed.
    refresh_status_codes (Sequence[int]): Which HTTP status codes
        indicate that credentials should be refreshed and the request
        should be retried.
    max_refresh_attempts (int): The maximum number of times to attempt
        to refresh the credentials and retry the request.
N)rB   r*   credentials_refresh_status_codes_max_refresh_attemptsr'   _request)r   rF   r*   refresh_status_codesmax_refresh_attemptss   &&&&&r   r   AuthorizedHttp.__init__   s:    * <%'D	&%9"%9"  		*r   c                :    V P                   P                  4        R# )zCalls httplib2's Http.closeN)r*   closer   s   &r   rN   AuthorizedHttp.close   s    		r   r>   c                &  a VP                  R^ 4      pVe   VP                  4       M/ p	V P                  P                  V P                  W!V	4       Rp
\
        ;QJ d#    V3R l\         4       F  '       d   K   RM	  RM! V3R l\         4       4      '       d   SP                  4       p
V P                  P                  ! VV3RSRV	RVR	V/VB w  rVP                  V P                  9   d   WP                  8  d   \        P                  R
VP                  V^,           V P                  4       V P                  P                  V P                  4       V
e   SP!                  V
4       V P                  ! VV3RSRVRVR	VRV^,           /VB # W3# )z*Implementation of httplib2's Http.request._credential_refresh_attemptNc              3   >   <"   T F  p\        SVR 4      x  K  	  R # 5ir   )getattr).0stream_propr.   s   & r   	<genexpr>)AuthorizedHttp.request.<locals>.<genexpr>   s     VCUKwt[$//CUs   FTr.   r   redirectionsconnection_typez;Refreshing credentials due to a %s response. Attempt %s/%s.)popcopyrF   before_requestrI   all_STREAM_PROPERTIEStellr*   r2   r   rG   rH   r/   inforefreshseek)r   urir-   r.   r   rX   rY   r:   rQ   request_headersbody_stream_positionr   contents   &&&f&&&,     r   r2   AuthorizedHttp.request   s    '-jj1NPQ&R# -4,?',,.R''vOT  $3VCUV333VCUVVV#'99;  !II--
 
 $	

 &
 ,
 
  OOt999+.H.HHLLM+a/**	 $$T]]3 $/		./ <<	 	  		
 *	 !0	 -H!,K	 	 	   r   c                @    V P                   P                  WW4R7       R# )z'Proxy to httplib2.Http.add_certificate.)passwordN)r*   add_certificate)r   keycertdomainri   s   &&&&&r   rj   AuthorizedHttp.add_certificate  s    		!!#V!Gr   c                .    V P                   P                  # )#Proxy to httplib2.Http.connections.r*   connectionsr   s   &r   rr   AuthorizedHttp.connections
  s     yy$$$r   c                &    WP                   n        R# )rp   Nrq   r   values   &&r   rr   rs     s     !&		r   c                .    V P                   P                  # )(Proxy to httplib2.Http.follow_redirects.r*   follow_redirectsr   s   &r   rz   AuthorizedHttp.follow_redirects  s     yy)))r   c                &    WP                   n        R# )rx   Nry   ru   s   &&r   rz   r{     s     &+		"r   c                .    V P                   P                  # )Proxy to httplib2.Http.timeout.r*   r9   r   s   &r   r9   AuthorizedHttp.timeout  s     yy   r   c                &    WP                   n        R# )r~   Nr   ru   s   &&r   r9   r   #  s     "		r   c                .    V P                   P                  # )&Proxy to httplib2.Http.redirect_codes.r*   redirect_codesr   s   &r   r   AuthorizedHttp.redirect_codes(  s     yy'''r   c                &    WP                   n        R# )r   Nr   ru   s   &&r   r   r   -  s     $)		 r   )rH   rG   rI   rF   r*   r   )r   r   r   r   r    r   DEFAULT_REFRESH_STATUS_CODESDEFAULT_MAX_REFRESH_ATTEMPTSr   rN   r3   DEFAULT_MAX_REDIRECTSr2   rj   r!   rr   setterrz   r9   r   r"   r#   r$   s   @r   rD   rD      s    . &CC&CC+@ 33G!RH % % & & * * + + ! ! ^^" " ( ( ) )r   rD   )readrb   r_   )r    
__future__r   http.clientr*   logginggoogle.authr   r   r3   	getLoggerr   r/   r^   Responser   r'   rB   objectrD   rA   r   r   <module>r      sn    & &   " !  

H
%- 	"" 8@1i @1F
l)V l)r   