diff options
author | S. Solomon Darnell | 2025-03-28 21:52:21 -0500 |
---|---|---|
committer | S. Solomon Darnell | 2025-03-28 21:52:21 -0500 |
commit | 4a52a71956a8d46fcb7294ac71734504bb09bcc2 (patch) | |
tree | ee3dc5af3b6313e921cd920906356f5d4febc4ed /.venv/lib/python3.12/site-packages/xlsxwriter/chart_doughnut.py | |
parent | cc961e04ba734dd72309fb548a2f97d67d578813 (diff) | |
download | gn-ai-master.tar.gz |
Diffstat (limited to '.venv/lib/python3.12/site-packages/xlsxwriter/chart_doughnut.py')
-rw-r--r-- | .venv/lib/python3.12/site-packages/xlsxwriter/chart_doughnut.py | 101 |
1 files changed, 101 insertions, 0 deletions
diff --git a/.venv/lib/python3.12/site-packages/xlsxwriter/chart_doughnut.py b/.venv/lib/python3.12/site-packages/xlsxwriter/chart_doughnut.py new file mode 100644 index 00000000..d4cb4f4f --- /dev/null +++ b/.venv/lib/python3.12/site-packages/xlsxwriter/chart_doughnut.py @@ -0,0 +1,101 @@ +############################################################################### +# +# ChartDoughnut - A class for writing the Excel XLSX Doughnut charts. +# +# SPDX-License-Identifier: BSD-2-Clause +# +# Copyright (c) 2013-2025, John McNamara, jmcnamara@cpan.org +# + +from warnings import warn + +from . import chart_pie + + +class ChartDoughnut(chart_pie.ChartPie): + """ + A class for writing the Excel XLSX Doughnut charts. + + + """ + + ########################################################################### + # + # Public API. + # + ########################################################################### + + def __init__(self): + """ + Constructor. + + """ + super().__init__() + + self.vary_data_color = 1 + self.rotation = 0 + self.hole_size = 50 + + def set_hole_size(self, size): + """ + Set the Doughnut chart hole size. + + Args: + size: 10 <= size <= 90. + + Returns: + Nothing. + + """ + if size is None: + return + + # Ensure the size is in Excel's range. + if size < 10 or size > 90: + warn("Chart hole size '{size}' outside Excel range: 10 <= size <= 90") + return + + self.hole_size = int(size) + + ########################################################################### + # + # Private API. + # + ########################################################################### + + def _write_chart_type(self, args): + # Override the virtual superclass method with a chart specific method. + # Write the c:doughnutChart element. + self._write_doughnut_chart() + + ########################################################################### + # + # XML methods. + # + ########################################################################### + + def _write_doughnut_chart(self): + # Write the <c:doughnutChart> element. Over-ridden method to remove + # axis_id code since Doughnut charts don't require val and cat axes. + self._xml_start_tag("c:doughnutChart") + + # Write the c:varyColors element. + self._write_vary_colors() + + # Write the series elements. + for data in self.series: + self._write_ser(data) + + # Write the c:firstSliceAng element. + self._write_first_slice_ang() + + # Write the c:holeSize element. + self._write_c_hole_size() + + self._xml_end_tag("c:doughnutChart") + + def _write_c_hole_size(self): + # Write the <c:holeSize> element. + attributes = [("val", self.hole_size)] + + self._xml_empty_tag("c:holeSize", attributes) |