forked from flang-compiler/flang
-
Notifications
You must be signed in to change notification settings - Fork 2
Open

Description
import traceback
from scipy.linalg import lapack
from scipy.linalg import basic
def patch_get_lapack_funcs(get_lapack_funcs):
def patched_get_lapack_funcs(*args, **kw):
patched_funcs = []
try:
lapack_funcs = list(get_lapack_funcs(*args, **kw))
is_iterable = True
except TypeError:
lapack_funcs = [get_lapack_funcs(*args, **kw)]
is_iterable = False
for lapack_func in lapack_funcs:
def make_patched_lapack_func(lapack_func):
def patched_lapack_func(*args, **kw):
# TODO: Verify closure capture
result = lapack_func(*args, **kw)
traceback.print_stack()
print('Result '+ repr(result))
return result
return patched_lapack_func
patched_funcs.append(make_patched_lapack_func(lapack_func))
if is_iterable:
return tuple(patched_funcs)
else:
return patched_funcs[0]
return patched_get_lapack_funcs
lapack.get_lapack_funcs = patch_get_lapack_funcs(lapack.get_lapack_funcs)
basic.get_lapack_funcs = lapack.get_lapack_funcs
from scipy.linalg.tests.test_basic import TestSolve
t = TestSolve()
t.setup_method()
t.test_random()
Metadata
Metadata
Assignees
Labels
No labels