uncongeniality_analysis/src/data_classes/parameters_plot_barchart.py

22 lines
756 B
Python

from typing import Optional
from attrs import field, define
from attrs.validators import instance_of, optional, deep_iterable
from src.data_classes.parameters_visualization import PlotParameters
@define
class BarChartPlotParameters(PlotParameters):
variable_x_axis: str = field(validator=instance_of(str))
variable_y_axis: Optional[str] = field(validator=optional(instance_of(str)))
chart_orientation: str = field(validator=instance_of(str))
sort_order: str = field(validator=instance_of(str))
custom_order: Optional[list[str]] = field(
default=None,
validator=optional(
deep_iterable(
member_validator=instance_of(str), iterable_validator=instance_of(list)
)
),
)