
    +gdG                         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          Z ed	
           G d de j                              ZdS )    N)	dataclass)ClassVarDictTypeTypeVar   )FeaturesTTaskTemplate)boundT)frozenc                       e Zd ZU eed<   ee         ed<   ee         ed<   dededefdZe	defd            Z
e	ej        deeef         fd	                        Zed
ee         dedefd            ZdS )r   taskinput_schemalabel_schemaselffeaturesreturnc                 *    t          j        |           S )z8
        Align features with the task template.
        )copydeepcopy)r   r   s     3lib/python3.11/site-packages/datasets/tasks/base.pyalign_with_featuresz TaskTemplate.align_with_features   s    
 }T"""    c                 2    t          di | j        | j        S )N )r	   r   r   r   s    r   r   zTaskTemplate.features   s!    AA$+At/@AAAr   c                     t           )N)NotImplementedErrorr   s    r   column_mappingzTaskTemplate.column_mapping   s
     "!r   clstemplate_dictc                     d t          j        |           D              | di fd|                                D             S )Nc                     h | ]	}|j         
S r   )name).0fs     r   	<setcomp>z)TaskTemplate.from_dict.<locals>.<setcomp>&   s    ???!qv???r   c                 $    i | ]\  }}|v 	||S r   r   )r&   kvfield_namess      r   
<dictcomp>z*TaskTemplate.from_dict.<locals>.<dictcomp>'   s)    QQQtq![@P@Pa@P@P@Pr   r   )dataclassesfieldsitems)r!   r"   r,   s     @r   	from_dictzTaskTemplate.from_dict$   sX    ??{'9#'>'>???sRRQQQQ}':':'<'<QQQRRRr   N)__name__
__module____qualname__str__annotations__r   r	   r
   r   propertyr   abcabstractmethodr   r    classmethodr   dictr1   r   r   r   r   r      s         III8$$$$8$$$$#! #x #A # # # # B( B B B XB "S#X " " "  X" StAw St S S S S [S S Sr   )r8   r   r.   r   typingr   r   r   r   r   r	   r
   ABCr   r   r   r   <module>r>      s    



      ! ! ! ! ! ! 0 0 0 0 0 0 0 0 0 0 0 0       GC~&&& $S S S S S37 S S S S Sr   