Coverage for /var/srv/projects/api.amasfac.comuna18.com/tmp/venv/lib/python3.9/site-packages/openpyxl/chart/bar_chart.py: 76%
80 statements
« prev ^ index » next coverage.py v6.4.4, created at 2023-07-17 14:22 -0600
« prev ^ index » next coverage.py v6.4.4, created at 2023-07-17 14:22 -0600
1# Copyright (c) 2010-2022 openpyxl
3from openpyxl.descriptors.serialisable import Serialisable
4from openpyxl.descriptors import (
5 Typed,
6 Bool,
7 Integer,
8 Sequence,
9 Alias,
10)
11from openpyxl.descriptors.excel import ExtensionList
12from openpyxl.descriptors.nested import (
13 NestedNoneSet,
14 NestedSet,
15 NestedBool,
16 NestedInteger,
17 NestedMinMax,
18)
20from .descriptors import (
21 NestedGapAmount,
22 NestedOverlap,
23)
24from ._chart import ChartBase
25from ._3d import _3DBase
26from .axis import TextAxis, NumericAxis, SeriesAxis, ChartLines
27from .shapes import GraphicalProperties
28from .series import Series
29from .legend import Legend
30from .label import DataLabelList
33class _BarChartBase(ChartBase):
35 barDir = NestedSet(values=(['bar', 'col']))
36 type = Alias("barDir")
37 grouping = NestedSet(values=(['percentStacked', 'clustered', 'standard',
38 'stacked']))
39 varyColors = NestedBool(nested=True, allow_none=True)
40 ser = Sequence(expected_type=Series, allow_none=True)
41 dLbls = Typed(expected_type=DataLabelList, allow_none=True)
42 dataLabels = Alias("dLbls")
44 __elements__ = ('barDir', 'grouping', 'varyColors', 'ser', 'dLbls')
46 _series_type = "bar"
48 def __init__(self,
49 barDir="col",
50 grouping="clustered",
51 varyColors=None,
52 ser=(),
53 dLbls=None,
54 **kw
55 ):
56 self.barDir = barDir
57 self.grouping = grouping
58 self.varyColors = varyColors
59 self.ser = ser
60 self.dLbls = dLbls
61 super(_BarChartBase, self).__init__(**kw)
64class BarChart(_BarChartBase):
66 tagname = "barChart"
68 barDir = _BarChartBase.barDir
69 grouping = _BarChartBase.grouping
70 varyColors = _BarChartBase.varyColors
71 ser = _BarChartBase.ser
72 dLbls = _BarChartBase.dLbls
74 gapWidth = NestedGapAmount()
75 overlap = NestedOverlap()
76 serLines = Typed(expected_type=ChartLines, allow_none=True)
77 extLst = Typed(expected_type=ExtensionList, allow_none=True)
79 # chart properties actually used by containing classes
80 x_axis = Typed(expected_type=TextAxis)
81 y_axis = Typed(expected_type=NumericAxis)
83 __elements__ = _BarChartBase.__elements__ + ('gapWidth', 'overlap', 'serLines', 'axId')
85 def __init__(self,
86 gapWidth=150,
87 overlap=None,
88 serLines=None,
89 extLst=None,
90 **kw
91 ):
92 self.gapWidth = gapWidth
93 self.overlap = overlap
94 self.serLines = serLines
95 self.x_axis = TextAxis()
96 self.y_axis = NumericAxis()
97 self.legend = Legend()
98 super(BarChart, self).__init__(**kw)
101class BarChart3D(_BarChartBase, _3DBase):
103 tagname = "bar3DChart"
105 barDir = _BarChartBase.barDir
106 grouping = _BarChartBase.grouping
107 varyColors = _BarChartBase.varyColors
108 ser = _BarChartBase.ser
109 dLbls = _BarChartBase.dLbls
111 view3D = _3DBase.view3D
112 floor = _3DBase.floor
113 sideWall = _3DBase.sideWall
114 backWall = _3DBase.backWall
116 gapWidth = NestedGapAmount()
117 gapDepth = NestedGapAmount()
118 shape = NestedNoneSet(values=(['cone', 'coneToMax', 'box', 'cylinder', 'pyramid', 'pyramidToMax']))
119 serLines = Typed(expected_type=ChartLines, allow_none=True)
120 extLst = Typed(expected_type=ExtensionList, allow_none=True)
122 x_axis = Typed(expected_type=TextAxis)
123 y_axis = Typed(expected_type=NumericAxis)
124 z_axis = Typed(expected_type=SeriesAxis, allow_none=True)
126 __elements__ = _BarChartBase.__elements__ + ('gapWidth', 'gapDepth', 'shape', 'serLines', 'axId')
128 def __init__(self,
129 gapWidth=150,
130 gapDepth=150,
131 shape=None,
132 serLines=None,
133 extLst=None,
134 **kw
135 ):
136 self.gapWidth = gapWidth
137 self.gapDepth = gapDepth
138 self.shape = shape
139 self.serLines = serLines
140 self.x_axis = TextAxis()
141 self.y_axis = NumericAxis()
142 self.z_axis = SeriesAxis()
144 super(BarChart3D, self).__init__(**kw)