
    PiO                        d dl mZmZ d dlmZmZmZmZmZ d dl	m
Z
  ede          Z G d dee                   Z ee         d          Z ee         d	          Z ee         d
          Z ee         d          ZdS )    )GenericTypeVar)CompetitionHandleDatasetHandleModelHandleNotebookHandleResourceHandle)ResolverT)boundc                   `    e Zd ZdZdeddfdZdee         ddfdZde	ee
dz  f         fdZdS )	MultiImplRegistryak  Utility class to inject multiple implementations of class.

    Each implementation must implement __call__ and is_supported with the same set of arguments. The registered
    implementations "is_supported" methods are called in reverse order under which they are registered. The first
    to return true is then invoked via __call__ and the result returned.
    namereturnNc                 "    || _         g | _        d S N)_name_impls)selfr   s     f/home/jaya/work/projects/VOICE-AGENT/VIET/agent-env/lib/python3.11/site-packages/kagglehub/registry.py__init__zMultiImplRegistry.__init__   s    
)+    implc                 :    | j                             |           d S r   )r   append)r   r   s     r   add_implementationz$MultiImplRegistry.add_implementation   s    4     r   c                     g }t          | j                  D ]@} |j        |i |r
 ||i |c S |                    t	          |          j                   Ad| j         d|d|d|}t          |          )Nz&Missing implementation that supports: z(*z, **z	). Tried )reversedr   is_supportedr   type__name__r   RuntimeError)r   argskwargsfailsr   msgs         r   __call__zMultiImplRegistry.__call__   s    T[)) 	2 	2D t $1&11 2tT,V,,,,,T$ZZ01111mtzmmTmmQWmmdimm3r   )r!   
__module____qualname____doc__strr   r
   r   r   tupleintr'    r   r   r   r   	   s         ,S ,T , , , ,!x{ !t ! ! ! !	 5cDj+A 	  	  	  	  	  	 r   r   ModelResolverDatasetResolverCompetitionResolverNotebookOutputResolverN)typingr   r   kagglehub.handler   r   r   r   r	   kagglehub.resolverr
   r   r   model_resolverdataset_resolvercompetition_resolvernotebook_output_resolverr.   r   r   <module>r:      s    # # # # # # # # j j j j j j j j j j j j j j ' ' ' ' ' 'GC~&&&         
      6 0";/@@3$]34EFF ;():;<QRR <,^<=UVV   r   