aboutsummaryrefslogtreecommitdiff
path: root/.venv/lib/python3.12/site-packages/xlsxwriter/relationships.py
diff options
context:
space:
mode:
authorS. Solomon Darnell2025-03-28 21:52:21 -0500
committerS. Solomon Darnell2025-03-28 21:52:21 -0500
commit4a52a71956a8d46fcb7294ac71734504bb09bcc2 (patch)
treeee3dc5af3b6313e921cd920906356f5d4febc4ed /.venv/lib/python3.12/site-packages/xlsxwriter/relationships.py
parentcc961e04ba734dd72309fb548a2f97d67d578813 (diff)
downloadgn-ai-master.tar.gz
two version of R2R are hereHEADmaster
Diffstat (limited to '.venv/lib/python3.12/site-packages/xlsxwriter/relationships.py')
-rw-r--r--.venv/lib/python3.12/site-packages/xlsxwriter/relationships.py143
1 files changed, 143 insertions, 0 deletions
diff --git a/.venv/lib/python3.12/site-packages/xlsxwriter/relationships.py b/.venv/lib/python3.12/site-packages/xlsxwriter/relationships.py
new file mode 100644
index 00000000..9829c5fe
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/xlsxwriter/relationships.py
@@ -0,0 +1,143 @@
+###############################################################################
+#
+# Relationships - A class for writing the Excel XLSX Worksheet file.
+#
+# SPDX-License-Identifier: BSD-2-Clause
+#
+# Copyright (c) 2013-2025, John McNamara, jmcnamara@cpan.org
+#
+
+# Package imports.
+from . import xmlwriter
+
+# Long namespace strings used in the class.
+SCHEMA_ROOT = "http://schemas.openxmlformats.org"
+PACKAGE_SCHEMA = SCHEMA_ROOT + "/package/2006/relationships"
+DOCUMENT_SCHEMA = SCHEMA_ROOT + "/officeDocument/2006/relationships"
+
+
+class Relationships(xmlwriter.XMLwriter):
+ """
+ A class for writing the Excel XLSX Relationships file.
+
+
+ """
+
+ ###########################################################################
+ #
+ # Public API.
+ #
+ ###########################################################################
+
+ def __init__(self):
+ """
+ Constructor.
+
+ """
+
+ super().__init__()
+
+ self.relationships = []
+ self.id = 1
+
+ ###########################################################################
+ #
+ # Private API.
+ #
+ ###########################################################################
+
+ def _assemble_xml_file(self):
+ # Assemble and write the XML file.
+
+ # Write the XML declaration.
+ self._xml_declaration()
+
+ self._write_relationships()
+
+ # Close the file.
+ self._xml_close()
+
+ def _add_document_relationship(self, rel_type, target, target_mode=None):
+ # Add container relationship to XLSX .rels xml files.
+ rel_type = DOCUMENT_SCHEMA + rel_type
+
+ self.relationships.append((rel_type, target, target_mode))
+
+ def _add_package_relationship(self, rel_type, target):
+ # Add container relationship to XLSX .rels xml files.
+ rel_type = PACKAGE_SCHEMA + rel_type
+
+ self.relationships.append((rel_type, target, None))
+
+ def _add_ms_package_relationship(self, rel_type, target):
+ # Add container relationship to XLSX .rels xml files. Uses MS schema.
+ schema = "http://schemas.microsoft.com/office/2006/relationships"
+ rel_type = schema + rel_type
+
+ self.relationships.append((rel_type, target, None))
+
+ def _add_rich_value_relationship(self):
+ # Add RichValue relationship to XLSX .rels xml files.
+ schema = "http://schemas.microsoft.com/office/2022/10/relationships/"
+ rel_type = schema + "richValueRel"
+ target = "richData/richValueRel.xml"
+ self.relationships.append((rel_type, target, None))
+
+ schema = "http://schemas.microsoft.com/office/2017/06/relationships/"
+ rel_type = schema + "rdRichValue"
+ target = "richData/rdrichvalue.xml"
+ self.relationships.append((rel_type, target, None))
+
+ rel_type = schema + "rdRichValueStructure"
+ target = "richData/rdrichvaluestructure.xml"
+ self.relationships.append((rel_type, target, None))
+
+ rel_type = schema + "rdRichValueTypes"
+ target = "richData/rdRichValueTypes.xml"
+ self.relationships.append((rel_type, target, None))
+
+ def _add_feature_bag_relationship(self):
+ # Add FeaturePropertyBag relationship to XLSX .rels xml files.
+ schema = "http://schemas.microsoft.com/office/2022/11/relationships/"
+ rel_type = schema + "FeaturePropertyBag"
+ target = "featurePropertyBag/featurePropertyBag.xml"
+ self.relationships.append((rel_type, target, None))
+
+ ###########################################################################
+ #
+ # XML methods.
+ #
+ ###########################################################################
+
+ def _write_relationships(self):
+ # Write the <Relationships> element.
+ attributes = [
+ (
+ "xmlns",
+ PACKAGE_SCHEMA,
+ )
+ ]
+
+ self._xml_start_tag("Relationships", attributes)
+
+ for relationship in self.relationships:
+ self._write_relationship(relationship)
+
+ self._xml_end_tag("Relationships")
+
+ def _write_relationship(self, relationship):
+ # Write the <Relationship> element.
+ rel_type, target, target_mode = relationship
+
+ attributes = [
+ ("Id", "rId" + str(self.id)),
+ ("Type", rel_type),
+ ("Target", target),
+ ]
+
+ self.id += 1
+
+ if target_mode:
+ attributes.append(("TargetMode", target_mode))
+
+ self._xml_empty_tag("Relationship", attributes)