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/openpyxl/xml | |
parent | cc961e04ba734dd72309fb548a2f97d67d578813 (diff) | |
download | gn-ai-master.tar.gz |
Diffstat (limited to '.venv/lib/python3.12/site-packages/openpyxl/xml')
3 files changed, 258 insertions, 0 deletions
diff --git a/.venv/lib/python3.12/site-packages/openpyxl/xml/__init__.py b/.venv/lib/python3.12/site-packages/openpyxl/xml/__init__.py new file mode 100644 index 00000000..db510aa1 --- /dev/null +++ b/.venv/lib/python3.12/site-packages/openpyxl/xml/__init__.py @@ -0,0 +1,42 @@ +# Copyright (c) 2010-2024 openpyxl + + +"""Collection of XML resources compatible across different Python versions""" +import os + + +def lxml_available(): + try: + from lxml.etree import LXML_VERSION + LXML = LXML_VERSION >= (3, 3, 1, 0) + if not LXML: + import warnings + warnings.warn("The installed version of lxml is too old to be used with openpyxl") + return False # we have it, but too old + else: + return True # we have it, and recent enough + except ImportError: + return False # we don't even have it + + +def lxml_env_set(): + return os.environ.get("OPENPYXL_LXML", "True") == "True" + + +LXML = lxml_available() and lxml_env_set() + + +def defusedxml_available(): + try: + import defusedxml # noqa + except ImportError: + return False + else: + return True + + +def defusedxml_env_set(): + return os.environ.get("OPENPYXL_DEFUSEDXML", "True") == "True" + + +DEFUSEDXML = defusedxml_available() and defusedxml_env_set() diff --git a/.venv/lib/python3.12/site-packages/openpyxl/xml/constants.py b/.venv/lib/python3.12/site-packages/openpyxl/xml/constants.py new file mode 100644 index 00000000..4e0fd433 --- /dev/null +++ b/.venv/lib/python3.12/site-packages/openpyxl/xml/constants.py @@ -0,0 +1,129 @@ +# Copyright (c) 2010-2024 openpyxl + + +"""Constants for fixed paths in a file and xml namespace urls.""" + +MIN_ROW = 0 +MIN_COLUMN = 0 +MAX_COLUMN = 16384 +MAX_ROW = 1048576 + +# constants +PACKAGE_PROPS = 'docProps' +PACKAGE_XL = 'xl' +PACKAGE_RELS = '_rels' +PACKAGE_THEME = PACKAGE_XL + '/' + 'theme' +PACKAGE_WORKSHEETS = PACKAGE_XL + '/' + 'worksheets' +PACKAGE_CHARTSHEETS = PACKAGE_XL + '/' + 'chartsheets' +PACKAGE_DRAWINGS = PACKAGE_XL + '/' + 'drawings' +PACKAGE_CHARTS = PACKAGE_XL + '/' + 'charts' +PACKAGE_IMAGES = PACKAGE_XL + '/' + 'media' +PACKAGE_WORKSHEET_RELS = PACKAGE_WORKSHEETS + '/' + '_rels' +PACKAGE_CHARTSHEETS_RELS = PACKAGE_CHARTSHEETS + '/' + '_rels' +PACKAGE_PIVOT_TABLE = PACKAGE_XL + '/' + 'pivotTables' +PACKAGE_PIVOT_CACHE = PACKAGE_XL + '/' + 'pivotCache' + +ARC_CONTENT_TYPES = '[Content_Types].xml' +ARC_ROOT_RELS = PACKAGE_RELS + '/.rels' +ARC_WORKBOOK_RELS = PACKAGE_XL + '/' + PACKAGE_RELS + '/workbook.xml.rels' +ARC_CORE = PACKAGE_PROPS + '/core.xml' +ARC_APP = PACKAGE_PROPS + '/app.xml' +ARC_CUSTOM = PACKAGE_PROPS + '/custom.xml' +ARC_WORKBOOK = PACKAGE_XL + '/workbook.xml' +ARC_STYLE = PACKAGE_XL + '/styles.xml' +ARC_THEME = PACKAGE_THEME + '/theme1.xml' +ARC_SHARED_STRINGS = PACKAGE_XL + '/sharedStrings.xml' +ARC_CUSTOM_UI = 'customUI/customUI.xml' + +## namespaces +# XML +XML_NS = "http://www.w3.org/XML/1998/namespace" +# Dublin Core +DCORE_NS = 'http://purl.org/dc/elements/1.1/' +DCTERMS_NS = 'http://purl.org/dc/terms/' +DCTERMS_PREFIX = 'dcterms' + +# Document +DOC_NS = "http://schemas.openxmlformats.org/officeDocument/2006/" +REL_NS = DOC_NS + "relationships" +COMMENTS_NS = REL_NS + "/comments" +IMAGE_NS = REL_NS + "/image" +VML_NS = REL_NS + "/vmlDrawing" +VTYPES_NS = DOC_NS + 'docPropsVTypes' +XPROPS_NS = DOC_NS + 'extended-properties' +CUSTPROPS_NS = DOC_NS + 'custom-properties' +EXTERNAL_LINK_NS = REL_NS + "/externalLink" + +# CustomDocumentProperty FMTID: +CPROPS_FMTID = "{D5CDD505-2E9C-101B-9397-08002B2CF9AE}" + +# Package +PKG_NS = "http://schemas.openxmlformats.org/package/2006/" +PKG_REL_NS = PKG_NS + "relationships" +COREPROPS_NS = PKG_NS + 'metadata/core-properties' +CONTYPES_NS = PKG_NS + 'content-types' + +XSI_NS = 'http://www.w3.org/2001/XMLSchema-instance' +XML_NS = 'http://www.w3.org/XML/1998/namespace' +SHEET_MAIN_NS = 'http://schemas.openxmlformats.org/spreadsheetml/2006/main' + +# Drawing +CHART_NS = "http://schemas.openxmlformats.org/drawingml/2006/chart" +DRAWING_NS = "http://schemas.openxmlformats.org/drawingml/2006/main" +SHEET_DRAWING_NS = "http://schemas.openxmlformats.org/drawingml/2006/spreadsheetDrawing" +CHART_DRAWING_NS = "http://schemas.openxmlformats.org/drawingml/2006/chartDrawing" + +CUSTOMUI_NS = 'http://schemas.microsoft.com/office/2006/relationships/ui/extensibility' + + +NAMESPACES = { + 'cp': COREPROPS_NS, + 'dc': DCORE_NS, + DCTERMS_PREFIX: DCTERMS_NS, + 'dcmitype': 'http://purl.org/dc/dcmitype/', + 'xsi': XSI_NS, + 'vt': VTYPES_NS, + 'xml': XML_NS, + 'main': SHEET_MAIN_NS, + 'cust': CUSTPROPS_NS, +} + +## Mime types +WORKBOOK_MACRO = "application/vnd.ms-excel.%s.macroEnabled.main+xml" +WORKBOOK = "application/vnd.openxmlformats-officedocument.spreadsheetml.%s.main+xml" +SPREADSHEET = "application/vnd.openxmlformats-officedocument.spreadsheetml.%s+xml" +SHARED_STRINGS = SPREADSHEET % "sharedStrings" +EXTERNAL_LINK = SPREADSHEET % "externalLink" +WORKSHEET_TYPE = SPREADSHEET % "worksheet" +COMMENTS_TYPE = SPREADSHEET % "comments" +STYLES_TYPE = SPREADSHEET % "styles" +CHARTSHEET_TYPE = SPREADSHEET % "chartsheet" +DRAWING_TYPE = "application/vnd.openxmlformats-officedocument.drawing+xml" +CHART_TYPE = "application/vnd.openxmlformats-officedocument.drawingml.chart+xml" +CHARTSHAPE_TYPE = "application/vnd.openxmlformats-officedocument.drawingml.chartshapes+xml" +THEME_TYPE = "application/vnd.openxmlformats-officedocument.theme+xml" +CPROPS_TYPE = "application/vnd.openxmlformats-officedocument.custom-properties+xml" +XLTM = WORKBOOK_MACRO % 'template' +XLSM = WORKBOOK_MACRO % 'sheet' +XLTX = WORKBOOK % 'template' +XLSX = WORKBOOK % 'sheet' + + +# Extensions to the specification + +EXT_TYPES = { + '{78C0D931-6437-407D-A8EE-F0AAD7539E65}': 'Conditional Formatting', + '{CCE6A557-97BC-4B89-ADB6-D9C93CAAB3DF}': 'Data Validation', + '{05C60535-1F16-4FD2-B633-F4F36F0B64E0}': 'Sparkline Group', + '{A8765BA9-456A-4DAB-B4F3-ACF838C121DE}': 'Slicer List', + '{FC87AEE6-9EDD-4A0A-B7FB-166176984837}': 'Protected Range', + '{01252117-D84E-4E92-8308-4BE1C098FCBB}': 'Ignored Error', + '{F7C9EE02-42E1-4005-9D12-6889AFFD525C}': 'Web Extension', + '{3A4CF648-6AED-40f4-86FF-DC5316D8AED3}': 'Slicer List', + '{7E03D99C-DC04-49d9-9315-930204A7B6E9}': 'Timeline Ref', +} + +# Objects related to macros that we preserve +CTRL = "application/vnd.ms-excel.controlproperties+xml" +ACTIVEX = "application/vnd.ms-office.activeX+xml" +VBA = "application/vnd.ms-office.vbaProject" diff --git a/.venv/lib/python3.12/site-packages/openpyxl/xml/functions.py b/.venv/lib/python3.12/site-packages/openpyxl/xml/functions.py new file mode 100644 index 00000000..385cca60 --- /dev/null +++ b/.venv/lib/python3.12/site-packages/openpyxl/xml/functions.py @@ -0,0 +1,87 @@ +# Copyright (c) 2010-2024 openpyxl + +""" +XML compatibility functions +""" + +# Python stdlib imports +import re +from functools import partial + +from openpyxl import DEFUSEDXML, LXML + +if LXML is True: + from lxml.etree import ( + Element, + SubElement, + register_namespace, + QName, + xmlfile, + XMLParser, + ) + from lxml.etree import fromstring, tostring + # do not resolve entities + safe_parser = XMLParser(resolve_entities=False) + fromstring = partial(fromstring, parser=safe_parser) + +else: + from xml.etree.ElementTree import ( + Element, + SubElement, + fromstring, + tostring, + QName, + register_namespace + ) + from et_xmlfile import xmlfile + if DEFUSEDXML is True: + from defusedxml.ElementTree import fromstring + +from xml.etree.ElementTree import iterparse +if DEFUSEDXML is True: + from defusedxml.ElementTree import iterparse + +from openpyxl.xml.constants import ( + CHART_NS, + DRAWING_NS, + SHEET_DRAWING_NS, + CHART_DRAWING_NS, + SHEET_MAIN_NS, + REL_NS, + VTYPES_NS, + COREPROPS_NS, + CUSTPROPS_NS, + DCTERMS_NS, + DCTERMS_PREFIX, + XML_NS +) + +register_namespace(DCTERMS_PREFIX, DCTERMS_NS) +register_namespace('dcmitype', 'http://purl.org/dc/dcmitype/') +register_namespace('cp', COREPROPS_NS) +register_namespace('c', CHART_NS) +register_namespace('a', DRAWING_NS) +register_namespace('s', SHEET_MAIN_NS) +register_namespace('r', REL_NS) +register_namespace('vt', VTYPES_NS) +register_namespace('xdr', SHEET_DRAWING_NS) +register_namespace('cdr', CHART_DRAWING_NS) +register_namespace('xml', XML_NS) +register_namespace('cust', CUSTPROPS_NS) + + +tostring = partial(tostring, encoding="utf-8") + +NS_REGEX = re.compile("({(?P<namespace>.*)})?(?P<localname>.*)") + +def localname(node): + if callable(node.tag): + return "comment" + m = NS_REGEX.match(node.tag) + return m.group('localname') + + +def whitespace(node): + stripped = node.text.strip() + if stripped and node.text != stripped: + node.set("{%s}space" % XML_NS, "preserve") |