code: def save_global(self, obj, name=None, pack=struct.pack):
      # Fixes joblib issue. In the except block,
      # Pickler.save_global has been moved to bottom so it
      # can actually work.
      kwargs = dict(name=name, pack=pack)
      del kwargs["pack"]
      try:
          Pickler.save_global(self, obj, **kwargs)
      except pickle.PicklingError:
          module = getattr(obj, "__module__", None)
          if module == "__main__":
              my_name = name
              if my_name is None:
                  my_name = obj.__name__
              mod = sys.modules[module]
              if not hasattr(mod, my_name):
                  # IPython doesn't inject the variables define
                  # interactively in __main__
                  setattr(mod, my_name, obj)
          Pickler.save_global(self, obj, **kwargs)
  
imports: import hashlib
  import pickle
  import struct
  import sys
  import tempfile
  import time
  import traceback
  from pathlib import Path
  from typing import TYPE_CHECKING, Union
  from joblib.hashing import Hasher, Pickler
  from joblib.memory import MemorizedFunc, MemorizedResult, Memory, NotMemorizedResult, _format_load_msg, filter_args, format_call, format_signature, format_time, get_func_name
  from xxhash import xxh128
label_desc: Use image node_id 3 for calling the FastHasher obj's underlying member method code with example usage: obj.save_global(obj, name, pack) without return types