a
    ij                     @  s   d Z ddlmZ ddlZddlZddlmZmZ ddlmZ ddlm	Z	 ddl
mZ edZe ZejrG d	d
 d
eZG dd dedZneeef ZddddddZdS )z/Auto-apply normalization to a dataclass fields.    )annotationsN)AnyTypeVar)field_utils)helpers)	Annotated_Tc                   @  s   e Zd Zdd ZdS )_AutoCastMetac                 C  s   |S )N )clsvaluer
   r
   R/home/ghrups/robot-bench/.venv/lib/python3.9/site-packages/etils/edc/cast_utils.py__getitem__%   s    z_AutoCastMeta.__getitem__N)__name__
__module____qualname__r   r
   r
   r
   r   r	   #   s   r	   c                   @  s   e Zd ZdS )AutoCastN)r   r   r   r
   r
   r
   r   r   (   s   r   )	metaclasszdataclasses.Field[Any]zhelpers.Hintzhelpers.Descriptor)fieldhintreturnc                 C  s*   | j tjurtd| j dtj|dS )z/Apply the auto-casting magic to a single class.zdataclass field z1 cannot be both `AutoCast` and `default_factory=`)validate)default_factorydataclassesMISSING
ValueErrornamer   r   )r   r   r
   r
   r   make_auto_cast_descriptor/   s
    r   )__doc__
__future__r   r   typingr   r   Z	etils.edcr   r   Ztyping_extensionsr   r   objectZ_IS_NORMALIZEDTYPE_CHECKINGtyper	   r   r   r
   r
   r
   r   <module>   s   