Source code for fastpyxl.chartsheet.publish
# Copyright (c) 2010-2024 fastpyxl
from fastpyxl.typed_serialisable.base import Serialisable
from fastpyxl.typed_serialisable.errors import FieldValidationError
from fastpyxl.typed_serialisable.fields import Field
[docs]
class WebPublishItem(Serialisable):
tagname = "webPublishItem"
id: int | None = Field.attribute(expected_type=int, allow_none=True, default=None)
divId: str | None = Field.attribute(expected_type=str, allow_none=True, default=None)
sourceType: str | None = Field.attribute(
expected_type=str,
allow_none=True,
converter=lambda v: _enum_converter(
v,
("sheet", "printArea", "autoFilter", "range", "chart", "pivotTable", "query", "label"),
"sourceType",
), default=None,
)
sourceRef: str | None = Field.attribute(expected_type=str, allow_none=True, default=None)
sourceObject: str | None = Field.attribute(expected_type=str, allow_none=True, default=None)
destinationFile: str | None = Field.attribute(expected_type=str, allow_none=True, default=None)
title: str | None = Field.attribute(expected_type=str, allow_none=True, default=None)
autoRepublish: bool | None = Field.attribute(expected_type=bool, allow_none=True, default=None)
def __init__(self,
id=None,
divId=None,
sourceType=None,
sourceRef=None,
sourceObject=None,
destinationFile=None,
title=None,
autoRepublish=None,
):
self.id = id
self.divId = divId
self.sourceType = sourceType
self.sourceRef = sourceRef
self.sourceObject = sourceObject
self.destinationFile = destinationFile
self.title = title
self.autoRepublish = autoRepublish
[docs]
class WebPublishItems(Serialisable):
tagname = "WebPublishItems"
webPublishItem: list[WebPublishItem] = Field.sequence(expected_type=WebPublishItem, default=list)
xml_order = ("webPublishItem",)
def __init__(self,
count=None,
webPublishItem=None,
):
del count
self.webPublishItem = list(webPublishItem or ())
@property
def count(self):
return len(self.webPublishItem)
def __iter__(self):
yield "count", str(self.count)
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