Use rich comparisons for Attribute and FieldAttribute

Because __cmp__ is not supported on Python 3.
This commit is contained in:
Marius Gedminas 2015-09-02 12:33:42 +03:00
parent ca908f2e12
commit 33a374edde
2 changed files with 76 additions and 2 deletions

View file

@ -19,6 +19,7 @@
from __future__ import (absolute_import, division, print_function)
__metaclass__ = type
class Attribute:
def __init__(self, isa=None, private=False, default=None, required=False, listof=None, priority=0, always_post_validate=False):
@ -31,8 +32,26 @@ class Attribute:
self.priority = priority
self.always_post_validate = always_post_validate
def __cmp__(self, other):
return cmp(other.priority, self.priority)
def __eq__(self, other):
return other.priority == self.priority
def __ne__(self, other):
return other.priority != self.priority
# NB: higher priority numbers sort first
def __lt__(self, other):
return other.priority < self.priority
def __gt__(self, other):
return other.priority > self.priority
def __le__(self, other):
return other.priority <= self.priority
def __ge__(self, other):
return other.priority >= self.priority
class FieldAttribute(Attribute):
pass