Source code for fastpyxl.chartsheet.custom

# Copyright (c) 2010-2024 fastpyxl

from fastpyxl.worksheet.header_footer import HeaderFooter

from fastpyxl.typed_serialisable.base import Serialisable
from fastpyxl.typed_serialisable.errors import FieldValidationError
from fastpyxl.typed_serialisable.fields import Field
from fastpyxl.worksheet.page import (
    PageMargins,
    PrintPageSetup
)


[docs] class CustomChartsheetView(Serialisable): tagname = "customSheetView" guid: str | None = Field.attribute(expected_type=str, allow_none=True, default=None) scale: int | None = Field.attribute(expected_type=int, allow_none=True, default=None) state: str | None = Field.attribute( expected_type=str, allow_none=True, converter=lambda v: _enum_converter(v, ("visible", "hidden", "veryHidden"), "state"), default=None, ) zoomToFit: bool | None = Field.attribute(expected_type=bool, allow_none=True, default=None) pageMargins: PageMargins | None = Field.element(expected_type=PageMargins, allow_none=True, default=None) pageSetup: PrintPageSetup | None = Field.element(expected_type=PrintPageSetup, allow_none=True, default=None) headerFooter: HeaderFooter | None = Field.element(expected_type=HeaderFooter, allow_none=True, default=None) xml_order = ('pageMargins', 'pageSetup', 'headerFooter') def __init__(self, guid=None, scale=None, state='visible', zoomToFit=None, pageMargins=None, pageSetup=None, headerFooter=None, ): self.guid = guid self.scale = scale self.state = state self.zoomToFit = zoomToFit self.pageMargins = pageMargins self.pageSetup = pageSetup self.headerFooter = headerFooter
[docs] class CustomChartsheetViews(Serialisable): tagname = "customSheetViews" customSheetView: list[CustomChartsheetView] | None = Field.sequence( expected_type=CustomChartsheetView, allow_none=True, default=list, ) xml_order = ('customSheetView',) def __init__(self, customSheetView=None, ): self.customSheetView = customSheetView
def _enum_converter(value, allowed_values, field_name: str): if value is None: return None if value not in allowed_values: raise FieldValidationError(f"{field_name} rejected value {value!r}") return value