mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2026-01-06 02:20:11 +01:00
python: Fix rich comparisons
Python 3 doesn't call objects __cmp__() methods any more to compare them. Instead, it requires implementing the rich comparison methods explicitly: __eq__(), __ne(), __lt__(), __le__(), __gt__() and __ge__(). Fortunately Python 2 also supports those. This commit only implements the comparison methods which are actually used by the build scripts. Signed-off-by: Mathieu Bridon <bochecha@daitauha.fr> Reviewed-by: Dylan Baker <dylan@pnwbakers.com>
This commit is contained in:
parent
9b6746b7c0
commit
e1b88aee68
3 changed files with 13 additions and 12 deletions
|
|
@ -147,14 +147,15 @@ class VkVersion:
|
|||
patch = self.patch if self.patch is not None else 0
|
||||
return (self.major << 22) | (self.minor << 12) | patch
|
||||
|
||||
def __cmp__(self, other):
|
||||
def __gt__(self, other):
|
||||
# If only one of them has a patch version, "ignore" it by making
|
||||
# other's patch version match self.
|
||||
if (self.patch is None) != (other.patch is None):
|
||||
other = copy.copy(other)
|
||||
other.patch = self.patch
|
||||
|
||||
return self.__int_ver().__cmp__(other.__int_ver())
|
||||
return self.__int_ver() > other.__int_ver()
|
||||
|
||||
|
||||
MAX_API_VERSION = VkVersion(MAX_API_VERSION)
|
||||
|
||||
|
|
|
|||
|
|
@ -160,14 +160,15 @@ class VkVersion:
|
|||
patch = self.patch if self.patch is not None else 0
|
||||
return (self.major << 22) | (self.minor << 12) | patch
|
||||
|
||||
def __cmp__(self, other):
|
||||
def __gt__(self, other):
|
||||
# If only one of them has a patch version, "ignore" it by making
|
||||
# other's patch version match self.
|
||||
if (self.patch is None) != (other.patch is None):
|
||||
other = copy.copy(other)
|
||||
other.patch = self.patch
|
||||
|
||||
return self.__int_ver().__cmp__(other.__int_ver())
|
||||
return self.__int_ver() > other.__int_ver()
|
||||
|
||||
|
||||
|
||||
MAX_API_VERSION = VkVersion('0.0.0')
|
||||
|
|
|
|||
|
|
@ -121,19 +121,18 @@ class ABIEntry(object):
|
|||
def __str__(self):
|
||||
return self.c_prototype()
|
||||
|
||||
def __cmp__(self, other):
|
||||
def __lt__(self, other):
|
||||
# compare slot, alias, and then name
|
||||
res = cmp(self.slot, other.slot)
|
||||
if not res:
|
||||
if self.slot == other.slot:
|
||||
if not self.alias:
|
||||
res = -1
|
||||
return True
|
||||
elif not other.alias:
|
||||
res = 1
|
||||
return False
|
||||
|
||||
if not res:
|
||||
res = cmp(self.name, other.name)
|
||||
return self.name < other.name
|
||||
|
||||
return self.slot < other.slot
|
||||
|
||||
return res
|
||||
|
||||
def abi_parse_xml(xml):
|
||||
"""Parse a GLAPI XML file for ABI entries."""
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue