File tree Expand file tree Collapse file tree 2 files changed +21
-6
lines changed Expand file tree Collapse file tree 2 files changed +21
-6
lines changed Original file line number Diff line number Diff line change @@ -69,9 +69,7 @@ def handle_shown_state(
6969 for name in env .names :
7070 self ._setup_callback (name , state )
7171 else :
72- # Remove callbacks for primitives.
73- for name , val in state .callbacks .items ():
74- state .primitives [name ].remove_callback (val )
72+ state .clear_telemetry ()
7573
7674 # Save current UI state.
7775 state .latest_ui_values .update (latest )
Original file line number Diff line number Diff line change @@ -53,19 +53,36 @@ def frame(self, time: float) -> JsonMessage:
5353
5454 return result
5555
56+ def clear_telemetry (self ) -> None :
57+ """Clear all telemetry interactions."""
58+
59+ # Remove callbacks for primitives.
60+ for name , val in self .callbacks .items ():
61+ self .primitives [name ].remove_callback (val )
62+ self .callbacks .clear ()
63+ self .primitives .clear ()
64+
65+ # Clear points.
66+ self .points .clear ()
67+
5668 def clear_loggers (self ) -> None :
5769 """Clear all logging handlers."""
5870
71+ # Remove handlers.
5972 for logger in self ._loggers :
6073 logger .removeHandler (self .tab_logger )
74+ self ._loggers .clear ()
75+
6176 self .tab_logger .drain_str ()
62- self ._loggers = []
77+
78+ self .clear_telemetry ()
6379
6480 def add_logger (self , logger : logging .Logger ) -> None :
6581 """Add a logger."""
6682
67- logger .addHandler (self .tab_logger )
68- self ._loggers .append (logger )
83+ if logger not in self ._loggers :
84+ logger .addHandler (self .tab_logger )
85+ self ._loggers .append (logger )
6986
7087 @staticmethod
7188 def create () -> "TabState" :
You can’t perform that action at this time.
0 commit comments