code: def delta(f, s, d=None):
      
      if d is None:
          d = tempfile.SpooledTemporaryFile(max_size=MAX_SPOOL, mode='wb+')
      sig = ctypes.c_void_p()
      try:
          job = _librsync.rs_loadsig_begin(ctypes.byref(sig))
          try:
              _execute(job, s)
          finally:
              _librsync.rs_job_free(job)
          r = _librsync.rs_build_hash_table(sig)
          if r != RS_DONE:
              raise LibrsyncError(r)
          job = _librsync.rs_delta_begin(sig)
          try:
              _execute(job, f, d)
          finally:
              _librsync.rs_job_free(job)
      finally:
          _librsync.rs_free_sumset(sig)
      return d
docs: Create a delta for the file `f` using the signature read from `s`. The delta
      will be written to `d`. If `d` is omitted, a temporary file will be used.
      This function returns the delta file `d`. All parameters must be file-like
      objects.