
    Ng?                     R    d dl mZmZ d dlmZmZmZmZmZm	Z	  G d de	          Z
dS )    )TupleUnion)
Comparator
Comparison	OperationOperatorStructuredQueryVisitorc                       e Zd ZdZej        ej        ej        ej        ej	        ej
        fZ	 ej        ej        fZ	 deeef         defdZdedefdZdedefdZd	edeeef         fd
ZdS )DingoDBTranslatorzFTranslate `DingoDB` internal query language elements to valid filters.funcreturnc                 @    |                      |           d|j         S )N$)_validate_funcvalue)selfr   s     h/var/www/html/ai-engine/env/lib/python3.11/site-packages/langchain_community/query_constructors/dingo.py_format_funczDingoDBTranslator._format_func   s&    D!!!4:    	operationc                     |S N )r   r   s     r   visit_operationz!DingoDBTranslator.visit_operation    s    r   
comparisonc                     |S r   r   )r   r   s     r   visit_comparisonz"DingoDBTranslator.visit_comparison#   s    r   structured_queryc                 d    |j         i }ndd|j                             |           ii}|j        |fS )Nsearch_paramslangchain_expr)filteracceptquery)r   r   kwargss      r   visit_structured_queryz(DingoDBTranslator.visit_structured_query&   sL     "*FF  $&6&=&D&DT&J&J"F
  %v--r   N)__name__
__module____qualname____doc__r   EQNELTLTEGTGTEallowed_comparatorsr   ANDORallowed_operatorsr   strr   r   r   r   r   r	   r   dictr'   r   r   r   r   r      s        PP 	 1!x{3. x';!<           y    : *    . /.	sDy	. . . . . .r   r   N)typingr   r   langchain_core.structured_queryr   r   r   r   r	   r
   r   r   r   r   <module>r:      s                          $. $. $. $. $. $. $. $. $. $.r   