Source code for fastpyxl.worksheet.pagebreak

# Copyright (c) 2010-2024 fastpyxl

from fastpyxl.typed_serialisable.base import Serialisable
from fastpyxl.typed_serialisable.fields import Field


[docs] class Break(Serialisable): tagname = "brk" id: int | None = Field.attribute(expected_type=int, allow_none=True, default=None) min: int | None = Field.attribute(expected_type=int, allow_none=True, default=None) max: int | None = Field.attribute(expected_type=int, allow_none=True, default=None) man: bool | None = Field.attribute(expected_type=bool, allow_none=True, default=None) pt: bool | None = Field.attribute(expected_type=bool, allow_none=True, default=None) def __init__( self, id=0, min=0, max=16383, man=True, pt=None, ): self.id = id self.min = min self.max = max self.man = man self.pt = pt
[docs] class RowBreak(Serialisable): tagname = "rowBreaks" brk: list[Break] = Field.sequence(expected_type=Break, allow_none=True, default=list) def __init__( self, count=None, manualBreakCount=None, brk=(), ): del count, manualBreakCount self.brk = list(brk) def __bool__(self): return len(self.brk) > 0 def __len__(self): return len(self.brk) @property def count(self): return len(self) @property def manualBreakCount(self): return len(self) def __iter__(self): yield "count", str(self.count) yield "manualBreakCount", str(self.manualBreakCount)
[docs] def append(self, brk=None): """ Add a page break """ vals = list(self.brk) if not isinstance(brk, Break): brk = Break(id=self.count + 1) vals.append(brk) self.brk = vals
PageBreak = RowBreak
[docs] class ColBreak(RowBreak): tagname = "colBreaks"