コード例 #1
0
def build_expression(exp, object_class, target_class, query):
  """Make an SQLAlchemy filtering expression from exp expression tree."""
  if not exp:
    # empty expression doesn't required filter
    return None
  if autocast.is_autocast_required_for(exp):
    exp = validate("left", "right")(autocast.autocast)(exp, target_class)
  if not exp:
    # empty expression after autocast is invalid and should raise an exception
    raise BadQueryException("Invalid filter data")
  operation = OPS.get(exp.get("op", {}).get("name")) or unknown
  return operation(exp, object_class, target_class, query)
コード例 #2
0
ファイル: custom_operators.py プロジェクト: egorhm/ggrc-core
def build_expression(exp, object_class, target_class, query):
  """Make an SQLAlchemy filtering expression from exp expression tree."""
  if not exp:
    # empty expression doesn't required filter
    return
  if autocast.is_autocast_required_for(exp):
    exp = validate("left", "right")(autocast.autocast)(exp, target_class)
  if not exp:
    # empty expression after autocast is invalid and should raise an exception
    raise BadQueryException("Invalid filter data")
  operation = OPS.get(exp.get("op", {}).get("name")) or unknown
  return operation(exp, object_class, target_class, query)