U
    dD	                     @   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ks|dk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   Zedge_idr
    r   =/tmp/pip-unpacked-wheel-f5h5_hbx/redis/commands/graph/edge.py__init__
   s    

zEdge.__init__c                 C   s<   d}| j r8ddd t| j  D }|d| d 7 }|S )Nr   ,c                 s   s&   | ]\}}|d  t t| V  qdS :Nstrr   .0keyvalr   r   r   	<genexpr>   s   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r8|d| j 7 }| jrlddd t| j D }|d| d 7 }|d	7 }t | j	tr|t| j	7 }n|d7 }|S )
Nz()z-[r   r   c                 s   s&   | ]\}}|d  t t| V  qdS r   r   r   r   r   r   r   0   s   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   | j d k	r$|j d k	r$| j |j kr$dS | j|jkr4dS | j|jkrDdS | j|jkrTdS t| jt|jkrldS | j|jkr|dS dS )NTF)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)Zhelpersr   noder   r   r   r   r   r   <module>   s   