U
    ŒàôgL  ã                   @   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                   @   s8   e Zd ZdZd
eeee ddœdd„Zedœ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   úD/tmp/pip-unpacked-wheel-f3sx1i9r/redis/commands/search/suggestion.pyÚ__init__   s    

zSuggestion.__init__)r
   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eeddœ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
    N)Úwith_scoresÚwith_payloadsr
   c                 C   sb   || _ || _|r(|r(d| _d| _d| _n0|r:d| _d| _n|rLd| _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   sn   t dt| jƒ| jƒD ]T}| j| }| jr<t| j|| j  ƒnd}| jrV| 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   