code: def save_hashfile(hashfile, hashed_inputs):
      """Store a hashfile"""
      try:
          save_json(hashfile, hashed_inputs)
      except (OSError, TypeError):
          err_type = sys.exc_info()[0]
          if err_type is TypeError:
              # XXX - SG current workaround is to just
              # create the hashed file and not put anything
              # in it
              with open(hashfile, "w") as fd:
                  fd.writelines(str(hashed_inputs))
  
              logger.debug(
                  "Unable to write a particular type to the json file"
              )
          else:
              logger.critical(
                  "Unable to open the file in write mode: %s", hashfile
              )
  
imports: import os
  import sys
  import pickle
  from collections import defaultdict
  import re
  from copy import deepcopy
  from glob import glob
  from pathlib import Path
  from traceback import format_exception
  from hashlib import sha1
  from functools import reduce
  import numpy
  from ...None import logging, config
  from ...utils.filemanip import indirectory, relpath, fname_presuffix, ensure_list, get_related_files, save_json, savepkl, loadpkl, write_rst_header, write_rst_dict, write_rst_list
  from ...utils.misc import str2bool
  from ...utils.functions import create_function_from_source
  from ...interfaces.base.traits_extension import rebase_path_traits, resolve_path_traits, OutputMultiPath, isdefined, Undefined
  from ...interfaces.base.support import Bunch, InterfaceResult
  from ...interfaces.base import CommandLine
  from ...interfaces.utility import IdentityInterface
  from ...utils.provenance import ProvStore, pm, nipype_ns, get_id
  from inspect import signature
label_desc: Use image node_id 2 for calling a global function with example usage: save_hashfile(hashfile, hashed_inputs) without return types