class_docstr: Encapsulates Python frame information.
code: def tree_unflatten(cls, info, valid_vars):
      (
          is_valid,
          invalid_vars,
          locals_tree,
          globals_tree,
          num_locals,
          filename,
          code_context,
          source,
          lineno,
          offset,
      ) = info
      flat_vars = util.merge_lists(is_valid, invalid_vars, valid_vars)
      flat_locals, flat_globals = util.split_list(
          flat_vars, [num_locals]
      )
      locals_ = tree_util.tree_unflatten(
          locals_tree, flat_locals
      ).to_dict()
      globals_ = tree_util.tree_unflatten(
          globals_tree, flat_globals
      ).to_dict()
      return DebuggerFrame(
          filename,
          locals_,
          globals_,
          code_context,
          source,
          lineno,
          offset,
      )
  
imports: from __future__ import annotations
  from collections.abc import Hashable
  import dataclasses
  import inspect
  import threading
  from typing import Any, Protocol
  import jax
  from jax import tree_util
  from jax._src import core
  from jax._src import debugging
  from jax._src import traceback_util
  from jax._src import util
label_desc: Use image node_id 2 for calling the DebuggerFrame obj's underlying member method code with example usage: obj.tree_unflatten(cls, info, valid_vars) and returns: DebuggerFrame