+ check_filter(obj, filter_str)
+ try:
+ filter_list = gen_orm_filter(obj, filter_str)
+ except KeyError as e:
+ raise BadRequestException(e.args[0])
+ return filter_list
+
+
+# The regular expressions testing example put on here
+# (neq,testkey,value-1)
+# (neq,testkey,value-1,value-2)
+# (gt,hello,1)
+# (gte,world,2)
+# (lt,testlt,notint)
+# (ncont,key1,v1,v_2)
+# (gt,hello,1);(ncont,world,val1,val-2)
+# (eq,wrong,60cba7be-e2cd-3b8c-a7ff-16e0f10573f9)
+# (eq,description,value key)
+def check_filter(obj: ColumnElement, filter_str: str):
+ if not filter_str:
+ return
+ # pattern = r'^(\((eq|neq|gt|lt|gte|lte){1},\w+,[\w -\.]+\)\;?|' +\
+ # r'\((in|nin|cont|ncont){1},\w*(,[\w -\.]*)*\)\;?)+'
+ # result = re.match(pattern, filter_str)
+ # logger.debug('filter: {} match result is {}'.format(filter_str, result))
+ # if not result:
+ # raise BadRequestException(
+ # 'filter value format is invalid')
+ check_filter_attribute(obj, filter_str)
+
+
+def check_filter_attribute(obj: ColumnElement, filter_str: str):
+ # filter_without_space = filter_str.replace(" ", "")
+ filter_without_space = filter_str.strip(' ()')
+ logger.debug(
+ f"filter_str: {filter_str}, stripped: {filter_without_space}")