§
    0;jik  ã                   óB   — d dl Z d dlmZ d dlmZ  G d„ de¦  «        ZdS )é    N)ÚChainMap)Útypesc                   ó8   — e Zd ZdZd	d„Zd„ Zd„ Zd„ Zd„ Zd„ Z	dS )
ÚDataModelManagerzBManages mapping of FE types to their corresponding data model
    Nc                 óH   — |pi | _         t          j        ¦   «         | _        dS )z 
        Parameters
        -----------
        handlers: Mapping[Type, DataModel] or None
            Optionally provide the initial handlers mapping.
        N)Ú	_handlersÚweakrefÚWeakKeyDictionaryÚ_cache)ÚselfÚhandlerss     úV/root/voice-cloning/.venv/lib/python3.11/site-packages/numba/core/datamodel/manager.pyÚ__init__zDataModelManager.__init__   s#   € ð "˜ RˆŒåÔ/Ñ1Ô1ˆŒˆˆó    c                 óR   — t          |t          j        ¦  «        sJ ‚|| j        |<   dS )zNRegister the datamodel factory corresponding to a frontend-type class
        N)Ú
issubclassr   ÚTyper   )r   Ú	fetypeclsÚhandlers      r   ÚregisterzDataModelManager.register   s.   € õ ˜)¥U¤ZÑ0Ô0Ð0Ð0Ð0Ø$+ˆŒyÑ!Ð!Ð!r   c                 ó¢   — 	 | j         |         S # t          $ r Y nw xY w| j        t          |¦  «                 } || |¦  «        x}| j         |<   |S )zMReturns the corresponding datamodel given the frontend-type instance
        )r   ÚKeyErrorr   Útype)r   Úfetyper   Úmodels       r   ÚlookupzDataModelManager.lookup   sh   € ð	Ø”;˜vÔ&Ð&øÝð 	ð 	ð 	ØˆDð	øøøà”.¥ f¡¤Ô.ˆØ&- g¨d°FÑ&;Ô&;Ð;ˆ”˜FÑ#Øˆs   ‚ 
›c                 ó,   — |                       |¦  «        S )zShorthand for lookup()
        )r   )r   r   s     r   Ú__getitem__zDataModelManager.__getitem__(   s   € ð {Š{˜6Ñ"Ô"Ð"r   c                 óN   — t          | j                             ¦   «         ¦  «        S )z’
        Make a copy of the manager.
        Use this to inherit from the default data model and specialize it
        for custom target.
        )r   r   Úcopy)r   s    r   r    zDataModelManager.copy-   s    € õ   ¤× 3Ò 3Ñ 5Ô 5Ñ6Ô6Ð6r   c                 óT   — t          | j        |j        ¦  «        }t          |¦  «        S )aÕ  Create a new DataModelManager by chaining the handlers mapping of
        `other_manager` with a fresh handlers mapping.

        Any existing and new handlers inserted to `other_manager` will be
        visible to the new manager. Any handlers inserted to the new manager
        can override existing handlers in `other_manager` without actually
        mutating `other_manager`.

        Parameters
        ----------
        other_manager: DataModelManager
        )r   r   r   )r   Úother_managerÚchaineds      r   ÚchainzDataModelManager.chain5   s&   € õ ˜4œ>¨=Ô+BÑCÔCˆÝ Ñ(Ô(Ð(r   )N)
Ú__name__Ú
__module__Ú__qualname__Ú__doc__r   r   r   r   r    r$   © r   r   r   r      s}   € € € € € ðð ð
2ð 
2ð 
2ð 
2ð,ð ,ð ,ð	ð 	ð 	ð#ð #ð #ð
7ð 7ð 7ð)ð )ð )ð )ð )r   r   )r	   Úcollectionsr   Ú
numba.corer   Úobjectr   r)   r   r   ú<module>r-      sf   ðØ €€€Ø  Ð  Ð  Ð  Ð  Ð  à Ð Ð Ð Ð Ð ð<)ð <)ð <)ð <)ð <)vñ <)ô <)ð <)ð <)ð <)r   