From b9afde3e1a97f09fb2dc283ce5dd27e53cd717b1 Mon Sep 17 00:00:00 2001 From: bsimpson63 Date: Sun, 18 Nov 2012 13:06:45 -0500 Subject: [PATCH] Thing: Add not_ operator. --- r2/r2/lib/db/operators.py | 1 + r2/r2/lib/db/tdb_sql.py | 2 ++ 2 files changed, 3 insertions(+) diff --git a/r2/r2/lib/db/operators.py b/r2/r2/lib/db/operators.py index 652249fa7..84137ceda 100644 --- a/r2/r2/lib/db/operators.py +++ b/r2/r2/lib/db/operators.py @@ -29,6 +29,7 @@ class BooleanOp(object): class or_(BooleanOp): pass class and_(BooleanOp): pass +class not_(BooleanOp): pass class op(object): def __init__(self, lval, lval_name, rval): diff --git a/r2/r2/lib/db/tdb_sql.py b/r2/r2/lib/db/tdb_sql.py index 09661212f..491072cc8 100644 --- a/r2/r2/lib/db/tdb_sql.py +++ b/r2/r2/lib/db/tdb_sql.py @@ -710,6 +710,8 @@ def sa_op(op): return sa.or_(*[sa_op(o) for o in op.ops]) elif isinstance(op, operators.and_): return sa.and_(*[sa_op(o) for o in op.ops]) + elif isinstance(op, operators.not_): + return sa.not_(*[sa_op(o) for o in op.ops]) #else, assume op is an instance of op if isinstance(op, operators.eq):