
    qh                     n    S r SSKJrJr  SSKJrJr  SSKJr  \R                  SS j5       r
S rS	 rS
 rg)z
oauthlib.parameters
~~~~~~~~~~~~~~~~~~~

This module contains methods related to `section 3.5`_ of the OAuth 1.0a spec.

.. _`section 3.5`: https://tools.ietf.org/html/rfc5849#section-3.5
    )urlparse
urlunparse)extract_params	urlencode   )utilsNc                 J   U=(       d    0 n/ nU  HS  u  pE[         R                  " U5      n[         R                  " U5      nSR                  Xg5      nUR                  U5        MU     SR	                  U5      n	U(       a  SU-  U	-   n	SU	-  n
0 nUR                  U5        XS'   U$ )a  **Prepare the Authorization header.**
Per `section 3.5.1`_ of the spec.

Protocol parameters can be transmitted using the HTTP "Authorization"
header field as defined by `RFC2617`_ with the auth-scheme name set to
"OAuth" (case insensitive).

For example::

    Authorization: OAuth realm="Example",
        oauth_consumer_key="0685bd9184jfhq22",
        oauth_token="ad180jjd733klru7",
        oauth_signature_method="HMAC-SHA1",
        oauth_signature="wOJIO9A2W5mFwDgiDvZbTSMK%2FPY%3D",
        oauth_timestamp="137131200",
        oauth_nonce="4572616e48616d6d65724c61686176",
        oauth_version="1.0"


.. _`section 3.5.1`: https://tools.ietf.org/html/rfc5849#section-3.5.1
.. _`RFC2617`: https://tools.ietf.org/html/rfc2617
z{}="{}"z, zrealm="%s", zOAuth %sAuthorization)r   escapeformatappendjoinupdate)oauth_paramsheadersrealm%authorization_header_parameters_partsoauth_parameter_namevalueescaped_nameescaped_valuepartauthorization_header_parametersauthorization_headerfull_headerss               T/var/www/html/env/lib/python3.13/site-packages/oauthlib/oauth1/rfc5849/parameters.pyprepare_headersr      s    0 mG -/)'3#
 ||$89U+
 <-44T: (4& '+ii-'/# +9E+A+J,K' &(GG L $8!    c                 ^    [        U5      nUR                  U 5        UR                  S S9  U$ )a*  Append OAuth params to an existing set of parameters.

Both params and oauth_params is must be lists of 2-tuples.

Per `section 3.5.2`_ and `3.5.3`_ of the spec.

.. _`section 3.5.2`: https://tools.ietf.org/html/rfc5849#section-3.5.2
.. _`3.5.3`: https://tools.ietf.org/html/rfc5849#section-3.5.3

c                 *    U S   R                  S5      $ )Nr   oauth_)
startswith)is    r   <lambda> _append_params.<locals>.<lambda>i   s    adooh7r   )key)listextendsort)r   paramsmergeds      r   _append_paramsr,   X   s/     &\F
MM,
 KK7K8Mr   c                     [        X5      $ )zPrepare the Form-Encoded Body.

Per `section 3.5.2`_ of the spec.

.. _`section 3.5.2`: https://tools.ietf.org/html/rfc5849#section-3.5.2

)r,   )r   bodys     r   prepare_form_encoded_bodyr/   m   s     ,--r   c                     [        U5      u  p#pEpg[        [        U [        U5      =(       d    / 5      5      n[	        X#XEXg45      $ )zPrepare the Request URI Query.

Per `section 3.5.3`_ of the spec.

.. _`section 3.5.3`: https://tools.ietf.org/html/rfc5849#section-3.5.3

)r   r   r,   r   r   )r   urischnetpathparqueryfras           r   prepare_request_uri_queryr8   y   sE     '/sm#Cd|^E%:%@bACEsE788r   )NN)__doc__urllib.parser   r   oauthlib.commonr   r    r   filter_paramsr   r,   r/   r8    r   r   <module>r?      sA    . 5 
 B BJ*	.9r   