U
    ‰d¹	  ã                   @   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   úI/tmp/pip-unpacked-wheel-f5h5_hbx/redis/commands/search/indexDefinition.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   sV   |t jkr| j ddg¡ n6|t jkr8| j ddg¡ n|dk	rRt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   sB   t |ƒdkr>| j d¡ | j t |ƒ¡ |D ]}| j |¡ q,dS )zAppend PREFIX.r   ÚPREFIXN)Úlenr   Úappend)r   r   Úpr   r   r   r   +   s
    zIndexDefinition._append_prefixc                 C   s$   |dk	r | j  d¡ | j  |¡ dS )zAppend FILTER.NZFILTER©r   r&   )r   r   r   r   r   r   3   s    zIndexDefinition._append_filterc                 C   sD   |dk	r | j  d¡ | j  |¡ |dk	r@| j  d¡ | j  |¡ dS )z#Append LANGUAGE_FIELD and LANGUAGE.NZLANGUAGE_FIELDÚLANGUAGEr(   )r   r   r   r   r   r   r   9   s    z IndexDefinition._append_languagec                 C   sD   |dk	r | j  d¡ | j  |¡ |dk	r@| j  d¡ | j  |¡ dS )zAppend SCORE_FIELD and SCORE.NZSCORE_FIELDZSCOREr(   )r   r   r   r   r   r   r   B   s    zIndexDefinition._append_scorec                 C   s$   |dk	r | j  d¡ | j  |¡ dS )zAppend PAYLOAD_FIELD.NZPAYLOAD_FIELDr(   )r   r   r   r   r   r   K   s    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   