diff options
Diffstat (limited to 'boto/dynamodb/condition.py')
-rw-r--r-- | boto/dynamodb/condition.py | 89 |
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 |