o
    `f	                     @   s*   d dl mZ ddlmZ G dd dZdS )   )quote_string   )Nodec                   @   s2   e Zd ZdZdddZdd Zdd Zd	d
 ZdS )Edgez'
    An edge connecting two nodes.
    Nc                 C   sB   |du s|du r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
    r   R/home/ubuntu/webapp/venv/lib/python3.10/site-packages/redis/commands/graph/edge.py__init__
   s   


zEdge.__init__c                 C   s<   d}| j rddd t| j  D }|d| d 7 }|S )Nr   ,c                 s   (    | ]\}}|d  t t| V  qdS :Nstrr   .0keyvalr   r   r   	<genexpr>   
    
z!Edge.to_string.<locals>.<genexpr>{})r
   joinsorteditemsr   respropsr   r   r   	to_string   s   
zEdge.to_stringc                 C   s   t | jtrt| j}nd}|d7 }| jr|d| j 7 }| jr6ddd t| j D }|d| d 7 }|d	7 }t | j	trI|t| j	7 }|S |d7 }|S )
Nz()z-[r   r   c                 s   r   r   r   r   r   r   r   r   0   r   zEdge.__str__.<locals>.<genexpr>r   r   z]->)

isinstancer   r   r   r	   r
   r    r!   r"   r   r#   r   r   r   __str__$   s"   
zEdge.__str__c                 C   s   t |tsdS | jd ur|jd ur| j|jkrdS | j|jkr!dS | j|jkr)dS | j|jkr1dS t| jt|jkr=dS | j|jkrEdS dS )NFT)r'   r   r   r   r   r	   lenr
   )r   rhsr   r   r   __eq__?   s   
 zEdge.__eq__)NN)__name__
__module____qualname____doc__r   r&   r(   r+   r   r   r   r   r      s    
r   N)helpersr   noder   r   r   r   r   r   <module>   s    