def digest(self, elimseq=False, notrunc=False):
if self._state == ffi.NULL:<EOL><INDENT>raise InternalError("<STR_LIT>")<EOL><DEDENT>flags = (binding.lib.FUZZY_FLAG_ELIMSEQ if elimseq else <NUM_LIT:0>) |(binding.lib.FUZZY_FLAG_NOTRUNC if notrunc else <NUM_LIT:0>)<EOL>result = ffi.new("<STR_LIT>", binding.lib.FUZZY_MAX_RESULT)<EOL>if binding.lib.fuzzy_digest(self._state, result, flags) != <NUM_LIT:0>:<EOL><INDENT>raise InternalError("<STR_LIT>")<EOL><DEDENT>return ffi.string(result).decode("<STR_LIT:ascii>")<EOL>
Obtain the fuzzy hash.

This operation does not change the state at all. It reports the hash
for the concatenation of the data previously fed using update().

:return: The fuzzy hash
:rtype: String
:raises InternalError: If lib returns an internal error