Skip to content

charts

django_spire.metric.visual.charts

VISUAL_CHART_CLASSES = {VisualKindChoices.LINE: VisualLineChart, VisualKindChoices.BAR: VisualBarChart, VisualKindChoices.AREA: VisualAreaChart, VisualKindChoices.PIE: VisualPieChart, VisualKindChoices.GAUGE: VisualGaugeChart} module-attribute

VisualLineChart

Bases: LineChart

Source code in django_spire/contrib/chart/charts.py
def __init__(self, params: dict[str, Any] | None = None) -> None:
    self.params = {**type(self).params, **(params or {})}

glue_name = 'visual_line_chart' class-attribute instance-attribute

build_option_body classmethod

Source code in django_spire/metric/visual/charts.py
@classmethod
def build_option_body(cls, visual_pk: int, **_kwargs: Any) -> dict:
    visual = _visual_for(visual_pk)

    points = visual.services.transformation.series_data()

    return {
        'xAxis': {'type': 'time'},
        'series': [
            {
                'name': visual.name,
                'data': [
                    [point['timestamp'].isoformat(), float(point['value'])] for point in points
                ],
            }
        ],
    }

VisualBarChart

Bases: BarChart

Source code in django_spire/contrib/chart/charts.py
def __init__(self, params: dict[str, Any] | None = None) -> None:
    self.params = {**type(self).params, **(params or {})}

glue_name = 'visual_bar_chart' class-attribute instance-attribute

build_option_body classmethod

Source code in django_spire/metric/visual/charts.py
@classmethod
def build_option_body(cls, visual_pk: int, **_kwargs: Any) -> dict:
    visual = _visual_for(visual_pk)

    points = visual.services.transformation.series_data()

    return {
        'xAxis': {'type': 'time'},
        'series': [
            {
                'name': visual.name,
                'data': [
                    [point['timestamp'].isoformat(), float(point['value'])] for point in points
                ],
            }
        ],
    }

VisualAreaChart

Bases: AreaChart

Source code in django_spire/contrib/chart/charts.py
def __init__(self, params: dict[str, Any] | None = None) -> None:
    self.params = {**type(self).params, **(params or {})}

glue_name = 'visual_area_chart' class-attribute instance-attribute

build_option_body classmethod

Source code in django_spire/metric/visual/charts.py
@classmethod
def build_option_body(cls, visual_pk: int, **_kwargs: Any) -> dict:
    visual = _visual_for(visual_pk)

    points = visual.services.transformation.series_data()

    return {
        'xAxis': {'type': 'time'},
        'series': [
            {
                'name': visual.name,
                'data': [
                    [point['timestamp'].isoformat(), float(point['value'])] for point in points
                ],
            }
        ],
    }

VisualPieChart

Bases: PieChart

Source code in django_spire/contrib/chart/charts.py
def __init__(self, params: dict[str, Any] | None = None) -> None:
    self.params = {**type(self).params, **(params or {})}

glue_name = 'visual_pie_chart' class-attribute instance-attribute

build_option_body classmethod

Source code in django_spire/metric/visual/charts.py
@classmethod
def build_option_body(cls, visual_pk: int, **_kwargs: Any) -> dict:
    visual = _visual_for(visual_pk)

    data = visual.services.transformation.series_breakdown()

    return {'series': [{'name': visual.name, 'data': data}]}

VisualGaugeChart

Bases: GaugeChart

Source code in django_spire/contrib/chart/charts.py
def __init__(self, params: dict[str, Any] | None = None) -> None:
    self.params = {**type(self).params, **(params or {})}

glue_name = 'visual_gauge_chart' class-attribute instance-attribute

build_option_body classmethod

Source code in django_spire/metric/visual/charts.py
@classmethod
def build_option_body(cls, visual_pk: int, **_kwargs: Any) -> dict:
    visual = _visual_for(visual_pk)

    value = float(visual.services.transformation.current_value())
    ceiling = visual.services.transformation.gauge_max()

    return {
        'series': [
            {
                'name': visual.name,
                'min': 0,
                'max': ceiling,
                'detail': {'formatter': '{value}'},
                'data': [{'value': value, 'name': visual.name}],
            }
        ]
    }