code: def _unflatten_module(
      cls: type["Module"], aux: _FlattenedData, dynamic_field_values
  ):
      # This doesn't go via `__init__`. A user may have done something nontrivial there,
      # and the field values may be dummy values as used in various places throughout JAX.
      # See also
      # https://jax.readthedocs.io/en/latest/pytrees.html#custom-pytrees-and-initialization,
      # which was (I believe) inspired by Equinox's approach here.
      module = object.__new__(cls)
      for name, value in zip(
          aux.dynamic_field_names, dynamic_field_values
      ):
          object.__setattr__(module, name, value)
      for name, value in zip(
          aux.static_field_names, aux.static_field_values
      ):
          object.__setattr__(module, name, value)
      for name, value in zip(
          aux.wrapper_field_names, aux.wrapper_field_values
      ):
          object.__setattr__(module, name, value)
      return module
  
imports: import abc
  import dataclasses
  import functools
  import inspect
  import types
  import warnings
  import weakref
  from collections.abc import Callable
  from typing import Any, cast, Optional, Protocol, TYPE_CHECKING, TypeVar, Union
  from typing_extensions import dataclass_transform, ParamSpec
  import jax._src.traceback_util
  import jax.tree_util
  import numpy
  from jaxtyping import Array, Bool, PyTreeDef
  from ._better_abstract import ABCMeta, dataclass
  from ._caches import internal_lru_caches
  from ._doc_utils import doc_repr
  from ._pretty_print import tree_pformat
  from ._tree import tree_equal
label_desc: Use image node_id 9 for calling a global function with example usage: _unflatten_module(cls, aux, dynamic_field_values) and returns: module