code: def _nntxt_file_loader(ctx, file_loaders, nnp, filename, ext):
      """.nntxt, .prototxt
      nntxt file loader
      This loader only loads .nntxt or .prototxt files
      """
      if not ctx.parameter_only:
          with get_file_handle_load(nnp, filename, ext) as f:
              try:
                  text_format.Merge(f.read(), ctx.proto)
              except:
                  logger.critical("Failed to read {}.".format(filename))
                  logger.critical(
                      "2 byte characters may be used for file name or folder name."
                  )
                  raise
      if len(ctx.proto.parameter) > 0:
          if not ctx.exclude_parameter:
              _nntxt_parameter_file_loader(
                  ctx, file_loaders, nnp, filename, ext
              )
  
imports: import contextlib
  import io
  import os
  import re
  import zipfile
  from collections import OrderedDict
  from functools import partial
  import google.protobuf.text_format
  import h5py
  import nnabla
  import numpy
  from nnabla.logger import logger
  from nnabla.utils import nnabla_pb2
  from nnabla.utils.nnp_format import nnp_version
label_desc: Use image node_id 4 for calling a global function with example usage: _nntxt_file_loader(ctx, file_loaders, nnp, filename, ext) without return types