From 012eb953a6011d1bc4a64312aeae0c1285f17eeb Mon Sep 17 00:00:00 2001 From: barry-jin Date: Fri, 30 Oct 2020 14:12:48 -0700 Subject: [PATCH] [Numpy] Fix #19454 --- python/mxnet/numpy/fallback.py | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/python/mxnet/numpy/fallback.py b/python/mxnet/numpy/fallback.py index c7687ff59bb..3fe8b5b7ff0 100644 --- a/python/mxnet/numpy/fallback.py +++ b/python/mxnet/numpy/fallback.py @@ -114,11 +114,16 @@ fallback_mod = sys.modules[__name__] +def get_func(obj, doc): + """Get new numpy function with object and doc""" + def fn(*args, **kwargs): + return obj(*args, **kwargs) + fn.__doc__ = doc + return fn + for obj_name in fallbacks: onp_obj = getattr(onp, obj_name) if callable(onp_obj): - def fn(*args, **kwargs): - return onp_obj(*args, **kwargs) new_fn_doc = onp_obj.__doc__ if obj_name in {'divmod', 'float_power', 'frexp', 'heaviside', 'modf', 'signbit', 'spacing'}: # remove reference of kwargs doc and the reference to ufuncs @@ -128,8 +133,7 @@ def fn(*args, **kwargs): # remove unused reference new_fn_doc = new_fn_doc.replace( '.. [1] Wikipedia page: https://en.wikipedia.org/wiki/Trapezoidal_rule', '') - fn.__doc__ = new_fn_doc - setattr(fallback_mod, obj_name, fn) + setattr(fallback_mod, obj_name, get_func(onp_obj, new_fn_doc)) else: setattr(fallback_mod, obj_name, onp_obj)