o
    ÉÙ¾iæ  ã                   @   s<   d Z ddlmZ ddgZG dd„ deƒZG dd„ deƒZdS )zBuilt-in function base classé    )Úabsolute_importÚBuiltinFunctionÚBundledFunctionc                   @   s   e Zd ZdZedd„ ƒZdS )r   zBase builtin function class.c                 C   s   t ‚)z)Return the name of this builtin function.)ÚNotImplementedError©Úself© r   úH/home/ubuntu/.local/lib/python3.10/site-packages/decord/function/base.pyÚname   ó   zBuiltinFunction.nameN)Ú__name__Ú
__module__Ú__qualname__Ú__doc__Úpropertyr
   r   r   r   r	   r      s    c                   @   s,   e Zd ZdZdd„ Zdd„ Zedd„ ƒZdS )	r   zŽA utility class that bundles multiple functions.

    Parameters
    ----------
    fn_list : list of callable
        The function list.
    c                 C   s
   || _ d S )N)Úfn_list)r   r   r   r   r	   Ú__init__   s   
zBundledFunction.__init__c                 O   s(   i }| j D ]}| ||i |¤Ž¡ q|S )zªRegular computation of this builtin function

        This will be used when optimization is not available and should
        ONLY be called by DECORD framework.
        )r   Úupdate)r   ÚargsÚkwargsÚretÚfnr   r   r	   Ú__call__   s   
zBundledFunction.__call__c                 C   s   dS )zReturn the name.Úbundledr   r   r   r   r	   r
   #   r   zBundledFunction.nameN)r   r   r   r   r   r   r   r
   r   r   r   r	   r      s    N)r   Ú
__future__r   Ú__all__Úobjectr   r   r   r   r   r	   Ú<module>   s
    