Source code for langchain_community.query_constructors.astradb
"""Logic for converting internal query language to a valid AstraDB query."""fromtypingimportDict,Tuple,Unionfromlangchain_core.structured_queryimport(Comparator,Comparison,Operation,Operator,StructuredQuery,Visitor,)MULTIPLE_ARITY_COMPARATORS=[Comparator.IN,Comparator.NIN]
[docs]classAstraDBTranslator(Visitor):"""Translate AstraDB internal query language elements to valid filters.""""""Subset of allowed logical comparators."""allowed_comparators=[Comparator.EQ,Comparator.NE,Comparator.GT,Comparator.GTE,Comparator.LT,Comparator.LTE,Comparator.IN,Comparator.NIN,]"""Subset of allowed logical operators."""allowed_operators=[Operator.AND,Operator.OR]def_format_func(self,func:Union[Operator,Comparator])->str:self._validate_func(func)map_dict={Operator.AND:"$and",Operator.OR:"$or",Comparator.EQ:"$eq",Comparator.NE:"$ne",Comparator.GTE:"$gte",Comparator.LTE:"$lte",Comparator.LT:"$lt",Comparator.GT:"$gt",Comparator.IN:"$in",Comparator.NIN:"$nin",}returnmap_dict[func]