
    |-jP                         d dl mZ d dlmZ g dZ G d de          Z G d de          Zd Z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                   :     e Zd Zd Z fdZd Zd Zd Zd Z xZ	S )_Recordc                 V    t                                                       || _        d S N)super__init__data)selfdict_	__class__s     _/var/www/html/banglarbhumi/venv/lib/python3.11/site-packages/paddlex/repo_apis/base/register.pyr   z_Record.__init__!   s$    			    c                     | j         |         S r   )r   )r   keys     r   __getitem__z_Record.__getitem__%   s    y~r   c                 *    t          | j                  S r   )iterr   r   s    r   __iter__z_Record.__iter__(       DIr   c                 *    t          | j                  S r   )lenr   r   s    r   __len__z_Record.__len__+   s    49~~r   c                 *    t          | j                  S r   )reprr   r   s    r   __repr__z_Record.__repr__.   r   r   )
__name__
__module____qualname____doc__r   r   r   r"   r%   __classcell__r   s   @r   r   r      sy        M                r   r   c                   H     e Zd Zd Z fdZd
dZd Zd Zd Zd Z	d	 Z
 xZS )r   c                     t                                                       t                      | _        || _        || _        | j        | j        v sJ d S r   )r   r   r   _tablerequired_keysprimary_key)r   r/   r0   r   s      r   r   zRegistry.__init__5   sQ    !mm*&4#5555555r   TFc                     |r|                      |           || j                 }|s(|| j        v rt          dt	          |                     t          |          | j        |<   dS )register_recordzDuplicate keys detected: N)_validate_recordr0   r.   
ValueErrorr$   r   )r   recordvalidateallow_overwriteprims        r   r2   zRegistry.register_record<   st     	*!!&)))d&' 	044;#6#6EdEEFFF 'DKr   c                 b    | j         D ]&}||vr t          dt          |           d          'dS )r3   zKey z is required, but not found.N)r/   KeyErrorr$   )r   r5   r   s      r   r3   zRegistry._validate_recordF   sR    % 	O 	OC&  Md3iiMMMNNN !	O 	Or   c                     | j         |         S )query)r.   )r   prim_keys     r   r<   zRegistry.queryL   s    {8$$r   c              #   H   K   | j                                         E d{V  dS )all_recordsN)r.   itemsr   s    r   r?   zRegistry.all_recordsP   s2      ;$$&&&&&&&&&&&r   c                 B    | j         |j         k    o| j        |j        k    S )is_compatible_with)r/   r0   )r   registrys     r   rB   zRegistry.is_compatible_withT   s*     ("88 9 H$88	
r   c                 *    t          | j                  S r   )strr.   r   s    r   __str__zRegistry.__str__[   s    4;r   )TF)r&   r'   r(   r)   r   r2   r3   r<   r?   rB   rF   r*   r+   s   @r   r   r   2   s        N6 6 6 6 60 0 0 0O O O% % %' ' '
 
 
             r   r   c                 d    | d         }t          |          }|d         }|d         } |dd|i|S )r
   suiterunnerrunner_root_path r   )
model_infokwargs
suite_name
suite_info
runner_clsrJ   s         r   r
   r
   `   sK    G$J*:66JH%J!"45:BB'7B6BBBr   Nc                 f    | d         }t          |          }|d         }| d         } |d||d|S )r   rH   model
model_name)rT   configrK   rL   )rM   rU   rN   rO   rP   	model_clsrT   s          r   r   r   j   sJ    G$J*:66J7#IL)J9D
6DDVDDDr   )rT   rH   config_pathsupported_apisrT   )rO   rS   rI   rU   rJ   rO   r   )collectionsr   collections.abcr   __all__r   objectr   r
   r   MODEL_INFO_REQUIRED_KEYSMODEL_INFO_PRIMARY_KEYMODEL_INFO_REGISTRYSUITE_INFO_REQUIRED_KEYSSUITE_INFO_PRIMARY_KEYSUITE_INFO_REGISTRYr<   r   r   r2   r   r	   rK   r   r   <module>rc      s.    $ # # # # # # # # # # #      g   (+  +  +  +  + v +  +  + \C C CE E E E T % h79OPP   & h79OPP 
 05 /5 )9 )9   r   