from dataclasses import dataclass


@dataclass
class MethodParameters:
    """
    Dataclass to hold the parameters of a method,
    classified in mandatory or optional according
    to its declaration.

    Those parameters are obtained from the method
    signature, where any parameter with a default
    None value is considered optional.
    """

    mandatory_parameters: list[str]
    """
    The names of those parameters that have been
    considered mandatory according to the method
    signature.
    """
    optional_parameters: list[str]
    """
    The names of those parameters that have been
    considered optional according to the method
    signature.
    """

    def __init__(
        self,
        mandatory_parameters: list[str],
        optional_parameters: list[str]
    ):
        self.mandatory_parameters = mandatory_parameters
        self.optional_parameters = optional_parameters