
    Pf	                     8    d dl mZ ddlmZ  G d d          ZdS )   )quote_string   )Nodec                   ,    e Zd ZdZddZd Zd Zd ZdS )Edgez'
    An edge connecting two nodes.
    Nc                 z    ||t          d          || _        |pd| _        |pi | _        || _        || _        dS )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         K/var/www/html/env/lib/python3.11/site-packages/redis/commands/graph/edge.py__init__zEdge.__init__
   sP     y0 !!MNNN B$* "    c                     d}| j         rNd                    d t          | j                                                   D                       }|d|z   dz   z  }|S )Nr	   ,c              3   `   K   | ])\  }}|d z   t          t          |                    z   V  *dS :Nstrr   .0keyvals      r   	<genexpr>z!Edge.to_string.<locals>.<genexpr>   S        C c	CS 1 1222     r   {})r   joinsorteditemsr   respropss      r   	to_stringzEdge.to_string   sp    ? 	%HH   &t'<'<'>'> ? ?    E 3;$$C
r   c                    t          | j        t                    rt          | j                  }nd}|dz  }| j        r|d| j        z   z  }| j        rNd                    d t          | j                                                  D                       }|d|z   dz   z  }|dz  }t          | j	        t                    r|t          | j	                  z  }n|dz  }|S )	Nz()z-[r   r   c              3   `   K   | ])\  }}|d z   t          t          |                    z   V  *dS 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    dmT** 	dm$$CCC 	t= 	'3&&C? 	%HH   &t'<'<'>'> ? ?    E 3;$$Cu dnd++ 	3t~&&&CC4KC
r   c                 \   t          |t                    sdS | j        |j        | j        |j        k    rdS | j        |j        k    rdS | j        |j        k    rdS | j        |j        k    rdS t          | j                  t          |j                  k    rdS | j        |j        k    rdS dS )NFT)r-   r   r   r   r   r   lenr   )r   rhss     r   __eq__zEdge.__eq__?   s    #t$$ 	5 736#5$'SV:K:K4 =CL((5>S]**5 =CL((5 t3s~#6#6665 ?cn,,5tr   )NN)__name__
__module____qualname____doc__r   r*   r.   r2    r   r   r   r      s_         # # # #	 	 	  6    r   r   N)helpersr   noder   r   r7   r   r   <module>r:      se    " " " " " "      V V V V V V V V V Vr   