feat(recorder): Record stack for each frappe.db.sql call

This commit is contained in:
Aditya Hase 2018-10-22 21:40:26 +05:30
parent dcd9a1053d
commit 3cdbb0b40f

View file

@ -47,11 +47,21 @@ def recorder(function):
# Execute wrapped function as is
# Record arguments as well as return value
result = function(*args, **kwargs)
import traceback
stack = "".join(traceback.format_stack())
# Big hack here
# PyMysql stores exact DB query in cursor._executed
# Assumes that function refers to frappe.db.sql
# __self__ will refer to frappe.db
# Rest is trivial
data = {
"function": function.__name__,
"args": args,
"kwargs": kwargs,
"result": result,
"stack": stack
}
# Record all calls, Will be later stored in cache