def create_attribute(self, cls, attr_name):
async_method = self.property.create_attribute(cls, attr_name)
original_class = self.original_class
@functools.wraps(async_method)
@motor_coroutine
def wrapper(self, *args, **kwargs):
result = yield async_method(self, *args, **kwargs)
# Don't call isinstance(), not checking subclasses.
if result.__class__ == original_class:
# Delegate to the current object to wrap the result.
raise gen.Return(self.wrap(result))
else:
raise gen.Return(result)
if self.doc:
wrapper.__doc__ = self.doc
return wrapper
评论列表
文章目录