
    ~h                     >    d dl Z d dlZd dlmZ d dlmZ d Zd Zd Zy)    N)unquote)
to_unicodec                     t        | t        t        t        f      r(dj	                  | D cg c]  }t        |       c}      S | | S t        |       S c c}w )z5Convert a list of scopes to a space separated string. )
isinstancesettuplelistjoinr   scopess     W/opt/mcp/mcp-sentiment/venv/lib/python3.12/site-packages/authlib/oauth2/rfc6749/util.pylist_to_scoper      sK    %#ud+,xx61A677}e 7s   Ac                     t        | t        t        t        f      r| D cg c]  }t	        |       c}S | y| j                         j                         S c c}w )z5Convert a space separated string to a list of scopes.N)r   r	   r
   r   r   stripsplitr   s     r   scope_to_listr      sJ    %%s+,',-!
1--	;;=   .s   Ac                 f   | j                  d      }|rd|vry|j                  d d      \  }}|j                         dk7  ry	 t        t	        j
                  |            }d|v r+|j                  dd      \  }}t        |      t        |      fS |d fS # t        j                  t        f$ r Y yw xY w)NAuthorizationr   )NN   basic:)
getr   lowerr   base64	b64decodebinasciiError	TypeErrorr   )headersauth	auth_type
auth_tokenqueryusernamepasswords          r   extract_basic_authorizationr(      s    ;;'D3d? JJtQ/IzG#6++J78 e|"[[a0(x '("333$; NNI& s   B B0/B0)	r   r   urllib.parser   authlib.common.encodingr   r   r   r(        r   <module>r-      s         .!r,   