a
    ‹Qx_A  ã                   @   s:   d dl Z d dlmZ d dlmZ G dd„ deƒZeƒ ZdS )é    N)ÚOrderedDict)Úsettingsc                   @   s@   e Zd Zdd„ Zddd„Zdd„ Zddd	„Zd
d„ Zdd„ ZdS )ÚProviderRegistryc                 C   s   t ƒ | _d| _d S )NF)r   Úprovider_mapÚloaded)Úself© r   ú`/var/www/html/Ranjet/env/lib/python3.9/site-packages/allauth/socialaccount/providers/__init__.pyÚ__init__   s    zProviderRegistry.__init__Nc                    s    |   ¡  ‡ fdd„| j ¡ D ƒS )Nc                    s   g | ]}|ˆ ƒ‘qS r   r   )Ú.0Úprovider_cls©Úrequestr   r	   Ú
<listcomp>   ó    z-ProviderRegistry.get_list.<locals>.<listcomp>)Úloadr   Úvalues)r   r   r   r   r	   Úget_list   s    zProviderRegistry.get_listc                 C   s   || j |j< d S ©N)r   Úid)r   Úclsr   r   r	   Úregister   s    zProviderRegistry.registerc                 C   s   |   ¡  | j| |dS )Nr   )r   r   )r   r   r   r   r   r	   Úby_id   s    zProviderRegistry.by_idc                 c   s*   |   ¡  | j ¡ D ]}|j|jfV  qd S r   )r   r   r   r   Úname)r   r   r   r   r	   Ú
as_choices   s    zProviderRegistry.as_choicesc              	   C   s^   | j sZtjD ]F}zt |d ¡}W n ty4   Y q0 t|dg ƒD ]}|  |¡ qBqd| _ d S )Nz	.providerZprovider_classesT)r   r   ZINSTALLED_APPSÚ	importlibÚimport_moduleÚImportErrorÚgetattrr   )r   ZappZprovider_moduler   r   r   r	   r      s    
zProviderRegistry.load)N)N)	Ú__name__Ú
__module__Ú__qualname__r
   r   r   r   r   r   r   r   r   r	   r      s   

r   )r   Úcollectionsr   Zdjango.confr   Úobjectr   Úregistryr   r   r   r	   Ú<module>   s   (