code: def load_compatibility(filename):
      """Reconstruct a Python object from a file persisted with joblib.dump.
  
      This function ensures the compatibility with joblib old persistence format
      (<= 0.9.3).
  
      Parameters
      ----------
      filename: string
          The name of the file from which to load the object
  
      Returns
      -------
      result: any Python object
          The object stored in the file.
  
      See Also
      --------
      joblib.dump : function to save an object
  
      Notes
      -----
  
      This function can load numpy array files saved separately during the
      dump.
      """
      with open(filename, "rb") as file_handle:
          # We are careful to open the file handle early and keep it open to
          # avoid race-conditions on renames. That said, if data is stored in
          # companion files, moving the directory will create a race when
          # joblib tries to access the companion files.
          unpickler = ZipNumpyUnpickler(
              filename, file_handle=file_handle
          )
          try:
              obj = unpickler.load()
          except UnicodeDecodeError as exc:
              # More user-friendly error message
              new_exc = ValueError(
                  "You may be trying to read with "
                  "python 3 a joblib pickle generated with python 2. "
                  "This feature is not supported by joblib."
              )
              new_exc.__cause__ = exc
              raise new_exc
          finally:
              if hasattr(unpickler, "file_handle"):
                  unpickler.file_handle.close()
          return obj
  
imports: import pickle
  import os
  import zlib
  import inspect
  from io import BytesIO
  from .numpy_pickle_utils import _ZFILE_PREFIX
  from .numpy_pickle_utils import Unpickler
  from .numpy_pickle_utils import _ensure_native_byte_order
label_desc: Use image node_id 5 for calling a global function with example usage: load_compatibility(filename) and returns: obj