invocation-tree 0.0.22__tar.gz → 0.0.24__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (23) hide show
  1. {invocation_tree-0.0.22/invocation_tree.egg-info → invocation_tree-0.0.24}/PKG-INFO +1 -1
  2. {invocation_tree-0.0.22 → invocation_tree-0.0.24}/invocation_tree/__init__.py +13 -5
  3. {invocation_tree-0.0.22 → invocation_tree-0.0.24/invocation_tree.egg-info}/PKG-INFO +1 -1
  4. {invocation_tree-0.0.22 → invocation_tree-0.0.24}/pyproject.toml +1 -1
  5. {invocation_tree-0.0.22 → invocation_tree-0.0.24}/LICENSE.txt +0 -0
  6. {invocation_tree-0.0.22 → invocation_tree-0.0.24}/MANIFEST.in +0 -0
  7. {invocation_tree-0.0.22 → invocation_tree-0.0.24}/README.md +0 -0
  8. {invocation_tree-0.0.22 → invocation_tree-0.0.24}/images/compute.gif +0 -0
  9. {invocation_tree-0.0.22 → invocation_tree-0.0.24}/images/compute.py +0 -0
  10. {invocation_tree-0.0.22 → invocation_tree-0.0.24}/images/create_gif.sh +0 -0
  11. {invocation_tree-0.0.22 → invocation_tree-0.0.24}/images/create_images.sh +0 -0
  12. {invocation_tree-0.0.22 → invocation_tree-0.0.24}/images/factorial.gif +0 -0
  13. {invocation_tree-0.0.22 → invocation_tree-0.0.24}/images/factorial.py +0 -0
  14. {invocation_tree-0.0.22 → invocation_tree-0.0.24}/images/permutations.gif +0 -0
  15. {invocation_tree-0.0.22 → invocation_tree-0.0.24}/images/permutations.py +0 -0
  16. {invocation_tree-0.0.22 → invocation_tree-0.0.24}/images/students.gif +0 -0
  17. {invocation_tree-0.0.22 → invocation_tree-0.0.24}/images/students.py +0 -0
  18. {invocation_tree-0.0.22 → invocation_tree-0.0.24}/images/vscode.png +0 -0
  19. {invocation_tree-0.0.22 → invocation_tree-0.0.24}/invocation_tree.egg-info/SOURCES.txt +0 -0
  20. {invocation_tree-0.0.22 → invocation_tree-0.0.24}/invocation_tree.egg-info/dependency_links.txt +0 -0
  21. {invocation_tree-0.0.22 → invocation_tree-0.0.24}/invocation_tree.egg-info/requires.txt +0 -0
  22. {invocation_tree-0.0.22 → invocation_tree-0.0.24}/invocation_tree.egg-info/top_level.txt +0 -0
  23. {invocation_tree-0.0.22 → invocation_tree-0.0.24}/setup.cfg +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: invocation_tree
3
- Version: 0.0.22
3
+ Version: 0.0.24
4
4
  Summary: Generates an invocation tree of functions calls.
5
5
  Author-email: Bas Terwijn <bterwijn@gmail.com>
6
6
  License: BSD 2-Clause License
@@ -7,7 +7,7 @@ import html
7
7
  import sys
8
8
  import difflib
9
9
 
10
- __version__ = "0.0.22"
10
+ __version__ = "0.0.24"
11
11
  __author__ = 'Bas Terwijn'
12
12
 
13
13
  def highlight_diff(str1, str2):
@@ -75,7 +75,8 @@ class Invocation_Tree:
75
75
  to_string=None,
76
76
  hide_vars=None,
77
77
  cleanup=True,
78
- quiet=True):
78
+ quiet=True,
79
+ keep_tracing=False):
79
80
  # --- config
80
81
  self.filename = filename
81
82
  self.prev_filename = None
@@ -111,6 +112,7 @@ class Invocation_Tree:
111
112
  self.hide_calls = {'Invocation_Tree.__exit__', 'Invocation_Tree.stop_trace'}
112
113
  self.ignore_calls = set()
113
114
  self.ignoring_call = None
115
+ self.keep_tracing = keep_tracing
114
116
 
115
117
  def __repr__(self):
116
118
  return f'Invocation_Tree(filename={repr(self.filename)}, show={self.show}, block={self.block}, each_line={self.each_line}, gifcount={self.gifcount})'
@@ -121,7 +123,8 @@ class Invocation_Tree:
121
123
  sys.settrace(self.global_tracer)
122
124
  result = fun(*args, **kwargs)
123
125
  finally:
124
- sys.settrace(self.prev_global_tracer)
126
+ if not self.keep_tracing:
127
+ sys.settrace(self.prev_global_tracer)
125
128
  return result
126
129
 
127
130
  def value_to_string(self, key, value, use_repr=False):
@@ -303,12 +306,17 @@ class Invocation_Tree:
303
306
  if prev_local_tracer is not None:
304
307
  # call previous local tracer if any existed and update it
305
308
  prev_local_tracer = prev_local_tracer(frame, event, arg)
306
- if prev_local_tracer is None:
307
- return None # stop tracing if debugger stopped tracing
309
+ # if prev_local_tracer is None:
310
+ # return None # stop tracing if debugger stopped tracing
311
+ self.reset_tracer(self.global_tracer)
308
312
  return local_multiplexer
309
313
 
310
314
  return local_multiplexer
311
315
 
316
+ def reset_tracer(self, tracer=None, hard=False):
317
+ """ Reset the global tracer to 'tracer' use None or self.global_tracer. """
318
+ if hard or sys.gettrace() == None:
319
+ sys.settrace(tracer) # reinforce global tracer, as DBD debugger 'continue' may disable it
312
320
 
313
321
  def blocking(filename='tree.pdf'):
314
322
  return Invocation_Tree(filename=filename)
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: invocation_tree
3
- Version: 0.0.22
3
+ Version: 0.0.24
4
4
  Summary: Generates an invocation tree of functions calls.
5
5
  Author-email: Bas Terwijn <bterwijn@gmail.com>
6
6
  License: BSD 2-Clause License
@@ -4,7 +4,7 @@ build-backend = "setuptools.build_meta"
4
4
 
5
5
  [project]
6
6
  name = "invocation_tree"
7
- version = "0.0.22"
7
+ version = "0.0.24"
8
8
  description = "Generates an invocation tree of functions calls."
9
9
  authors = [
10
10
  {name = "Bas Terwijn", email = "bterwijn@gmail.com"}