
    +h	                     0    d dl mZ ddlmZ  G d d      Zy)   )quote_string   )Nodec                   *    e Zd ZdZddZd Zd Zd Zy)Edgez'
    An edge connecting two nodes.
    Nc                 x    ||t        d      || _        |xs d| _        |xs i | _        || _        || _        y)z$
        Create a new edge.
        Nz*Both src_node & dest_node must be provided )AssertionErroridrelation
propertiessrc_node	dest_node)selfr   r   r   edge_idr   s         L/var/www/html/venv/lib/python3.12/site-packages/redis/commands/graph/edge.py__init__zEdge.__init__
   sI     y0 !!MNN B$* "    c                     d}| j                   rDdj                  d t        | j                   j                               D              }|d|z   dz   z  }|S )Nr	   ,c              3   V   K   | ]!  \  }}|d z   t        t        |            z    # yw:Nstrr   .0keyvals      r   	<genexpr>z!Edge.to_string.<locals>.<genexpr>   /      C c	CS 122   '){})r   joinsorteditemsr   respropss      r   	to_stringzEdge.to_string   sU    ??HH  &t'<'<'> ? E 3;$$C
r   c                    t        | j                  t              rt        | j                        }nd}|dz  }| j                  r|d| j                  z   z  }| j
                  rDdj                  d t        | j
                  j                               D              }|d|z   dz   z  }|dz  }t        | j                  t              r|t        | j                        z  }|S |dz  }|S )	Nz()z-[r   r   c              3   V   K   | ]!  \  }}|d z   t        t        |            z    # ywr   r   r   s      r   r    zEdge.__str__.<locals>.<genexpr>0   r!   r"   r#   r$   z]->)

isinstancer   r   r   r   r   r%   r&   r'   r   r(   s      r   __str__zEdge.__str__$   s    dmmT*dmm$CC 	t==3&&C??HH  &t'<'<'> ? E 3;$$Cu dnnd+3t~~&&C 
 4KC
r   c                    t        |t              sy| j                  &|j                  | j                  |j                  k(  ry| j                  |j                  k7  ry| j                  |j                  k7  ry| j
                  |j
                  k7  ryt        | j                        t        |j                        k7  ry| j                  |j                  k7  ryy)NFT)r.   r   r   r   r   r   lenr   )r   rhss     r   __eq__zEdge.__eq__?   s    #t$ 77366#5$''SVV:K ==CLL(>>S]]* ==CLL( t3s~~#66 ??cnn,r   )NN)__name__
__module____qualname____doc__r   r+   r/   r3    r   r   r   r      s    #	6r   r   N)helpersr   noder   r   r8   r   r   <module>r;      s    " V Vr   