
    dhn                     h    S SK JrJr  S SKJrJrJrJrJrJ	r	  S\\
\\4   S\4S jr " S S\	5      rg)	    )TupleUnion)
Comparator
Comparison	OperationOperatorStructuredQueryVisitorvaluereturnc                 N    [        U [        5      (       a  SU  S3$ [        U 5      $ )zDConvert a value to a string and add single quotes if it is a string.')
isinstancestr)r   s    f/var/www/html/shao/venv/lib/python3.13/site-packages/langchain_community/query_constructors/vectara.pyprocess_valuer      s'    %5'|5z    c                   0   \ rS rSrSr\R                  \R                  /r \	R                  \	R                  \	R                  \	R                  \	R                  \	R                  /r S\\\	4   S\4S jrS\S\4S jrS\S\4S	 jrS
\S\\\4   4S jrSrg)VectaraTranslator   zFTranslate `Vectara` internal query language elements to valid filters.funcr   c                 0   [         R                  S[         R                  S[        R                  S[        R
                  S[        R                  S[        R                  S[        R                  S[        R                  S0nU R                  U5        X!   $ )	Nz and z or =z!=>z>=<z<=)r   ANDORr   EQNEGTGTELTLTE_validate_func)selfr   map_dicts      r   _format_funcVectaraTranslator._format_func$   si    LL'KKMM3MM4MM3NNDMM3NND	
 	D!~r   	operationc                     UR                    Vs/ sH  o"R                  U 5      PM     nnU R                  UR                  5      nSUR	                  U5      -   S-   $ s  snf )Nz(  ))	argumentsacceptr'   operatorjoin)r%   r)   argargsr.   s        r   visit_operation!VectaraTranslator.visit_operation2   sZ    ,5,?,?@,?S

4 ,?@$$Y%7%78hmmD))D00 As   A
comparisonc                     U R                  UR                  5      n[        UR                  5      nUR                  nSU-   S-   U-   S-   U-   S-   $ )Nz( doc. r+   )r'   
comparatorr   r   	attribute)r%   r4   r7   processed_valuer8   s        r   visit_comparison"VectaraTranslator.visit_comparison7   sZ    &&z'<'<=
'
(8(89((	I%+j83>PSWW	
r   structured_queryc                 x    UR                   c  0 nOSUR                   R                  U 5      0nUR                  U4$ )Nfilter)r>   r-   query)r%   r<   kwargss      r   visit_structured_query(VectaraTranslator.visit_structured_query?   sB     ""*F 0 7 7 > >t DEF%%v--r    N)__name__
__module____qualname____firstlineno____doc__r   r   r   allowed_operatorsr   r   r   r    r!   r"   r#   allowed_comparatorsr   r   r'   r   r2   r   r:   r	   r   dictrA   __static_attributes__rC   r   r   r   r      s    P!x{{3. 1x';!<  1 1s 1

: 
# 
. /.	sDy	.r   r   N)typingr   r   langchain_core.structured_queryr   r   r   r   r	   r
   intfloatr   r   r   rC   r   r   <module>rQ      s<     sE3/ C 1. 1.r   