import functools
from scipy import integrate
def counted_calls(f):
@functools.wraps(f)
def count_wrapper(*args, **kwargs):
count_wrapper.count += 1
return f(*args, **kwargs)
count_wrapper.count = 0
return count_wrapper
def f(x): return x**2
wrapped = counted_calls(f)
integrate.quad(wrapped, 0, 1)
print(wrapped.count)
aW1wb3J0IGZ1bmN0b29scwpmcm9tIHNjaXB5IGltcG9ydCBpbnRlZ3JhdGUKCmRlZiBjb3VudGVkX2NhbGxzKGYpOgogICAgQGZ1bmN0b29scy53cmFwcyhmKQogICAgZGVmIGNvdW50X3dyYXBwZXIoKmFyZ3MsICoqa3dhcmdzKToKICAgICAgICBjb3VudF93cmFwcGVyLmNvdW50ICs9IDEKICAgICAgICByZXR1cm4gZigqYXJncywgKiprd2FyZ3MpCiAgICBjb3VudF93cmFwcGVyLmNvdW50ID0gMAogICAgcmV0dXJuIGNvdW50X3dyYXBwZXIKCmRlZiBmKHgpOiByZXR1cm4geCoqMgoKd3JhcHBlZCA9IGNvdW50ZWRfY2FsbHMoZikKaW50ZWdyYXRlLnF1YWQod3JhcHBlZCwgMCwgMSkKcHJpbnQod3JhcHBlZC5jb3VudCk=