<SYSTEM_TASK:>
Solve the following problem using Python, implementing the functions described below, one line at a time
<END_TASK>
<USER_TASK:>
Description:
 async def checkpoint_async(self, event_processor_context=None):
 """ Generates a checkpoint for the partition using the curren offset and sequenceNumber for and persists to the checkpoint manager. :param event_processor_context An optional custom state value for the Event Processor. This data must be in a JSON serializable format. :type event_processor_context: str or dict """

        captured_checkpoint = Checkpoint(self.partition_id, self.offset, self.sequence_number)
        await self.persist_checkpoint_async(captured_checkpoint, event_processor_context)
        self.event_processor_context = event_processor_context