invocation-tree 0.0.23__tar.gz → 0.0.25__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.23/invocation_tree.egg-info → invocation_tree-0.0.25}/PKG-INFO +1 -1
  2. {invocation_tree-0.0.23 → invocation_tree-0.0.25}/invocation_tree/__init__.py +8 -12
  3. {invocation_tree-0.0.23 → invocation_tree-0.0.25/invocation_tree.egg-info}/PKG-INFO +1 -1
  4. {invocation_tree-0.0.23 → invocation_tree-0.0.25}/pyproject.toml +1 -1
  5. {invocation_tree-0.0.23 → invocation_tree-0.0.25}/LICENSE.txt +0 -0
  6. {invocation_tree-0.0.23 → invocation_tree-0.0.25}/MANIFEST.in +0 -0
  7. {invocation_tree-0.0.23 → invocation_tree-0.0.25}/README.md +0 -0
  8. {invocation_tree-0.0.23 → invocation_tree-0.0.25}/images/compute.gif +0 -0
  9. {invocation_tree-0.0.23 → invocation_tree-0.0.25}/images/compute.py +0 -0
  10. {invocation_tree-0.0.23 → invocation_tree-0.0.25}/images/create_gif.sh +0 -0
  11. {invocation_tree-0.0.23 → invocation_tree-0.0.25}/images/create_images.sh +0 -0
  12. {invocation_tree-0.0.23 → invocation_tree-0.0.25}/images/factorial.gif +0 -0
  13. {invocation_tree-0.0.23 → invocation_tree-0.0.25}/images/factorial.py +0 -0
  14. {invocation_tree-0.0.23 → invocation_tree-0.0.25}/images/permutations.gif +0 -0
  15. {invocation_tree-0.0.23 → invocation_tree-0.0.25}/images/permutations.py +0 -0
  16. {invocation_tree-0.0.23 → invocation_tree-0.0.25}/images/students.gif +0 -0
  17. {invocation_tree-0.0.23 → invocation_tree-0.0.25}/images/students.py +0 -0
  18. {invocation_tree-0.0.23 → invocation_tree-0.0.25}/images/vscode.png +0 -0
  19. {invocation_tree-0.0.23 → invocation_tree-0.0.25}/invocation_tree.egg-info/SOURCES.txt +0 -0
  20. {invocation_tree-0.0.23 → invocation_tree-0.0.25}/invocation_tree.egg-info/dependency_links.txt +0 -0
  21. {invocation_tree-0.0.23 → invocation_tree-0.0.25}/invocation_tree.egg-info/requires.txt +0 -0
  22. {invocation_tree-0.0.23 → invocation_tree-0.0.25}/invocation_tree.egg-info/top_level.txt +0 -0
  23. {invocation_tree-0.0.23 → invocation_tree-0.0.25}/setup.cfg +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: invocation_tree
3
- Version: 0.0.23
3
+ Version: 0.0.25
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.23"
10
+ __version__ = "0.0.25"
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,19 +306,12 @@ 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
308
- self.reset_tracer()
309
+ if prev_local_tracer is None:
310
+ return None # stop tracing if debugger stopped tracing
309
311
  return local_multiplexer
310
312
 
311
313
  return local_multiplexer
312
314
 
313
- def reset_tracer(self, hard = False):
314
- """ Reset the global tracer to Invocation_Tree.global_tracer(). """
315
- if hard or sys.gettrace() == None:
316
- sys.settrace(self.global_tracer) # reinforce global tracer, as DBD debugger 'continue' may disable it
317
-
318
-
319
315
  def blocking(filename='tree.pdf'):
320
316
  return Invocation_Tree(filename=filename)
321
317
 
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: invocation_tree
3
- Version: 0.0.23
3
+ Version: 0.0.25
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.23"
7
+ version = "0.0.25"
8
8
  description = "Generates an invocation tree of functions calls."
9
9
  authors = [
10
10
  {name = "Bas Terwijn", email = "bterwijn@gmail.com"}