ó
    ychŸ  ã                   ó^   • S r SSKrSSKrSSKJrJr  SSKJr  S rS r	S r
S rS	 rS
 rS rg)zp
oauthlib.utils
~~~~~~~~~~~~~~

This module contains utility methods used by various parts of the OAuth 2 spec.
é    N)ÚquoteÚurlparse)Ú	urldecodec                 óò   • [        U [        5      (       d  U c  U $ [        U [        [        [        45      (       a+  SR                  U  Vs/ s H  n[        U5      PM     sn5      $ [        SU -  5      es  snf )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     Úf/var/www/djangovue.mamus.xyz/django/venv/lib/python3.13/site-packages/oauthlib/oauth2/rfc6749/utils.pyÚlist_to_scoper      se   € ä�%œ×Ñ ¡ØˆÜ	�EœC¤¬Ð-×	.Ñ	.Ø�x‰x©Ó/ª Aœ˜Qž©Ñ/Ó0Ð0äÐSÐV[Ñ[Ó\Ð\ùò 0s   Á
A4c                 óÊ   • [        U [        [        [        45      (       a  U  Vs/ s H  n[	        U5      PM     sn$ U c  gU R                  5       R                  S5      $ s  snf )z5Convert a space separated string to a list of scopes.Nr   )r   r   r   r
   r	   ÚstripÚsplitr   s     r   Úscope_to_listr      sS   € ä�%œ%¤¤sÐ+×,Ñ,Ù %Ó&¢˜1”�A–¡Ñ&Ð&Ø	‰Øà�{‰{‹}×"Ñ" 3Ó'Ð'ùò	 's   ¥A c                 ó‚   • [        [        [        U 5      R                  5      5      nSU;   a  [	        US   5      US'   U$ )Nr   )Údictr   r   Úqueryr   )ÚuriÚparamss     r   Úparams_from_urir   "   s:   € Ü”)œH S›M×/Ñ/Ó0Ó1€FØ�&ÓÜ'¨¨w©Ó8ˆˆw‰Ø€Mó    c                 ó¨   • SSS.n[        U 5      u  p#pEpgSU;   a  UR                  SS5      u  p8X84$ UR                  UR                  5       5      nX84$ )zmExtract 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/   )   sf   € ð Øñ€Mô
 *2°#«Ñ&€C�˜EØ
ˆfƒ}Ø—|‘| C¨Ó+‰ˆð ˆ<Ðð × Ñ  §¡£Ó-ˆàˆ<Ðr   c                 ót   • [        U [        5      (       d  [        S5      e[        U R	                  S5      SS9$ )zlEscape 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   <   s3   € ô �aœ×ÑÜÐ>Ó?Ð?Ü�—‘˜'Ó"¨Ñ.Ð.r   c                 ó¾   • [         R                   R                  5       U -
  nUR                  UR                  UR                  S-  S-  -   S-  -   S-  n[        U5      $ )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                 óŠ   • [         R                  R                  S5      (       a  gU R                  5       R	                  S5      $ )zCheck if the uri is over ssl.ÚOAUTHLIB_INSECURE_TRANSPORTTzhttps://)ÚosÚenvironr&   ÚlowerÚ
startswith)r   s    r   Úis_secure_transportrG   O   s0   € ä	‡z�z‡~�~Ð3×4Ñ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   