From 5ed3fb2463f52a419145a802cc518c41c169708a Mon Sep 17 00:00:00 2001 From: sizhky <1992chinna@gmail.com> Date: Sun, 8 Sep 2024 20:19:17 +0530 Subject: [PATCH] Compatibility with jupyter notebooks --- pysnooper/tracer.py | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/pysnooper/tracer.py b/pysnooper/tracer.py index 00b7a68..6df6936 100644 --- a/pysnooper/tracer.py +++ b/pysnooper/tracer.py @@ -21,6 +21,7 @@ if pycompat.PY2: ipython_filename_pattern = re.compile('^$') ansible_filename_pattern = re.compile(r'^(.+\.zip)[/|\\](ansible[/|\\]modules[/|\\].+\.py)$') +ipykernel_filename_pattern = re.compile('^/var/folders/.*/ipykernel_\d+/\d+.py$') RETURN_OPCODES = { 'RETURN_GENERATOR', 'RETURN_VALUE', 'RETURN_CONST', 'INSTRUMENTED_RETURN_GENERATOR', 'INSTRUMENTED_RETURN_VALUE', @@ -74,6 +75,10 @@ def get_path_and_source_from_frame(frame): if source is None: ipython_filename_match = ipython_filename_pattern.match(file_name) ansible_filename_match = ansible_filename_pattern.match(file_name) + ipykernel_filename_match = ipykernel_filename_pattern.match(file_name) + if ipykernel_filename_match: + import linecache + _, _, source, _ = linecache.cache.get(file_name) if ipython_filename_match: entry_number = int(ipython_filename_match.group(1)) try: