Spaces:
Sleeping
Sleeping
from aworld.replay_buffer.query_filter import QueryBuilder | |
from aworld.logs.util import logger | |
def example(): | |
''' | |
expression: task_id = "123" | |
return : | |
{ | |
'field': 'task_id', | |
'value': '123', | |
'op': 'eq' | |
} | |
''' | |
qb = QueryBuilder() | |
query = qb.eq("task_id", "123").build() | |
logger.info(query) | |
def example1(): | |
''' | |
expression: (task_id = "123" and agent_id = "111") or (task_id = "456" and agent_id = "222") | |
return : | |
{ | |
'or_': [{ | |
'and_': [{ | |
'field': 'task_id', | |
'value': '123', | |
'op': 'eq' | |
}, { | |
'field': 'agent_id', | |
'value': '111', | |
'op': 'eq' | |
}] | |
}, { | |
'and_': [{ | |
'field': 'task_id', | |
'value': '456', | |
'op': 'eq' | |
}, { | |
'field': 'agent_id', | |
'value': '222', | |
'op': 'eq' | |
}] | |
}] | |
} | |
''' | |
qb = QueryBuilder() | |
query = (qb.eq("task_id", "123") | |
.and_() | |
.eq("agent_id", "111") | |
.or_() | |
.nested(QueryBuilder() | |
.eq("task_id", "456") | |
.and_() | |
.eq("agent_id", "222")) | |
.build()) | |
logger.info(query) | |
def example2(): | |
''' | |
expression: task_id = "123" and (agent_id = "111" or agent_id = "222") | |
return : | |
{ | |
'and_': [{ | |
'field': 'task_id', | |
'value': '123', | |
'op': 'eq' | |
}, { | |
'or_': [{ | |
'field': 'agent_id', | |
'value': '111', | |
'op': 'eq' | |
}, { | |
'field': 'agent_id', | |
'value': '222', | |
'op': 'eq' | |
} | |
} | |
} | |
''' | |
qb = QueryBuilder() | |
query = (qb.eq("task_id", "123") | |
.and_() | |
.nested(QueryBuilder() | |
.eq("agent_id", "111") | |
.or_() | |
.eq("agent_id", "222")) | |
.build()) | |
logger.info(query) | |
if __name__ == "__main__": | |
example() | |
example1() | |
example2() | |