
    LMh\                        d dl mZ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OptionalTypeVar)CompetitionHandleDatasetHandleModelHandleNotebookHandleResourceHandle)ResolverT)boundc                   f    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
e         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     R/var/www/html/test/jupyter/venv/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   tupler   intr(    r   r   r   r   	   s         ,S ,T , , , ,!x{ !t ! ! ! !	 5hsm1C+D 	  	  	  	  	  	 r   r   ModelResolverDatasetResolverCompetitionResolverNotebookOutputResolverN)typingr   r   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   