<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 initialize_stores_async(self):
 """ Intializes the partition checkpoint and lease store ensures that a checkpoint exists for all partitions. Note in this case checkpoint and lease stores are the same storage manager construct. :return: Returns the number of partitions. :rtype: int """

        await self.host.storage_manager.create_checkpoint_store_if_not_exists_async()
        partition_ids = await self.get_partition_ids_async()
        retry_tasks = []
        for partition_id in partition_ids:
            retry_tasks.append(
                self.retry_async(
                    self.host.storage_manager.create_checkpoint_if_not_exists_async,
                    partition_id=partition_id,
                    retry_message="Failure creating checkpoint for partition, retrying",
                    final_failure_message="Out of retries creating checkpoint blob for partition",
                    max_retries=5,
                    host_id=self.host.host_name))

        await asyncio.gather(*retry_tasks)
        return len(partition_ids)