aboutsummaryrefslogtreecommitdiff
path: root/.venv/lib/python3.12/site-packages/openpyxl/chart/chartspace.py
diff options
context:
space:
mode:
Diffstat (limited to '.venv/lib/python3.12/site-packages/openpyxl/chart/chartspace.py')
-rw-r--r--.venv/lib/python3.12/site-packages/openpyxl/chart/chartspace.py195
1 files changed, 195 insertions, 0 deletions
diff --git a/.venv/lib/python3.12/site-packages/openpyxl/chart/chartspace.py b/.venv/lib/python3.12/site-packages/openpyxl/chart/chartspace.py
new file mode 100644
index 00000000..cba213c2
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/openpyxl/chart/chartspace.py
@@ -0,0 +1,195 @@
+
+# Copyright (c) 2010-2024 openpyxl
+
+"""
+Enclosing chart object. The various chart types are actually child objects.
+Will probably need to call this indirectly
+"""
+
+from openpyxl.descriptors.serialisable import Serialisable
+from openpyxl.descriptors import (
+ Typed,
+ String,
+ Alias,
+)
+from openpyxl.descriptors.excel import (
+ ExtensionList,
+ Relation
+)
+from openpyxl.descriptors.nested import (
+ NestedBool,
+ NestedNoneSet,
+ NestedString,
+ NestedMinMax,
+)
+from openpyxl.descriptors.sequence import NestedSequence
+from openpyxl.xml.constants import CHART_NS
+
+from openpyxl.drawing.colors import ColorMapping
+from .text import RichText
+from .shapes import GraphicalProperties
+from .legend import Legend
+from ._3d import _3DBase
+from .plotarea import PlotArea
+from .title import Title
+from .pivot import (
+ PivotFormat,
+ PivotSource,
+)
+from .print_settings import PrintSettings
+
+
+class ChartContainer(Serialisable):
+
+ tagname = "chart"
+
+ title = Typed(expected_type=Title, allow_none=True)
+ autoTitleDeleted = NestedBool(allow_none=True)
+ pivotFmts = NestedSequence(expected_type=PivotFormat)
+ view3D = _3DBase.view3D
+ floor = _3DBase.floor
+ sideWall = _3DBase.sideWall
+ backWall = _3DBase.backWall
+ plotArea = Typed(expected_type=PlotArea, )
+ legend = Typed(expected_type=Legend, allow_none=True)
+ plotVisOnly = NestedBool()
+ dispBlanksAs = NestedNoneSet(values=(['span', 'gap', 'zero']))
+ showDLblsOverMax = NestedBool(allow_none=True)
+ extLst = Typed(expected_type=ExtensionList, allow_none=True)
+
+ __elements__ = ('title', 'autoTitleDeleted', 'pivotFmts', 'view3D',
+ 'floor', 'sideWall', 'backWall', 'plotArea', 'legend', 'plotVisOnly',
+ 'dispBlanksAs', 'showDLblsOverMax')
+
+ def __init__(self,
+ title=None,
+ autoTitleDeleted=None,
+ pivotFmts=(),
+ view3D=None,
+ floor=None,
+ sideWall=None,
+ backWall=None,
+ plotArea=None,
+ legend=None,
+ plotVisOnly=True,
+ dispBlanksAs="gap",
+ showDLblsOverMax=None,
+ extLst=None,
+ ):
+ self.title = title
+ self.autoTitleDeleted = autoTitleDeleted
+ self.pivotFmts = pivotFmts
+ self.view3D = view3D
+ self.floor = floor
+ self.sideWall = sideWall
+ self.backWall = backWall
+ if plotArea is None:
+ plotArea = PlotArea()
+ self.plotArea = plotArea
+ self.legend = legend
+ self.plotVisOnly = plotVisOnly
+ self.dispBlanksAs = dispBlanksAs
+ self.showDLblsOverMax = showDLblsOverMax
+
+
+class Protection(Serialisable):
+
+ tagname = "protection"
+
+ chartObject = NestedBool(allow_none=True)
+ data = NestedBool(allow_none=True)
+ formatting = NestedBool(allow_none=True)
+ selection = NestedBool(allow_none=True)
+ userInterface = NestedBool(allow_none=True)
+
+ __elements__ = ("chartObject", "data", "formatting", "selection", "userInterface")
+
+ def __init__(self,
+ chartObject=None,
+ data=None,
+ formatting=None,
+ selection=None,
+ userInterface=None,
+ ):
+ self.chartObject = chartObject
+ self.data = data
+ self.formatting = formatting
+ self.selection = selection
+ self.userInterface = userInterface
+
+
+class ExternalData(Serialisable):
+
+ tagname = "externalData"
+
+ autoUpdate = NestedBool(allow_none=True)
+ id = String() # Needs namespace
+
+ def __init__(self,
+ autoUpdate=None,
+ id=None
+ ):
+ self.autoUpdate = autoUpdate
+ self.id = id
+
+
+class ChartSpace(Serialisable):
+
+ tagname = "chartSpace"
+
+ date1904 = NestedBool(allow_none=True)
+ lang = NestedString(allow_none=True)
+ roundedCorners = NestedBool(allow_none=True)
+ style = NestedMinMax(allow_none=True, min=1, max=48)
+ clrMapOvr = Typed(expected_type=ColorMapping, allow_none=True)
+ pivotSource = Typed(expected_type=PivotSource, allow_none=True)
+ protection = Typed(expected_type=Protection, allow_none=True)
+ chart = Typed(expected_type=ChartContainer)
+ spPr = Typed(expected_type=GraphicalProperties, allow_none=True)
+ graphical_properties = Alias("spPr")
+ txPr = Typed(expected_type=RichText, allow_none=True)
+ textProperties = Alias("txPr")
+ externalData = Typed(expected_type=ExternalData, allow_none=True)
+ printSettings = Typed(expected_type=PrintSettings, allow_none=True)
+ userShapes = Relation()
+ extLst = Typed(expected_type=ExtensionList, allow_none=True)
+
+ __elements__ = ('date1904', 'lang', 'roundedCorners', 'style',
+ 'clrMapOvr', 'pivotSource', 'protection', 'chart', 'spPr', 'txPr',
+ 'externalData', 'printSettings', 'userShapes')
+
+ def __init__(self,
+ date1904=None,
+ lang=None,
+ roundedCorners=None,
+ style=None,
+ clrMapOvr=None,
+ pivotSource=None,
+ protection=None,
+ chart=None,
+ spPr=None,
+ txPr=None,
+ externalData=None,
+ printSettings=None,
+ userShapes=None,
+ extLst=None,
+ ):
+ self.date1904 = date1904
+ self.lang = lang
+ self.roundedCorners = roundedCorners
+ self.style = style
+ self.clrMapOvr = clrMapOvr
+ self.pivotSource = pivotSource
+ self.protection = protection
+ self.chart = chart
+ self.spPr = spPr
+ self.txPr = txPr
+ self.externalData = externalData
+ self.printSettings = printSettings
+ self.userShapes = userShapes
+
+
+ def to_tree(self, tagname=None, idx=None, namespace=None):
+ tree = super().to_tree()
+ tree.set("xmlns", CHART_NS)
+ return tree