o
    1jP                     @   s   d dl mZ d dlmZ g dZG dd deZG dd deZdd	 ZdddZ	dZ
dZee
eZdZdZeeeZejZejZejZejZd
S )    )OrderedDict)Mapping)Registryget_registered_model_infoget_registered_suite_inforegister_model_inforegister_suite_infobuild_runner_from_model_infobuild_model_from_model_infoc                       s@   e Zd Zd Z fddZdd Zdd Zdd Zd	d
 Z  Z	S )_Recordc                    s   t    || _d S N)super__init__data)selfZdict_	__class__ `/var/www/html/Deteccion_Ine/venv/lib/python3.10/site-packages/paddlex/repo_apis/base/register.pyr   !   s   

z_Record.__init__c                 C   
   | j | S r   )r   )r   keyr   r   r   __getitem__%      
z_Record.__getitem__c                 C   
   t | jS r   )iterr   r   r   r   r   __iter__(   r   z_Record.__iter__c                 C   r   r   )lenr   r   r   r   r   __len__+   r   z_Record.__len__c                 C   r   r   )reprr   r   r   r   r   __repr__.   r   z_Record.__repr__)
__name__
__module____qualname____doc__r   r   r   r   r    __classcell__r   r   r   r   r      s    r   c                       sR   e Zd Zd Z fddZdddZdd Zd	d
 Zdd Zdd Z	dd Z
  ZS )r   c                    s2   t    t | _|| _|| _| j| jv sJ d S r   )r   r   r   _tablerequired_keysprimary_key)r   r'   r(   r   r   r   r   5   s
   
zRegistry.__init__TFc                 C   sJ   |r|  | || j }|s|| jv rtdt| t|| j|< dS )register_recordzDuplicate keys detected: N)_validate_recordr(   r&   
ValueErrorr   r   )r   recordvalidateZallow_overwriteZprimr   r   r   r)   <   s   

zRegistry.register_recordc                 C   s,   | j D ]}||vrtdt| dqdS )r*   zKey z is required, but not found.N)r'   KeyErrorr   )r   r,   r   r   r   r   r*   F   s
   
zRegistry._validate_recordc                 C   r   )query)r&   )r   Zprim_keyr   r   r   r/   L      
zRegistry.queryc                 c   s    | j  E dH  dS )all_recordsN)r&   itemsr   r   r   r   r1   P   s   zRegistry.all_recordsc                 C   s   | j |j ko| j|jkS )is_compatible_with)r'   r(   )r   registryr   r   r   r3   T   s   
zRegistry.is_compatible_withc                 C   r   r   )strr&   r   r   r   r   __str__[   r0   zRegistry.__str__)TF)r!   r"   r#   r$   r   r)   r*   r/   r1   r3   r6   r%   r   r   r   r   r   2   s    

r   c                 K   s2   | d }t |}|d }|d }|dd|i|S )r	   suiterunnerrunner_root_pathNr   r   )
model_infokwargs
suite_name
suite_infoZ
runner_clsr9   r   r   r   r	   `   s
   r	   Nc                 K   s4   | d }t |}|d }| d }|d||d|S )r
   r7   model
model_name)r@   configNr   r:   )r;   rA   r<   r=   r>   Z	model_clsr@   r   r   r   r
   j   s
   r
   )r@   r7   Zconfig_pathZsupported_apisr@   )r=   r?   r8   rA   r9   r=   r   )collectionsr   collections.abcr   __all__r   objectr   r	   r
   ZMODEL_INFO_REQUIRED_KEYSZMODEL_INFO_PRIMARY_KEYZMODEL_INFO_REGISTRYZSUITE_INFO_REQUIRED_KEYSZSUITE_INFO_PRIMARY_KEYZSUITE_INFO_REGISTRYr/   r   r   r)   r   r   r   r   r   r   <module>   s"   .

	


