Python 3.7 support - deprecation of classes in the collections module
Change the base classes in the pyabc.i file to use the collections.abc module instead of collections due to the deprecation of the classes in the collections module in Python 3.7.
This commit is contained in:
parent
47297f3453
commit
4079fb927b
4 changed files with 53 additions and 18 deletions
|
|
@ -1,5 +1,11 @@
|
|||
import sys
|
||||
|
||||
# collections.abc requires Python 3.3+
|
||||
if sys.version_info[0:2] < (3, 3):
|
||||
exit(0)
|
||||
|
||||
from python_abstractbase import *
|
||||
from collections import *
|
||||
import collections.abc
|
||||
|
||||
# This is expected to fail with -builtin option
|
||||
# Builtin types can't inherit from pure-python abstract bases
|
||||
|
|
@ -10,12 +16,16 @@ if is_python_builtin():
|
|||
if not is_swig_py3:
|
||||
exit(0)
|
||||
|
||||
assert issubclass(Mapii, MutableMapping)
|
||||
assert issubclass(Multimapii, MutableMapping)
|
||||
assert issubclass(IntSet, MutableSet)
|
||||
assert issubclass(IntMultiset, MutableSet)
|
||||
assert issubclass(IntVector, MutableSequence)
|
||||
assert issubclass(IntList, MutableSequence)
|
||||
def check_issubclass(derived, base):
|
||||
if not issubclass(derived, base):
|
||||
raise RuntimeError("{} is not a subclass of {}".format(derived, base))
|
||||
|
||||
check_issubclass(Mapii, collections.abc.MutableMapping)
|
||||
check_issubclass(Multimapii, collections.abc.MutableMapping)
|
||||
check_issubclass(IntSet, collections.abc.MutableSet)
|
||||
check_issubclass(IntMultiset, collections.abc.MutableSet)
|
||||
check_issubclass(IntVector, collections.abc.MutableSequence)
|
||||
check_issubclass(IntList, collections.abc.MutableSequence)
|
||||
|
||||
mapii = Mapii()
|
||||
multimapii = Multimapii()
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue