o
    ˷eA                     @   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/ideatree/venv/lib/python3.10/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>   s    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   sb   | j s/tjD ]#}z	t|d }W n	 ty   Y qw t|dg D ]}| | q!qd| _ d S d S )Nz	.providerprovider_classesT)r   r   INSTALLED_APPS	importlibimport_moduleImportErrorgetattrr   )r   appprovider_moduler   r   r   r	   r      s   

zProviderRegistry.loadr   )	__name__
__module____qualname__r
   r   r   r   r   r   r   r   r   r	   r      s    

r   )r   collectionsr   django.confr   objectr   registryr   r   r   r	   <module>   s
    
(