def _get_func_type_annotations(func: Callable[..., Any], owner: type = None) -> Dict[str, type]:
annotations = dict(get_type_hints(func))
dynamic_annotations = getattr(func, '__dynamic__', {})
for name, expression in dynamic_annotations.items():
if type(expression) == type:
annotations[name] = expression
elif callable(expression):
annotations[name] = expression(owner)
return annotations
# TODO name arg for use with auto-generation
评论列表
文章目录