Ë
    >²XjŸ  ã                   ó^   — d Z ddlZddlZddlmZmZ ddlmZ d„ Zd„ Z	d„ Z
d„ Zd	„ Zd
„ Zd„ Zy)zp
oauthlib.utils
~~~~~~~~~~~~~~

This module contains utility methods used by various parts of the OAuth 2 spec.
é    N)ÚquoteÚurlparse)Ú	urldecodec                 óÖ   — t        | t        «      s| €| S t        | t        t        t        f«      r(dj                  | D �cg c]  }t        |«      ‘Œ c}«      S t        d| z  «      ‚c c}w )z5Convert a list of scopes to a space separated string.Ú z8Invalid scope (%s), must be string, tuple, set, or list.)Ú
isinstanceÚstrÚsetÚtupleÚlistÚjoinÚ
ValueError©ÚscopeÚss     úc/var/www/html/content_generation/venv/lib/python3.12/site-packages/oauthlib/oauth2/rfc6749/utils.pyÚlist_to_scoper      s_   € ä�%œÔ  ØˆÜ	�EœC¤¬Ð-Ô	.Ø�x‰x©Ó/© Aœ˜Q�¨Ñ/Ó0Ð0äÐSÐV[Ñ[Ó\Ð\ùò 0s   ¿A&c                 ó¸   — t        | t        t        t        f«      r| D �cg c]  }t	        |«      ‘Œ c}S | €y| j                  «       j                  d«      S c c}w )z5Convert a space separated string to a list of scopes.Nr   )r   r   r   r
   r	   ÚstripÚsplitr   s     r   Úscope_to_listr      sP   € ä�%œ%¤¤sÐ+Ô,Ù %Ó&¡˜1”�A• Ñ&Ð&Ø	ˆØà�{‰{‹}×"Ñ" 3Ó'Ð'ùò	 's    Ac                 ó~   — t        t        t        | «      j                  «      «      }d|v rt	        |d   «      |d<   |S )Nr   )Údictr   r   Úqueryr   )ÚuriÚparamss     r   Úparams_from_urir   "   s:   € Ü”)œH S›M×/Ñ/Ó0Ó1€FØ�&ÑÜ'¨¨w©Ó8ˆˆw‰Ø€Mó    c                 ó°   — dddœ}t        | «      \  }}}}}}d|v r|j                  dd«      \  }}||fS |j                  |j                  «       «      }||fS )zuExtract hostname and port from URI.

    Will use default port for HTTP and HTTPS if none is present in the URI.
    Ú80Ú443)ÚHTTPÚHTTPSÚ:é   )r   r   ÚgetÚupper)	r   Údefault_portsÚschÚnetlocÚpathÚparr   ÚfraÚports	            r   Úhost_from_urir/   )   sr   € ð Øñ€Mô
 *2°#«Ñ&€Cˆ��s˜E 3Ø
ˆf�}Ø—|‘| C¨Ó+‰ˆ�ð �4ˆ<Ðð × Ñ  §¡£Ó-ˆà�4ˆ<Ðr   c                 óp   — t        | t        «      st        d«      ‚t        | j	                  d«      d¬«      S )ztEscape a string in an OAuth-compatible fashion.

    TODO: verify whether this can in fact be used for OAuth 2

    z#Only unicode objects are escapable.zutf-8ó   ~)Úsafe)r   r	   r   r   Úencode)Úus    r   Úescaper5   <   s0   € ô �aœÔÜÐ>Ó?Ð?Ü�—‘˜'Ó"¨Ô.Ð.r   c                 ó¾   — t         j                   j                  «       | z
  }|j                  |j                  |j                  dz  dz  z   dz  z   dz  }t        |«      S )z9Generate a age parameter for MAC authentication draft 00.é   i  i@B )ÚdatetimeÚnowÚmicrosecondsÚsecondsÚdaysr	   )Ú
issue_timeÚtdÚages      r   Úgenerate_ager@   G   sZ   € ä	×	Ñ	×	Ñ	Ó	  :Ñ	-€BØ�?‰?˜bŸj™j¨2¯7©7°R©<¸$Ñ+>Ñ>Øññ Øñ €Cäˆs‹8€Or   c                 ó€   — t         j                  j                  d«      ry| j                  «       j	                  d«      S )zCheck if the uri is over ssl.ÚOAUTHLIB_INSECURE_TRANSPORTTzhttps://)ÚosÚenvironr&   ÚlowerÚ
startswith)r   s    r   Úis_secure_transportrG   O   s-   € ä	‡z�z‡~�~Ð3Ô4ØØ�9‰9‹;×!Ñ! *Ó-Ð-r   )Ú__doc__r8   rC   Úurllib.parser   r   Úoauthlib.commonr   r   r   r   r/   r5   r@   rG   © r   r   Ú<module>rL      s<   ðñó Û 	ß (å %ò]ò(òòò&/òó.r   