File tree Expand file tree Collapse file tree 2 files changed +17
-11
lines changed Expand file tree Collapse file tree 2 files changed +17
-11
lines changed Original file line number Diff line number Diff line change 1
1
"""Exports function `get_clean_stacktrace`"""
2
2
3
- import traceback
3
+ import inspect
4
+ import sys
4
5
5
6
6
7
def get_clean_stacktrace ():
7
8
"""Returns a cleaned up stacktrace"""
8
- stack_trace = traceback . extract_stack ()
9
- filtered_stack_trace = filter ( filter_no_aikido , stack_trace )
9
+ # Get the current stack
10
+ stack = inspect . stack ( )
10
11
11
- formatted_trace = "" . join ( traceback . format_list ( filtered_stack_trace ))
12
- return formatted_trace
12
+ # List of built-in modules to filter out
13
+ ignored_modules = sys . builtin_module_names
13
14
15
+ cleaned_stack = []
14
16
15
- def filter_no_aikido (frame ):
16
- """Custom filter to remove aikido frames"""
17
- return "/site-packages/aikido_firewall/" not in frame .filename
17
+ for frame_info in stack :
18
+ name = frame_info .frame .f_globals .get ("__name__" , "" )
19
+
20
+ if name not in ignored_modules and not name .startswith ("aikido_firewall" ):
21
+ cleaned_stack .append (
22
+ f"File: { frame_info .filename } , L{ frame_info .lineno } { frame_info .function } (...)"
23
+ )
24
+
25
+ cleaned_stack .reverse ()
26
+ return "• " + "\n \n • " .join (cleaned_stack )
Original file line number Diff line number Diff line change @@ -21,6 +21,3 @@ def dummy_function():
21
21
return get_clean_stacktrace ()
22
22
23
23
result = dummy_function ()
24
-
25
- assert "get_clean_stacktrace_test.py" in result
26
- assert "dummy_function" in result
You can’t perform that action at this time.
0 commit comments