
    )Jf                     ~    d dl mZ d dlmZ  G d de          Z G d de          Z G d de          ZegZd	 Z	d
S )    )ProviderAccount)OAuth2Providerc                       e Zd ZdZdS )Scopez/authenticateN)__name__
__module____qualname__USERINFO_PROFILE     q/home/alex/cs2snipeproduction/venv/lib/python3.11/site-packages/allauth/socialaccount/providers/orcid/provider.pyr   r      s        &r   r   c                       e Zd Zd Zd ZdS )OrcidAccountc                 :    t          | j        j        ddg          S )Norcid-identifieruri)extract_from_dictaccount
extra_dataselfs    r   get_profile_urlzOrcidAccount.get_profile_url
   s     !8;Mu:UVVVr   c                     | j         j        S N)r   uidr   s    r   to_strzOrcidAccount.to_str   s    |r   N)r   r   r	   r   r   r   r   r   r   r   	   s5        W W W         r   r   c                   ,    e Zd ZdZdZeZd Zd Zd Z	dS )OrcidProviderorcidz	Orcid.orgc                     t           j        gS r   )r   r
   r   s    r   get_default_scopezOrcidProvider.get_default_scope   s    &''r   c                 &    t          |ddg          S )Nr   path)r   )r   datas     r   extract_uidzOrcidProvider.extract_uid   s     (:F'CDDDr   c           	          t          t          |g d          t          |g d          t          |g d                    }t          d |                                D                       S )N)personemailsemailr   r)   )r'   namezfamily-namevalue)r'   r*   zgiven-namesr+   )r)   	last_name
first_namec              3   (   K   | ]\  }}|||fV  d S r   r   ).0keyr+   s      r   	<genexpr>z6OrcidProvider.extract_common_fields.<locals>.<genexpr>&   s/      TT\c5eTS%LTTTTTTr   )dictr   items)r   r$   common_fieldss      r   extract_common_fieldsz#OrcidProvider.extract_common_fields   s    #D*S*S*STT'@@@  )@@@ 
 
 
 TT]5H5H5J5JTTTTTTr   N)
r   r   r	   idr*   r   account_classr!   r%   r5   r   r   r   r   r      sX        	BD M( ( (E E E
U 
U 
U 
U 
Ur   r   c                 b    | }	 |D ]
}||         }|S # t           t          t          f$ r Y dS w xY w)zo
    Navigate `data`, a multidimensional array (list or dictionary), and returns
    the object at `path`.
     )KeyError
IndexError	TypeError)r$   r#   r+   r0   s       r   r   r   ,   sV    
 E 	 	C#JEEj),   rrs    ..N)
$allauth.socialaccount.providers.baser   /allauth.socialaccount.providers.oauth2.providerr   objectr   r   r   provider_classesr   r   r   r   <module>rA      s    @ @ @ @ @ @ J J J J J J' ' ' ' 'F ' ' '         ?      U U U U UN U U U0 "?     r   