o
    +ifG                     @   st   d dl Z d dlZd dlZd dlmZ d dlmZmZmZmZ ddl	m
Z
 edddZed	d
G dd de jZdS )    N)	dataclass)ClassVarDictTypeTypeVar   )FeaturesTTaskTemplate)boundT)frozenc                   @   s   e Zd ZU eed< ee ed< ee ed< dededefddZe	defd	d
Z
e	ejdeeef fddZedee dedefddZdS )r
   taskinput_schemalabel_schemaselffeaturesreturnc                 C   s
   t | S )z8
        Align features with the task template.
        )copydeepcopy)r   r    r   L/var/www/html/corbot_env/lib/python3.10/site-packages/datasets/tasks/base.pyalign_with_features   s   
z TaskTemplate.align_with_featuresc                 C   s   t di | j| jS )Nr   )r   r   r   r   r   r   r   r      s   zTaskTemplate.featuresc                 C   s   t )N)NotImplementedErrorr   r   r   r   column_mapping   s   zTaskTemplate.column_mappingclstemplate_dictc                    s4   dd t | D  | di  fdd| D S )Nc                 S   s   h | ]}|j qS r   )name).0fr   r   r   	<setcomp>&   s    z)TaskTemplate.from_dict.<locals>.<setcomp>c                    s   i | ]\}}| v r||qS r   r   )r   kvfield_namesr   r   
<dictcomp>'   s    z*TaskTemplate.from_dict.<locals>.<dictcomp>r   )dataclassesfieldsitems)r   r   r   r#   r   	from_dict$   s    zTaskTemplate.from_dictN)__name__
__module____qualname__str__annotations__r   r   r	   r   propertyr   abcabstractmethodr   r   classmethodr   dictr)   r   r   r   r   r
      s   
  )r0   r   r&   r   typingr   r   r   r   r   r   r	   ABCr
   r   r   r   r   <module>   s    