# Code generated by Lark OpenAPI.

from typing import Any, Optional, Union, Dict, List, Set, IO, Callable, Type
from lark_oapi.core.construct import init


class Pie(object):
    _types = {
        "start_radial_line_angle": float,
        "central_angle": float,
        "radius": float,
        "sector_ratio": float,
    }

    def __init__(self, d=None):
        self.start_radial_line_angle: Optional[float] = None
        self.central_angle: Optional[float] = None
        self.radius: Optional[float] = None
        self.sector_ratio: Optional[float] = None
        init(self, d, self._types)

    @staticmethod
    def builder() -> "PieBuilder":
        return PieBuilder()


class PieBuilder(object):
    def __init__(self) -> None:
        self._pie = Pie()

    def start_radial_line_angle(self, start_radial_line_angle: float) -> "PieBuilder":
        self._pie.start_radial_line_angle = start_radial_line_angle
        return self

    def central_angle(self, central_angle: float) -> "PieBuilder":
        self._pie.central_angle = central_angle
        return self

    def radius(self, radius: float) -> "PieBuilder":
        self._pie.radius = radius
        return self

    def sector_ratio(self, sector_ratio: float) -> "PieBuilder":
        self._pie.sector_ratio = sector_ratio
        return self

    def build(self) -> "Pie":
        return self._pie
