o
    `fL                     @   s8   d dl mZ ddlmZ G dd dZG dd dZdS )	    )Optional   )	to_stringc                	   @   s@   e Zd ZdZ	ddededee ddfdd	Zdefd
dZdS )
Suggestionz`
    Represents a single suggestion being sent or returned from the
    autocomplete server
          ?Nstringscorepayloadreturnc                 C   s   t || _t || _|| _d S N)r   r   r	   r   )selfr   r   r	    r   Y/home/ubuntu/webapp/venv/lib/python3.10/site-packages/redis/commands/search/suggestion.py__init__   s   


zSuggestion.__init__c                 C   s   | j S r   )r   )r   r   r   r   __repr__   s   zSuggestion.__repr__)r   N)	__name__
__module____qualname____doc__strfloatr   r   r   r   r   r   r   r      s    
r   c                   @   s.   e Zd ZdZdededdfddZdd	 ZdS )
SuggestionParserz
    Internal class used to parse results from the `SUGGET` command.
    This needs to consume either 1, 2, or 3 values at a time from
    the return value depending on what objects were requested
    with_scoreswith_payloadsr
   Nc                 C   sb   || _ || _|r|rd| _d| _d| _n|rd| _d| _n|r&d| _d| _nd| _d| _|| _d S )N   r      )r   r   sugsize	_scoreidx_payloadidx_sugs)r   r   r   retr   r   r   r      s   
zSuggestionParser.__init__c                 c   sp    t dt| j| jD ]*}| j| }| jrt| j|| j  nd}| jr,| j|| j  nd }t	|||V  qd S )Nr   r   )
rangelenr    r   r   r   r   r   r   r   )r   issr   r	   r   r   r   __iter__2   s   
zSuggestionParser.__iter__)r   r   r   r   boolr   r&   r   r   r   r   r      s    r   N)typingr   _utilr   r   r   r   r   r   r   <module>   s    