§
    .`ƒi  ã                   óJ   — d dl mZmZ  ede¬¦  «        Z G d„ d¦  «        ZdS )é    )ÚAnyÚTypeVarÚ_T)Úboundc                   ó6   — e Zd ZdZd	d„Zdefd„Zdedefd„ZdS )
ÚExtensionManageraj  
    A registry for managing pluggable extension classes.

    This class provides a simple mechanism to register and instantiate
    extension classes by name. It is commonly used to implement plugin
    systems where different implementations can be swapped at runtime.

    Examples:
        Basic usage with a registry instance:

        >>> FOO_REGISTRY = ExtensionManager()
        >>> @FOO_REGISTRY.register("my_foo_impl")
        ... class MyFooImpl(Foo):
        ...     def __init__(self, value):
        ...         self.value = value
        >>> foo_impl = FOO_REGISTRY.load("my_foo_impl", value=123)

    ÚreturnNc                 ó   — i | _         dS )z9
        Initialize an empty extension registry.
        N©Ú
name2class)Úselfs    úg/home/jaya/work/projects/VOICE-AGENT/VIET/agent-env/lib/python3.11/site-packages/vllm/utils/registry.pyÚ__init__zExtensionManager.__init__   s   € ð ,.ˆŒˆˆó    Únamec                 ó4   ‡ ‡— dt           dt           fˆˆ fd„}|S )zD
        Decorator to register a class with the given name.
        Úcls_to_registerr	   c                 ó   •— | ‰j         ‰<   | S )Nr   )r   r   r   s    €€r   Úwrapz'ExtensionManager.register.<locals>.wrap'   s   ø€ Ø$3ˆDŒO˜DÑ!Ø"Ð"r   )r   )r   r   r   s   `` r   ÚregisterzExtensionManager.register"   s<   øø€ ð
	#¥"ð 	#­ð 	#ð 	#ð 	#ð 	#ð 	#ð 	#ð 	#ð ˆr   Úcls_namec                 óf   — | j                              |¦  «        }|€J d|› d¦   «         ‚ ||i |¤ŽS )zN
        Instantiate and return a registered extension class by name.
        NzExtension class z
 not found)r   Úget)r   r   ÚargsÚkwargsÚclss        r   ÚloadzExtensionManager.load-   sI   € ð Œo×!Ò! (Ñ+Ô+ˆØˆˆÐ G°8Ð GÐ GÐ G‰ŒˆØˆsDÐ#˜FÐ#Ð#Ð#r   )r	   N)	Ú__name__Ú
__module__Ú__qualname__Ú__doc__r   Ústrr   r   r   © r   r   r   r      so   € € € € € ðð ð&.ð .ð .ð .ð	˜Sð 	ð 	ð 	ð 	ð$˜Sð $°cð $ð $ð $ð $ð $ð $r   r   N)Útypingr   r   Útyper   r   r#   r   r   ú<module>r&      se   ðð  Ð Ð Ð Ð Ð Ð Ð à€WˆT˜ÐÑÔ€ð+$ð +$ð +$ð +$ð +$ñ +$ô +$ð +$ð +$ð +$r   