[master 8/16] Replace python 2 build-in-function cmp() with custom method
M4rtinK
installerbot-noreply at redhat.com
Thu Apr 9 15:58:16 UTC 2015
From: Vojtech Trefny <vtrefny at redhat.com>
cmp() no longer exists in python 3
---
blivet/partitioning.py | 22 +++++++++++-----------
blivet/util.py | 23 +++++++++++++++++++++++
2 files changed, 34 insertions(+), 11 deletions(-)
diff --git a/blivet/partitioning.py b/blivet/partitioning.py
index 5f131a8..063f70b 100644
--- a/blivet/partitioning.py
+++ b/blivet/partitioning.py
@@ -32,7 +32,7 @@
from .devices import Device, PartitionDevice, LUKSDevice, devicePathToName
from .size import Size
from .i18n import _
-from .util import stringize, unicodeize
+from .util import stringize, unicodeize, compare
import logging
log = logging.getLogger("blivet")
@@ -61,7 +61,7 @@ def partitionCompare(part1, part2):
elif part1_start is None and part2_start is not None:
return 1
elif part1_start is not None and part2_start is not None:
- return cmp(part1_start, part2_start)
+ return compare(part1_start, part2_start)
if part1.req_base_weight:
ret -= part1.req_base_weight
@@ -76,16 +76,16 @@ def partitionCompare(part1, part2):
elif not part1.req_disks and part2.req_disks:
ret += 500
else:
- ret += cmp(len(part1.req_disks), len(part2.req_disks)) * 500
+ ret += compare(len(part1.req_disks), len(part2.req_disks)) * 500
# primary-only to the front of the list
- ret -= cmp(part1.req_primary, part2.req_primary) * 200
+ ret -= compare(part1.req_primary, part2.req_primary) * 200
# fixed size requests to the front
- ret += cmp(part1.req_grow, part2.req_grow) * 100
+ ret += compare(part1.req_grow, part2.req_grow) * 100
# larger requests go to the front of the list
- ret -= cmp(part1.req_base_size, part2.req_base_size) * 50
+ ret -= compare(part1.req_base_size, part2.req_base_size) * 50
# potentially larger growable requests go to the front
if part1.req_grow and part2.req_grow:
@@ -94,12 +94,12 @@ def partitionCompare(part1, part2):
elif part1.req_max_size and not part2.req_max_size:
ret += 25
else:
- ret -= cmp(part1.req_max_size, part2.req_max_size) * 25
+ ret -= compare(part1.req_max_size, part2.req_max_size) * 25
# give a little bump based on mountpoint
if hasattr(part1.format, "mountpoint") and \
hasattr(part2.format, "mountpoint"):
- ret += cmp(part1.format.mountpoint, part2.format.mountpoint) * 10
+ ret += compare(part1.format.mountpoint, part2.format.mountpoint) * 10
if ret > 0:
ret = 1
@@ -1766,10 +1766,10 @@ def lvCompare(lv1, lv2):
ret = 0
# larger requests go to the front of the list
- ret -= cmp(lv1.size, lv2.size) * 100
+ ret -= compare(lv1.size, lv2.size) * 100
# fixed size requests to the front
- ret += cmp(lv1.req_grow, lv2.req_grow) * 50
+ ret += compare(lv1.req_grow, lv2.req_grow) * 50
# potentially larger growable requests go to the front
if lv1.req_grow and lv2.req_grow:
@@ -1778,7 +1778,7 @@ def lvCompare(lv1, lv2):
elif lv1.req_max_size and not lv2.req_max_size:
ret += 25
else:
- ret -= cmp(lv1.req_max_size, lv2.req_max_size) * 25
+ ret -= compare(lv1.req_max_size, lv2.req_max_size) * 25
if ret > 0:
ret = 1
diff --git a/blivet/util.py b/blivet/util.py
index 66a7715..5ce2770 100644
--- a/blivet/util.py
+++ b/blivet/util.py
@@ -452,6 +452,29 @@ def unicodeize(inputstr):
else:
return str(inputstr)
+def compare(first, second):
+ """ Compare two objects.
+
+ :param first: first object to compare
+ :param second: second object to compare
+ :returns: 0 if first == second, 1 if first > second, -1 if first < second
+ :rtype: int
+
+ This method replaces Python 2 cmp() built-in-function.
+ """
+
+ if first == None and second == None:
+ return 0
+
+ elif first == None:
+ return -1
+
+ elif second == None:
+ return 1
+
+ else:
+ return (first > second) - (first < second)
+
##
## Convenience functions for examples and tests
##
--
To view this commit on github, visit https://github.com/rhinstaller/blivet/commit/ab04810de8386517cb8cb9880525a54bbcd96203
More information about the anaconda-patches
mailing list