schema.py 文件源码

python
阅读 27 收藏 0 点赞 0 评论 0

项目:oamap 作者: diana-hep 项目源码 文件源码
def __contains__(self, value, memo=None):
        if self.dtype is None:
            raise TypeError("cannot determine if {0} is in {1}: no dtype specified".format(repr(value), self))
        if self.dims is None:
            raise TypeError("cannot determine if {0} is in {1}: no dims specified".format(repr(value), self))
        if value is None:
            return self.nullable

        def recurse(value, dims):
            if dims == ():
                if issubclass(self.dtype.type, (numpy.bool_, numpy.bool)):
                    return value is True or value is False

                elif issubclass(self.dtype.type, numpy.integer):
                    iinfo = numpy.iinfo(self.dtype.type)
                    return isinstance(value, numbers.Integral) and iinfo.min <= value <= iinfo.max

                elif issubclass(self.dtype.type, numpy.floating):
                    return isinstance(value, numbers.Real)

                elif issubclass(self.dtype.type, numpy.complex):
                    return isinstance(value, numbers.Complex)

                else:
                    raise TypeError("unexpected dtype: {0}".format(self.dtype))

            else:
                try:
                    iter(value)
                    len(value)
                except TypeError:
                    return False
                else:
                    return len(value) == dims[0] and all(recurse(x, dims[1:]) for x in value)

        return recurse(value, self.dims)
评论列表
文章目录


问题


面经


文章

微信
公众号

扫码关注公众号