code: def _flatten_names(
      path: types.Path, inputs: tp.Any
  ) -> tp.Iterable[tp.Tuple[types.Path, tp.Any]]:
      if isinstance(inputs, (tp.Tuple, tp.List)):
          for i, value in enumerate(inputs):
              yield from _flatten_names(path, value)
      elif isinstance(inputs, tp.Dict):
          for name, value in inputs.items():
              yield from _flatten_names(path + (name,), value)
      else:
          yield (path, inputs)
  
imports: import enum
  import functools
  import hashlib
  import inspect
  import io
  import os
  import re
  import shutil
  import sys
  import typing
  import urllib
  from functools import total_ordering
  import jax
  import jax.numpy
  import jax.tree_util
  import numpy
  import treex
  from elegy import types
label_desc: Use image node_id 12 for calling a global function with example usage: _flatten_names(path, inputs) without return types