o
    Zh?                     @   sD   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 de	Z
dS )    )TupleUnion)
Comparator
Comparison	OperationOperatorStructuredQueryVisitorc                   @   s   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dZdedefddZd	edefd
dZdedeeef fddZdS )DingoDBTranslatorzFTranslate `DingoDB` internal query language elements to valid filters.funcreturnc                 C   s   |  | d|j S )N$)Z_validate_funcvalue)selfr    r   c/var/www/html/lang_env/lib/python3.10/site-packages/langchain_community/query_constructors/dingo.py_format_func   s   
zDingoDBTranslator._format_func	operationc                 C      |S Nr   )r   r   r   r   r   visit_operation       z!DingoDBTranslator.visit_operation
comparisonc                 C   r   r   r   )r   r   r   r   r   visit_comparison#   r   z"DingoDBTranslator.visit_comparisonstructured_queryc                 C   s.   |j d u ri }n
dd|j | ii}|j|fS )NZsearch_paramsZlangchain_expr)filteracceptquery)r   r   kwargsr   r   r   visit_structured_query&   s   

z(DingoDBTranslator.visit_structured_queryN)__name__
__module____qualname____doc__r   ZEQZNELTZLTEGTZGTEZallowed_comparatorsr   ANDORZallowed_operatorsr   strr   r   r   r   r   r   r   dictr   r   r   r   r   r
      s(    
r
   N)typingr   r   Zlangchain_core.structured_queryr   r   r   r   r   r	   r
   r   r   r   r   <module>   s     
