Fix some py3k warnings in the standard library.
This commit is contained in:
parent
2a4ab81633
commit
1f3b4e12e8
15
Lib/_pyio.py
15
Lib/_pyio.py
|
@ -839,8 +839,8 @@ class BytesIO(BufferedIOBase):
|
||||||
if self.closed:
|
if self.closed:
|
||||||
raise ValueError("seek on closed file")
|
raise ValueError("seek on closed file")
|
||||||
try:
|
try:
|
||||||
pos = pos.__index__()
|
pos.__index__
|
||||||
except AttributeError as err:
|
except AttributeError:
|
||||||
raise TypeError("an integer is required")
|
raise TypeError("an integer is required")
|
||||||
if whence == 0:
|
if whence == 0:
|
||||||
if pos < 0:
|
if pos < 0:
|
||||||
|
@ -864,7 +864,12 @@ class BytesIO(BufferedIOBase):
|
||||||
raise ValueError("truncate on closed file")
|
raise ValueError("truncate on closed file")
|
||||||
if pos is None:
|
if pos is None:
|
||||||
pos = self._pos
|
pos = self._pos
|
||||||
elif pos < 0:
|
else:
|
||||||
|
try:
|
||||||
|
pos.__index__
|
||||||
|
except AttributeError:
|
||||||
|
raise TypeError("an integer is required")
|
||||||
|
if pos < 0:
|
||||||
raise ValueError("negative truncate position %r" % (pos,))
|
raise ValueError("negative truncate position %r" % (pos,))
|
||||||
del self._buffer[pos:]
|
del self._buffer[pos:]
|
||||||
return pos
|
return pos
|
||||||
|
@ -1813,6 +1818,10 @@ class TextIOWrapper(TextIOBase):
|
||||||
if n is None:
|
if n is None:
|
||||||
n = -1
|
n = -1
|
||||||
decoder = self._decoder or self._get_decoder()
|
decoder = self._decoder or self._get_decoder()
|
||||||
|
try:
|
||||||
|
n.__index__
|
||||||
|
except AttributeError:
|
||||||
|
raise TypeError("an integer is required")
|
||||||
if n < 0:
|
if n < 0:
|
||||||
# Read everything.
|
# Read everything.
|
||||||
result = (self._get_decoded_chars() +
|
result = (self._get_decoded_chars() +
|
||||||
|
|
|
@ -564,6 +564,10 @@ c = TextCalendar()
|
||||||
firstweekday = c.getfirstweekday
|
firstweekday = c.getfirstweekday
|
||||||
|
|
||||||
def setfirstweekday(firstweekday):
|
def setfirstweekday(firstweekday):
|
||||||
|
try:
|
||||||
|
firstweekday.__index__
|
||||||
|
except AttributeError:
|
||||||
|
raise IllegalWeekdayError(firstweekday)
|
||||||
if not MONDAY <= firstweekday <= SUNDAY:
|
if not MONDAY <= firstweekday <= SUNDAY:
|
||||||
raise IllegalWeekdayError(firstweekday)
|
raise IllegalWeekdayError(firstweekday)
|
||||||
c.firstweekday = firstweekday
|
c.firstweekday = firstweekday
|
||||||
|
|
|
@ -132,7 +132,7 @@ class Callbacks(unittest.TestCase):
|
||||||
gc.collect()
|
gc.collect()
|
||||||
live = [x for x in gc.get_objects()
|
live = [x for x in gc.get_objects()
|
||||||
if isinstance(x, X)]
|
if isinstance(x, X)]
|
||||||
self.failUnlessEqual(len(live), 0)
|
self.assertEqual(len(live), 0)
|
||||||
|
|
||||||
try:
|
try:
|
||||||
WINFUNCTYPE
|
WINFUNCTYPE
|
||||||
|
@ -164,7 +164,7 @@ class SampleCallbacksTestCase(unittest.TestCase):
|
||||||
result = integrate(0.0, 1.0, CALLBACK(func), 10)
|
result = integrate(0.0, 1.0, CALLBACK(func), 10)
|
||||||
diff = abs(result - 1./3.)
|
diff = abs(result - 1./3.)
|
||||||
|
|
||||||
self.assertTrue(diff < 0.01, "%s not less than 0.01" % diff)
|
self.assertLess(diff, 0.01, "%s not less than 0.01" % diff)
|
||||||
|
|
||||||
################################################################
|
################################################################
|
||||||
|
|
||||||
|
|
|
@ -406,7 +406,7 @@ def execute (func, args, msg=None, verbose=0, dry_run=0):
|
||||||
|
|
||||||
log.info(msg)
|
log.info(msg)
|
||||||
if not dry_run:
|
if not dry_run:
|
||||||
apply(func, args)
|
func(*args)
|
||||||
|
|
||||||
|
|
||||||
def strtobool (val):
|
def strtobool (val):
|
||||||
|
|
|
@ -10,6 +10,7 @@ import stat
|
||||||
from os.path import abspath
|
from os.path import abspath
|
||||||
import fnmatch
|
import fnmatch
|
||||||
from warnings import warn
|
from warnings import warn
|
||||||
|
import collections
|
||||||
|
|
||||||
try:
|
try:
|
||||||
from pwd import getpwnam
|
from pwd import getpwnam
|
||||||
|
@ -500,7 +501,7 @@ def register_archive_format(name, function, extra_args=None, description=''):
|
||||||
"""
|
"""
|
||||||
if extra_args is None:
|
if extra_args is None:
|
||||||
extra_args = []
|
extra_args = []
|
||||||
if not callable(function):
|
if not isinstance(function, collections.Callable):
|
||||||
raise TypeError('The %s object is not callable' % function)
|
raise TypeError('The %s object is not callable' % function)
|
||||||
if not isinstance(extra_args, (tuple, list)):
|
if not isinstance(extra_args, (tuple, list)):
|
||||||
raise TypeError('extra_args needs to be a sequence')
|
raise TypeError('extra_args needs to be a sequence')
|
||||||
|
|
|
@ -212,8 +212,6 @@ class CalendarTestCase(unittest.TestCase):
|
||||||
self.assertEqual(calendar.isleap(2003), 0)
|
self.assertEqual(calendar.isleap(2003), 0)
|
||||||
|
|
||||||
def test_setfirstweekday(self):
|
def test_setfirstweekday(self):
|
||||||
# Silence a py3k warning claiming to affect Lib/calendar.py
|
|
||||||
with test_support.check_warnings():
|
|
||||||
self.assertRaises(ValueError, calendar.setfirstweekday, 'flabber')
|
self.assertRaises(ValueError, calendar.setfirstweekday, 'flabber')
|
||||||
self.assertRaises(ValueError, calendar.setfirstweekday, -1)
|
self.assertRaises(ValueError, calendar.setfirstweekday, -1)
|
||||||
self.assertRaises(ValueError, calendar.setfirstweekday, 200)
|
self.assertRaises(ValueError, calendar.setfirstweekday, 200)
|
||||||
|
|
|
@ -133,8 +133,6 @@ class MemoryTestMixin:
|
||||||
pos = memio.tell()
|
pos = memio.tell()
|
||||||
self.assertEqual(memio.truncate(None), pos)
|
self.assertEqual(memio.truncate(None), pos)
|
||||||
self.assertEqual(memio.tell(), pos)
|
self.assertEqual(memio.tell(), pos)
|
||||||
# Silence a py3k warning
|
|
||||||
with support.check_warnings():
|
|
||||||
self.assertRaises(TypeError, memio.truncate, '0')
|
self.assertRaises(TypeError, memio.truncate, '0')
|
||||||
memio.close()
|
memio.close()
|
||||||
self.assertRaises(ValueError, memio.truncate, 0)
|
self.assertRaises(ValueError, memio.truncate, 0)
|
||||||
|
@ -172,8 +170,6 @@ class MemoryTestMixin:
|
||||||
self.assertEqual(type(memio.read()), type(buf))
|
self.assertEqual(type(memio.read()), type(buf))
|
||||||
memio.seek(0)
|
memio.seek(0)
|
||||||
self.assertEqual(memio.read(None), buf)
|
self.assertEqual(memio.read(None), buf)
|
||||||
# Silence a py3k warning
|
|
||||||
with support.check_warnings():
|
|
||||||
self.assertRaises(TypeError, memio.read, '')
|
self.assertRaises(TypeError, memio.read, '')
|
||||||
memio.close()
|
memio.close()
|
||||||
self.assertRaises(ValueError, memio.read)
|
self.assertRaises(ValueError, memio.read)
|
||||||
|
|
|
@ -774,26 +774,23 @@ class TestCase(object):
|
||||||
set(actual))`` but it works with sequences of unhashable objects as
|
set(actual))`` but it works with sequences of unhashable objects as
|
||||||
well.
|
well.
|
||||||
"""
|
"""
|
||||||
|
with warnings.catch_warnings():
|
||||||
|
if sys.py3kwarning:
|
||||||
|
# Silence Py3k warning raised during the sorting
|
||||||
|
for msg in ["dict inequality comparisons",
|
||||||
|
"builtin_function_or_method order comparisons",
|
||||||
|
"comparing unequal types"]:
|
||||||
|
warnings.filterwarnings("ignore", msg, DeprecationWarning)
|
||||||
try:
|
try:
|
||||||
expected = set(expected_seq)
|
expected = set(expected_seq)
|
||||||
actual = set(actual_seq)
|
actual = set(actual_seq)
|
||||||
missing = list(expected.difference(actual))
|
missing = sorted(expected.difference(actual))
|
||||||
unexpected = list(actual.difference(expected))
|
unexpected = sorted(actual.difference(expected))
|
||||||
missing.sort()
|
|
||||||
unexpected.sort()
|
|
||||||
except TypeError:
|
except TypeError:
|
||||||
# Fall back to slower list-compare if any of the objects are
|
# Fall back to slower list-compare if any of the objects are
|
||||||
# not hashable.
|
# not hashable.
|
||||||
expected = list(expected_seq)
|
expected = sorted(expected_seq)
|
||||||
actual = list(actual_seq)
|
actual = sorted(actual_seq)
|
||||||
with warnings.catch_warnings():
|
|
||||||
if sys.py3kwarning:
|
|
||||||
# Silence Py3k warning
|
|
||||||
warnings.filterwarnings("ignore",
|
|
||||||
"dict inequality comparisons "
|
|
||||||
"not supported", DeprecationWarning)
|
|
||||||
expected.sort()
|
|
||||||
actual.sort()
|
|
||||||
missing, unexpected = sorted_list_difference(expected, actual)
|
missing, unexpected = sorted_list_difference(expected, actual)
|
||||||
errors = []
|
errors = []
|
||||||
if missing:
|
if missing:
|
||||||
|
|
|
@ -29,7 +29,7 @@ def _show_warning(message, category, filename, lineno, file=None, line=None):
|
||||||
file.write(formatwarning(message, category, filename, lineno, line))
|
file.write(formatwarning(message, category, filename, lineno, line))
|
||||||
except IOError:
|
except IOError:
|
||||||
pass # the file (probably stderr) is invalid - this warning gets lost.
|
pass # the file (probably stderr) is invalid - this warning gets lost.
|
||||||
# Keep a worrking version around in case the deprecation of the old API is
|
# Keep a working version around in case the deprecation of the old API is
|
||||||
# triggered.
|
# triggered.
|
||||||
showwarning = _show_warning
|
showwarning = _show_warning
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue