class_docstr: Execution trace poutine.
  
  A TraceHandler records the input and output to every Pyro primitive
  and stores them as a site in a Trace().
  This should, in theory, be sufficient information for every inference algorithm
  (along with the implicit computational graph in the Variables?)
  
  We can also use this for visualization.
docstr: :returns: data structure
  :rtype: pyro.poutine.Trace
  
  Helper method for a very common use case.
  Calls this poutine and returns its trace instead of the function's return value.
docstr_tok: [":","returns",":","data","structure",":","rtype",":","pyro.poutine.Trace","Helper","method","for","a","very","common","use","case",".","Calls","this","poutine","and","returns","its","trace","instead","of","the","function","'s","return","value","."]
code: def get_trace(self, *args, **kwargs) -> Trace:
      """
      :returns: data structure
      :rtype: pyro.poutine.Trace
  
      Helper method for a very common use case.
      Calls this poutine and returns its trace instead of the function's return value.
      """
      self(*args, **kwargs)
      return self.msngr.get_trace()
  
imports: import sys
  from typing import TYPE_CHECKING, Any, Callable, Literal, Optional
  from typing_extensions import Self
  from pyro.poutine.messenger import Messenger
  from pyro.poutine.trace_struct import Trace
  from pyro.poutine.util import site_is_subsample
label_desc: Use image node_id 4 for calling the TraceHandler obj's underlying member method code with example usage: obj.get_trace() and returns: self