a
    bg?                     @   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eeef edddZeedddZeedd	d
Zeeeef d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   z/var/www/html/cobodadashboardai.evdpl.com/venv/lib/python3.9/site-packages/langchain_community/query_constructors/dingo.py_format_func   s    
zDingoDBTranslator._format_func)	operationr   c                 C   s   |S Nr   )r   r   r   r   r   visit_operation    s    z!DingoDBTranslator.visit_operation)
comparisonr   c                 C   s   |S r   r   )r   r   r   r   r   visit_comparison#   s    z"DingoDBTranslator.visit_comparison)structured_queryr   c                 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    
