def _metaclass_check_getitem_type_decl(cls, type_decl):
# Callable[[T, ...], T]
if not check_getitem_tuple(type_decl, 2):
return False
# return type.
if nontype_object(type_decl[1]):
return False
# types of parameters.
if isinstance(type_decl[0], abc.Iterable):
# [T, ...]
for T in type_decl[0]:
if nontype_object(T):
return False
else:
return True
else:
# special case, Ellipsis.
return type_decl[0] is Ellipsis
评论列表
文章目录