<SYSTEM_TASK:>
Solve the following problem using Python, implementing the functions described below, one line at a time
<END_TASK>
<USER_TASK:>
Description:
 def hmac_sha1(self, key_handle, data, flags = None, final = True, to_buffer = False):
 """ Have the YubiHSM generate a HMAC SHA1 of 'data' using a key handle. Use the L{pyhsm.hmac_cmd.YHSM_Cmd_HMAC_SHA1_Write.next} to add more input (until 'final' has been set to True). Use the L{pyhsm.hmac_cmd.YHSM_Cmd_HMAC_SHA1_Write.get_hash} to get the hash result this far. @param key_handle: Key handle to use when generating HMAC SHA1 @param data: what to calculate the HMAC SHA1 checksum of @keyword flags: bit-flags, overrides 'final' and 'to_buffer' @keyword final: True when there is no more data, False if there is more @keyword to_buffer: Should the final result be stored in the YubiHSM internal buffer or not @type key_handle: integer or string @type data: string @type flags: None or integer @returns: HMAC-SHA1 instance @rtype: L{YHSM_Cmd_HMAC_SHA1_Write} @see: L{pyhsm.hmac_cmd.YHSM_Cmd_HMAC_SHA1_Write} """

        return pyhsm.hmac_cmd.YHSM_Cmd_HMAC_SHA1_Write( \
            self.stick, key_handle, data, flags = flags, final = final, to_buffer = to_buffer).execute()