提交 94199f17 authored 作者: Arnaud Bergeron's avatar Arnaud Bergeron

Use __props__ for CDataType and add the missing items.

上级 192b0e47
...@@ -638,6 +638,8 @@ class CDataType(Type): ...@@ -638,6 +638,8 @@ class CDataType(Type):
have a `void` return and take a single pointer argument. have a `void` return and take a single pointer argument.
""" """
__props__ = ('ctype', 'freefunc', 'headers', 'header_dirs',
'libraries', 'lib_dirs', 'extra_support_code')
def __init__(self, ctype, freefunc=None, headers=None, header_dirs=None, def __init__(self, ctype, freefunc=None, headers=None, header_dirs=None,
libraries=None, lib_dirs=None, extra_support_code=""): libraries=None, lib_dirs=None, extra_support_code=""):
...@@ -647,28 +649,20 @@ class CDataType(Type): ...@@ -647,28 +649,20 @@ class CDataType(Type):
assert isinstance(freefunc, string_types) assert isinstance(freefunc, string_types)
self.freefunc = freefunc self.freefunc = freefunc
if headers is None: if headers is None:
headers = [] headers = ()
self.headers = headers self.headers = tuple(headers)
if header_dirs is None: if header_dirs is None:
header_dirs = [] header_dirs = ()
self.header_dirs = header_dirs self.header_dirs = tuple(header_dirs)
if libraries is None: if libraries is None:
libraries = [] libraries = ()
self.libraries = libraries self.libraries = tuple(libraries)
if lib_dirs is None: if lib_dirs is None:
lib_dirs = [] lib_dirs = ()
self.lib_dirs = lib_dirs self.lib_dirs = tuple(lib_dirs)
self.extra_support_code = extra_support_code self.extra_support_code = extra_support_code
self._fn = None self._fn = None
def __eq__(self, other):
return (type(self) == type(other) and
self.ctype == other.ctype and
self.freefunc == other.freefunc)
def __hash__(self):
return hash((type(self), self.ctype, self.freefunc))
def filter(self, data, strict=False, allow_downcast=None): def filter(self, data, strict=False, allow_downcast=None):
if data is not None and not isinstance(data, _cdata_type): if data is not None and not isinstance(data, _cdata_type):
raise TypeError("expected None or a PyCapsule") raise TypeError("expected None or a PyCapsule")
......
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论