o
    <‘ði¹	  ã                   @   s.   d dl mZ G dd„ deƒZG dd„ dƒZdS )é    )ÚEnumc                   @   s   e Zd ZdZdZdZdS )Ú	IndexTypez,Enum of the currently supported index types.é   é   N)Ú__name__Ú
__module__Ú__qualname__Ú__doc__ÚHASHÚJSON© r   r   úe/root/parts/websockify/install/lib/python3.10/site-packages/redis/commands/search/index_definition.pyr      s    r   c                   @   sZ   e Zd ZdZg dddddddfdd„Zdd„ Zdd	„ Zd
d„ Zdd„ Zdd„ Z	dd„ Z
dS )ÚIndexDefinitionzgIndexDefinition is used to define a index definition for automatic
    indexing on Hash or Json update.Ng      ð?c	           	      C   sJ   g | _ |  |¡ |  |¡ |  |¡ |  ||¡ |  ||¡ |  |¡ d S )N)ÚargsÚ_append_index_typeÚ_append_prefixÚ_append_filterÚ_append_languageÚ_append_scoreÚ_append_payload)	ÚselfÚprefixÚfilterÚlanguage_fieldÚlanguageÚscore_fieldÚscoreÚpayload_fieldÚ
index_typer   r   r   Ú__init__   s   


zIndexDefinition.__init__c                 C   sZ   |t ju r| j ddg¡ dS |t ju r| j ddg¡ dS |dur+tdtt ƒ› ƒ‚dS )z4Append `ON HASH` or `ON JSON` according to the enum.ÚONr
   r   Nzindex_type must be one of )r   r
   r   Úextendr   ÚRuntimeErrorÚlist)r   r   r   r   r   r   "   s   

ÿz"IndexDefinition._append_index_typec                 C   sF   t |ƒdkr| j d¡ | j t |ƒ¡ |D ]
}| j |¡ qdS dS )zAppend PREFIX.r   ÚPREFIXN)Úlenr   Úappend)r   r   Úpr   r   r   r   +   s   üzIndexDefinition._append_prefixc                 C   ó(   |dur| j  d¡ | j  |¡ dS dS )zAppend FILTER.NÚFILTER©r   r&   )r   r   r   r   r   r   3   ó   þzIndexDefinition._append_filterc                 C   óH   |dur| j  d¡ | j  |¡ |dur"| j  d¡ | j  |¡ dS dS )z#Append LANGUAGE_FIELD and LANGUAGE.NÚLANGUAGE_FIELDÚLANGUAGEr*   )r   r   r   r   r   r   r   9   ó   þz IndexDefinition._append_languagec                 C   r,   )zAppend SCORE_FIELD and SCORE.NÚSCORE_FIELDÚSCOREr*   )r   r   r   r   r   r   r   B   r/   zIndexDefinition._append_scorec                 C   r(   )zAppend PAYLOAD_FIELD.NÚPAYLOAD_FIELDr*   )r   r   r   r   r   r   K   r+   zIndexDefinition._append_payload)r   r   r   r	   r   r   r   r   r   r   r   r   r   r   r   r      s"    
÷			r   N)Úenumr   r   r   r   r   r   r   Ú<module>   s    