summaryrefslogtreecommitdiff
path: root/boto/dynamodb/condition.py
diff options
context:
space:
mode:
Diffstat (limited to 'boto/dynamodb/condition.py')
-rw-r--r--boto/dynamodb/condition.py89
1 files changed, 51 insertions, 38 deletions
diff --git a/boto/dynamodb/condition.py b/boto/dynamodb/condition.py
index 6c4f24ec..43ed6de1 100644
--- a/boto/dynamodb/condition.py
+++ b/boto/dynamodb/condition.py
@@ -15,13 +15,14 @@
# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
# OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABIL-
# ITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT
-# SHALL THE AUTHOR BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
+# SHALL THE AUTHOR BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
# WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS
# IN THE SOFTWARE.
#
-from boto.dynamodb.types import get_dynamodb_type, dynamize_value, convert_num
+from boto.dynamodb.types import dynamize_value
+
class Condition(object):
"""
@@ -31,27 +32,29 @@ class Condition(object):
pass
+
class ConditionNoArgs(Condition):
"""
Abstract class for Conditions that require no arguments, such
as NULL or NOT_NULL.
"""
-
+
def __repr__(self):
return '%s' % self.__class__.__name__
def to_dict(self):
return {'ComparisonOperator': self.__class__.__name__}
+
class ConditionOneArg(Condition):
"""
Abstract class for Conditions that require a single argument
such as EQ or NE.
"""
-
+
def __init__(self, v1):
self.v1 = v1
-
+
def __repr__(self):
return '%s:%s' % (self.__class__.__name__, self.v1)
@@ -59,12 +62,13 @@ class ConditionOneArg(Condition):
return {'AttributeValueList': [dynamize_value(self.v1)],
'ComparisonOperator': self.__class__.__name__}
+
class ConditionTwoArgs(Condition):
"""
Abstract class for Conditions that require two arguments.
The only example of this currently is BETWEEN.
"""
-
+
def __init__(self, v1, v2):
self.v1 = v1
self.v2 = v2
@@ -76,64 +80,73 @@ class ConditionTwoArgs(Condition):
values = (self.v1, self.v2)
return {'AttributeValueList': [dynamize_value(v) for v in values],
'ComparisonOperator': self.__class__.__name__}
-
+
+
class EQ(ConditionOneArg):
-
+
pass
-
+
+
class NE(ConditionOneArg):
-
+
pass
-
+
+
class LE(ConditionOneArg):
-
+
pass
-
+
+
class LT(ConditionOneArg):
-
+
pass
-
+
+
class GE(ConditionOneArg):
-
+
pass
-
+
+
class GT(ConditionOneArg):
-
+
pass
-
+
+
class NULL(ConditionNoArgs):
-
+
pass
-
+
+
class NOT_NULL(ConditionNoArgs):
-
+
pass
-
+
+
class CONTAINS(ConditionOneArg):
-
+
pass
-
+
+
class NOT_CONTAINS(ConditionOneArg):
-
+
pass
-
+
+
class BEGINS_WITH(ConditionOneArg):
-
+
pass
-
+
+
class IN(ConditionOneArg):
-
+
pass
-
+
+
class BEGINS_WITH(ConditionOneArg):
-
- pass
-
-class BETWEEN(ConditionTwoArgs):
pass
-
-
-
+class BETWEEN(ConditionTwoArgs):
+
+ pass