summaryrefslogtreecommitdiff
path: root/paste/util
diff options
context:
space:
mode:
authorVictor Stinner <victor.stinner@gmail.com>2015-04-22 00:20:18 +0200
committerVictor Stinner <victor.stinner@gmail.com>2015-04-22 00:20:18 +0200
commit8a458eb8a27dcff836b8ecc2c4f9929c07ab51ff (patch)
tree5f660876bad9edaeb0c6e4a323187eb1d6f641fd /paste/util
parentd634e965d9de2efe87888c8afad5b82cbca97bdf (diff)
downloadpaste-8a458eb8a27dcff836b8ecc2c4f9929c07ab51ff.tar.gz
Port intset to Python 3
Diffstat (limited to 'paste/util')
-rw-r--r--paste/util/intset.py36
1 files changed, 20 insertions, 16 deletions
diff --git a/paste/util/intset.py b/paste/util/intset.py
index c124eb6..3e026e2 100644
--- a/paste/util/intset.py
+++ b/paste/util/intset.py
@@ -6,6 +6,7 @@ Integer set class.
Copyright (C) 2006, Heiko Wundram.
Released under the MIT license.
"""
+import six
# Version information
# -------------------
@@ -28,40 +29,43 @@ class _Infinity(object):
self._neg = neg
def __lt__(self,value):
- if not isinstance(value,(int,long,_Infinity)):
+ if not isinstance(value, _VALID_TYPES):
return NotImplemented
return ( self._neg and
not ( isinstance(value,_Infinity) and value._neg ) )
def __le__(self,value):
- if not isinstance(value,(int,long,_Infinity)):
+ if not isinstance(value, _VALID_TYPES):
return NotImplemented
return self._neg
def __gt__(self,value):
- if not isinstance(value,(int,long,_Infinity)):
+ if not isinstance(value, _VALID_TYPES):
return NotImplemented
return not ( self._neg or
( isinstance(value,_Infinity) and not value._neg ) )
def __ge__(self,value):
- if not isinstance(value,(int,long,_Infinity)):
+ if not isinstance(value, _VALID_TYPES):
return NotImplemented
return not self._neg
def __eq__(self,value):
- if not isinstance(value,(int,long,_Infinity)):
+ if not isinstance(value, _VALID_TYPES):
return NotImplemented
return isinstance(value,_Infinity) and self._neg == value._neg
def __ne__(self,value):
- if not isinstance(value,(int,long,_Infinity)):
+ if not isinstance(value, _VALID_TYPES):
return NotImplemented
return not isinstance(value,_Infinity) or self._neg != value._neg
def __repr__(self):
return "None"
+_VALID_TYPES = six.integer_types + (_Infinity,)
+
+
# Constants
# ---------
@@ -117,19 +121,19 @@ class IntSet(object):
# Check keyword arguments.
if kwargs:
raise ValueError("Invalid keyword argument.")
- if not ( isinstance(self._min,(int,long)) or self._min is _MININF ):
+ if not ( isinstance(self._min, six.integer_types) or self._min is _MININF ):
raise TypeError("Invalid type of min argument.")
- if not ( isinstance(self._max,(int,long)) or self._max is _MAXINF ):
+ if not ( isinstance(self._max, six.integer_types) or self._max is _MAXINF ):
raise TypeError("Invalid type of max argument.")
if ( self._min is not _MININF and self._max is not _MAXINF and
self._min > self._max ):
raise ValueError("Minimum is not smaller than maximum.")
- if isinstance(self._max,(int,long)):
+ if isinstance(self._max, six.integer_types):
self._max += 1
# Process arguments.
for arg in args:
- if isinstance(arg,(int,long)):
+ if isinstance(arg, six.integer_types):
start, stop = arg, arg+1
elif isinstance(arg,tuple):
if len(arg) != 2:
@@ -143,14 +147,14 @@ class IntSet(object):
stop = self._max
# Check arguments.
- if not ( isinstance(start,(int,long)) or start is _MININF ):
+ if not ( isinstance(start, six.integer_types) or start is _MININF ):
raise TypeError("Invalid type of tuple start.")
- if not ( isinstance(stop,(int,long)) or stop is _MAXINF ):
+ if not ( isinstance(stop, six.integer_types) or stop is _MAXINF ):
raise TypeError("Invalid type of tuple stop.")
if ( start is not _MININF and stop is not _MAXINF and
start > stop ):
continue
- if isinstance(stop,(int,long)):
+ if isinstance(stop, six.integer_types):
stop += 1
else:
raise TypeError("Invalid argument.")
@@ -211,7 +215,7 @@ class IntSet(object):
def __coerce__(self,other):
if isinstance(other,IntSet):
return self, other
- elif isinstance(other,(int,long,tuple)):
+ elif isinstance(other, six.integer_types + (tuple,)):
try:
return self, self.__class__(other)
except TypeError:
@@ -471,10 +475,10 @@ class IntSet(object):
rv = []
for start, stop in self._ranges:
- if ( isinstance(start,(int,long)) and isinstance(stop,(int,long))
+ if ( isinstance(start, six.integer_types) and isinstance(stop, six.integer_types)
and stop-start == 1 ):
rv.append("%r" % start)
- elif isinstance(stop,(int,long)):
+ elif isinstance(stop, six.integer_types):
rv.append("(%r,%r)" % (start,stop-1))
else:
rv.append("(%r,%r)" % (start,stop))