def METHOD_NAME(
    self, name: str, mbsize: int, type_name: str, flags: List[str] = None
) -> None:
    """
    Create GPT partition
    :param string name: partition name
    :param int mbsize: partition size
    :param string type_name: partition type
    :param list flags: additional flags
    """
    self.partition_id += 1
    if mbsize == 'all_free':
        partition_end = '0'
    else:
        partition_end = '+' + format(mbsize) + 'M'
    if self.partition_id > 1 or not self.start_sector:
        # A start  sector value of 0 specifies the default value
        # defined in sgdisk
        self.start_sector = 0
    Command.run(
        [
            'sgdisk', '-n', ':'.join(
                [
                    format(self.partition_id),
                    format(self.start_sector),
                    partition_end
                ]
            ), '-c', ':'.join([format(self.partition_id), name]),
            self.disk_device
        ]
    )
    self.set_flag(self.partition_id, type_name)
    if flags:
        for flag_name in flags:
            self.set_flag(self.partition_id, flag_name)