o
    pi7	                     @   s:   d dl mZ d dlmZ 	d	dedee defddZdS )
    )Optional)import_moduleN
class_namedefault_module_namereturnc                 C   s`   |  d}t|dkr|du rd|  d}t||}nd|dd }|d } tt|| S )a  Load class by its name

    Parameters
    ----------
    class_name : `str`
    default_module_name : `str`, optional
        When provided and `class_name` does not contain the absolute path

    Returns
    -------
    Klass : `type`
        Class.

    Example
    -------
    >>> ClopiNet = get_class_by_name(
    ...     'pyannote.audio.embedding.models.ClopiNet')
    >>> ClopiNet = get_class_by_name(
    ...     'ClopiNet', default_module_name='pyannote.audio.embedding.models')
    .   Nz-Could not infer module name from class name "z%".Please provide default module name.)splitlen
ValueErrorjoingetattrr   )r   r   tokensmsgmodule_name r   N/home/ubuntu/.local/lib/python3.10/site-packages/pyannote/core/utils/helper.pyget_class_by_name!   s   

r   )N)typingr   	importlibr   strtyper   r   r   r   r   <module>   s   