code: def decompress(infile, outdir="."):
      """Decompress an XRIT data file and return the path to the decompressed file.
  
      It expect to find Eumetsat's xRITDecompress through the environment variable
      XRIT_DECOMPRESS_PATH.
      """
      cmd = get_xritdecompress_cmd()
      infile = os.path.abspath(infile)
      cwd = os.getcwd()
      os.chdir(outdir)
  
      p = Popen([cmd, infile], stdout=PIPE)  # nosec B603
      stdout = BytesIO(p.communicate()[0])
      status = p.returncode
      os.chdir(cwd)
  
      if status != 0:
          raise IOError(
              "xrit_decompress '%s', failed, status=%d"
              % (infile, status)
          )
  
      outfile = get_xritdecompress_outfile(stdout)
  
      if not outfile:
          raise IOError(
              "xrit_decompress '%s', failed, no output file is generated"
              % infile
          )
  
      return os.path.join(outdir, outfile.decode("utf-8"))
  
imports: import logging
  import os
  from contextlib import contextmanager, nullcontext
  from datetime import timedelta
  from io import BytesIO
  from subprocess import PIPE, Popen
  import dask
  import dask.array
  import numpy
  import xarray
  from pyresample import geometry
  import satpy.readers.utils
  from satpy import config
  from satpy.readers import FSFile
  from satpy.readers.eum_base import time_cds_short
  from satpy.readers.file_handlers import BaseFileHandler
  from satpy.readers.seviri_base import dec10216
label_desc: Use image node_id 3 for calling a global function with example usage: decompress(infile, outdir) and returns: os