
    +h	                     :    d dl mZ  G d de      Z G d d      Zy)    )Enumc                       e Zd ZdZdZdZy)	IndexTypez,Enum of the currently supported index types.      N)__name__
__module____qualname____doc__HASHJSON     X/var/www/html/venv/lib/python3.12/site-packages/redis/commands/search/indexDefinition.pyr   r      s    6DDr   r   c                   L    e Zd ZdZg dddddddfdZd Zd Zd Zd Zd	 Z	d
 Z
y)IndexDefinitionzgIndexDefinition is used to define a index definition for automatic
    indexing on Hash or Json update.Ng      ?c	                     g | _         | j                  |       | j                  |       | j                  |       | j	                  ||       | j                  ||       | j                  |       y )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_types	            r   __init__zIndexDefinition.__init__   sc     	
+F#F#nh7;.]+r   c                     |t         j                  u r| j                  j                  ddg       y|t         j                  u r| j                  j                  ddg       y|t        dt        t                      y)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#   s     r   r   z"IndexDefinition._append_index_type"   si    'IIdF^,9>>)IIdF^,#!;DO;LMNN $r   c                     t        |      dkD  rb| j                  j                  d       | j                  j                  t        |             |D ]  }| j                  j                  |        yy)zAppend PREFIX.r   PREFIXN)lenr   append)r   r   ps      r   r   zIndexDefinition._append_prefix+   s[    v;?IIX&IIS[) $		  #$ r   c                 v    |7| j                   j                  d       | j                   j                  |       yy)zAppend FILTER.NFILTERr   r-   )r   r   s     r   r   zIndexDefinition._append_filter3   s1    IIX&IIV$ r   c                     |6| j                   j                  d       | j                   j                  |       |7| j                   j                  d       | j                   j                  |       yy)z#Append LANGUAGE_FIELD and LANGUAGE.NLANGUAGE_FIELDLANGUAGEr1   )r   r   r   s      r   r   z IndexDefinition._append_language9   s\    %II-.II^,IIZ(IIX&  r   c                     |6| j                   j                  d       | j                   j                  |       |7| j                   j                  d       | j                   j                  |       yy)zAppend SCORE_FIELD and SCORE.NSCORE_FIELDSCOREr1   )r   r    r!   s      r   r   zIndexDefinition._append_scoreB   s[    "II]+II[)IIW%IIU# r   c                 v    |7| j                   j                  d       | j                   j                  |       yy)zAppend PAYLOAD_FIELD.NPAYLOAD_FIELDr1   )r   r"   s     r   r   zIndexDefinition._append_payloadK   s1    $II_-II]+ %r   )r   r	   r
   r   r$   r   r   r   r   r   r   r   r   r   r   r      sE    (
 ,&O$%'$,r   r   N)enumr   r   r   r   r   r   <module>r;      s      D, D,r   