class_docstr: Module and method related information.
  
  Attributes:
    module: A :class:`~haiku.Module` instance.
    method_name: The method name that was invoked on the module.
    params: The modules params dict with arrays converted to :class:`ArraySpec`.
    state: The modules state dict with arrays converted to :class:`ArraySpec`.
class_docstr_tok: ["Module","and","method","related","information",".","Attributes",":","module",":","A",":","class",":","`","~haiku.Module","`","instance",".","method_name",":","The","method","name","that","was","invoked","on","the","module",".","params",":","The","modules","params","dict","with","arrays","converted","to",":","class",":","`","ArraySpec","`",".","state",":","The","modules","state","dict","with","arrays","converted","to",":","class",":","`","ArraySpec","`","."]
code: def of(cls, module: hk.Module, method_name: str) -> "ModuleDetails":
      params = jax.tree_util.tree_map(
          ArraySpec.from_array, module.params_dict()
      )
      state = jax.tree_util.tree_map(
          ArraySpec.from_array, module.state_dict()
      )
      return ModuleDetails(
          module=module,
          method_name=method_name,
          params=params,
          state=state,
      )
  
imports: from collections.abc import Mapping, Sequence
  import dataclasses
  import functools
  import pprint
  from typing import Any, Callable, Optional, TypeVar, Union
  from haiku._src import base
  from haiku._src import data_structures
  from haiku._src import module
  from haiku._src import transform
  from haiku._src import utils
  import jax
  import jax.numpy
  import numpy
  import tabulate
label_desc: Use image node_id 1 for calling the ModuleDetails obj's underlying member method code with example usage: obj.of(cls, module, method_name) and returns: ModuleDetails