From 22a193dafb3f3fbcff16ddba0b1791ee2c270e9d Mon Sep 17 00:00:00 2001 From: Hugo van Kemenade Date: Mon, 11 Nov 2019 12:06:25 +0200 Subject: No __cmp__ or cmp in Python 3 (#429) * No __cmp__ or cmp in Python 3 * Add rich comparisons * Simplify using total_ordering decorator --- src/tablib/packages/dbfpy/fields.py | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) (limited to 'src/tablib') diff --git a/src/tablib/packages/dbfpy/fields.py b/src/tablib/packages/dbfpy/fields.py index d6ee84e..8c7d022 100644 --- a/src/tablib/packages/dbfpy/fields.py +++ b/src/tablib/packages/dbfpy/fields.py @@ -33,12 +33,14 @@ __all__ = ["lookupFor"] # field classes added at the end of the module import datetime import struct import sys +from functools import total_ordering from . import utils # abstract definitions +@total_ordering class DbfFieldDef: """Abstract field definition. @@ -101,8 +103,14 @@ class DbfFieldDef: self.start = start self.end = stop - def __cmp__(self, other): - return cmp(self.name, str(other).upper()) + def __eq__(self, other): + return repr(self) == repr(other) + + def __ne__(self, other): + return repr(self) != repr(other) + + def __lt__(self, other): + return repr(self) < repr(other) def __hash__(self): return hash(self.name) -- cgit v1.2.1