
    ]j                     Z    d 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
mZ  G d de
      Zy)
    N)uuid4)AnyListDictOptional)	BaseModelFieldc                       e Zd ZU dZ ed       Zeed<   eed<   eed<   eed<   g Z	e
ee      ed<   d	 Zd
 Zd Zd Zed        ZddZd Zy)Regionz[
    A Region is an item in the `result` list of a PredictionValue or AnnotationValue.
    c                  (    t        t                     S )N)strr        Q/root/env/lib/python3.12/site-packages/label_studio_sdk/label_interface/region.py<lambda>zRegion.<lambda>   s    CL r   )default_factoryidfrom_tagto_tagvalue	relationsc                     | j                   | j                  j                  | j                  j                  | j                  j                  j                         | j                  j                         dS ) )r   	from_nameto_nametyper   )r   r   namer   taglowerr   dictselfs    r   _dictzRegion._dict   sS     ''++{{''MM%%++-ZZ__&
 	
r   c                     | j                   D cg c]Y  }i | j                  |j                  di       j                  d|j                  dd      d|j                  d      rd|d   ini [ c}S c c}w )r   regionrelation	directionright)from_idto_idr   r(   labels)r   r   get)r#   rels     r   _dict_relationszRegion._dict_relations!   s     ~~	
 772.11" WW[':	< 
 .1WWX->3x=)B	
 		
 	
s   AA0c                 H    t        j                  | j                               S r   )jsondumpsr$   r"   s    r   to_jsonzRegion.to_json/   s    zz$**,''r   c                 H    t        j                  | j                               S r1   )r2   r3   r/   r"   s    r   to_json_relationszRegion.to_json_relations3   s    zz$..011r   c                 2    t        | j                        dkD  S )Nr   )lenr   r"   s    r   has_relationszRegion.has_relations7   s    4>>"Q&&r   Nc                 B    | j                   j                  |||d       y)r   )r&   r(   r,   N)r   append)r#   r&   r(   labels       r   add_relationzRegion.add_relation;   s    &yTY[\r   c                     || _         y)r   N)r   )r#   relss     r   set_relationszRegion.set_relations?   s	    r   )Nr)   N)__name__
__module____qualname____doc__r
   r   r   __annotations__r   r   r   r   r   r$   r/   r4   r6   propertyr9   r=   r@   r   r   r   r   r      sn     $89B9MKJ&(IxT
#(	

(2 ' ']r   r   )rD   r2   uuidr   typingr   r   r   r   pydanticr	   r
   r   r   r   r   <module>rJ      s'      , , %6Y 6r   