aboutsummaryrefslogtreecommitdiff
path: root/.venv/lib/python3.12/site-packages/openpyxl/styles/differential.py
diff options
context:
space:
mode:
Diffstat (limited to '.venv/lib/python3.12/site-packages/openpyxl/styles/differential.py')
-rw-r--r--.venv/lib/python3.12/site-packages/openpyxl/styles/differential.py95
1 files changed, 95 insertions, 0 deletions
diff --git a/.venv/lib/python3.12/site-packages/openpyxl/styles/differential.py b/.venv/lib/python3.12/site-packages/openpyxl/styles/differential.py
new file mode 100644
index 00000000..109577e4
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/openpyxl/styles/differential.py
@@ -0,0 +1,95 @@
+# Copyright (c) 2010-2024 openpyxl
+
+from openpyxl.descriptors import (
+ Typed,
+ Sequence,
+ Alias,
+)
+from openpyxl.descriptors.serialisable import Serialisable
+from openpyxl.styles import (
+ Font,
+ Fill,
+ Border,
+ Alignment,
+ Protection,
+ )
+from .numbers import NumberFormat
+
+
+class DifferentialStyle(Serialisable):
+
+ tagname = "dxf"
+
+ __elements__ = ("font", "numFmt", "fill", "alignment", "border", "protection")
+
+ font = Typed(expected_type=Font, allow_none=True)
+ numFmt = Typed(expected_type=NumberFormat, allow_none=True)
+ fill = Typed(expected_type=Fill, allow_none=True)
+ alignment = Typed(expected_type=Alignment, allow_none=True)
+ border = Typed(expected_type=Border, allow_none=True)
+ protection = Typed(expected_type=Protection, allow_none=True)
+
+ def __init__(self,
+ font=None,
+ numFmt=None,
+ fill=None,
+ alignment=None,
+ border=None,
+ protection=None,
+ extLst=None,
+ ):
+ self.font = font
+ self.numFmt = numFmt
+ self.fill = fill
+ self.alignment = alignment
+ self.border = border
+ self.protection = protection
+ self.extLst = extLst
+
+
+class DifferentialStyleList(Serialisable):
+ """
+ Dedupable container for differential styles.
+ """
+
+ tagname = "dxfs"
+
+ dxf = Sequence(expected_type=DifferentialStyle)
+ styles = Alias("dxf")
+ __attrs__ = ("count",)
+
+
+ def __init__(self, dxf=(), count=None):
+ self.dxf = dxf
+
+
+ def append(self, dxf):
+ """
+ Check to see whether style already exists and append it if does not.
+ """
+ if not isinstance(dxf, DifferentialStyle):
+ raise TypeError('expected ' + str(DifferentialStyle))
+ if dxf in self.styles:
+ return
+ self.styles.append(dxf)
+
+
+ def add(self, dxf):
+ """
+ Add a differential style and return its index
+ """
+ self.append(dxf)
+ return self.styles.index(dxf)
+
+
+ def __bool__(self):
+ return bool(self.styles)
+
+
+ def __getitem__(self, idx):
+ return self.styles[idx]
+
+
+ @property
+ def count(self):
+ return len(self.dxf)