code: def load_filter(name, full=False, path='filters'):
      r
  
      # First we'll get the filter using its internal routine.
      filt = DigitalFilter(name.split('.')[0])
      filt.fromfile(path)
  
      # If full, we get the inversion output
      if full:
          # Try to get the inversion result. If files are not found, most likely
          # because they were not stored, we only return the filter
          try:
              # Get file name
              path = os.path.abspath(path)
              if len(name.split('.')) == 2:
                  suffix = '.gz'
              else:
                  suffix = ''
              fullfile = os.path.join(path, name.split('.')[0] +
                                      '_full.txt' + suffix)
  
              # Read data
              out = np.loadtxt(fullfile)
  
          except IOError:
              return filt
  
          # Collect inversion-result tuple
          nspace = int(out[0][0])
          nshift = int(out[1][0])
  
          space_shift_matrix = np.zeros((2, nspace, nshift))
          space_shift_matrix[0, :, :] = out[5:nspace+5, :]
          space_shift_matrix[1, :, :] = out[nspace+5:2*nspace+5, :]
  
          out = (np.array([out[2][0], out[3][0]]), out[4][0], space_shift_matrix,
                 out[2*nspace+5:3*nspace+5, :], int(out[3*nspace+5, 0]))
  
          return filt, out
      else:
          return filt
docs: r"""Load saved DLF-filter and inversion output from text files.