<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 create(cls, block_device: BlockDevice, size: int):
 """ Create a partition on a block device. :param block_device: BlockDevice to create the paritition on. :type block_device: `BlockDevice` :param size: The size of the partition in bytes. :type size: `int` """

        params = {}
        if isinstance(block_device, BlockDevice):
            params['system_id'] = block_device.node.system_id
            params['device_id'] = block_device.id
        else:
            raise TypeError(
                'block_device must be a BlockDevice, not %s' % (
                    type(block_device).__name__))

        if not size:
            raise ValueError("size must be provided and greater than zero.")
        params['size'] = size
        return cls._object(await cls._handler.create(**params))