mirror of https://github.com/swig/swig
36 lines
1.0 KiB
Python
36 lines
1.0 KiB
Python
import sys
|
|
|
|
# collections.abc requires Python 3.3+
|
|
if sys.version_info[0:2] < (3, 3):
|
|
exit(0)
|
|
|
|
from python_abstractbase import *
|
|
import collections.abc
|
|
|
|
# This is expected to fail with -builtin option
|
|
# Builtin types can't inherit from pure-python abstract bases
|
|
if is_python_builtin():
|
|
exit(0)
|
|
|
|
# Python abc is only turned on when -py3 option is passed to SWIG
|
|
if not is_swig_py3:
|
|
exit(0)
|
|
|
|
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()
|
|
intset = IntSet()
|
|
intmultiset = IntMultiset()
|
|
intvector = IntVector()
|
|
intlist = IntList()
|