aboutsummaryrefslogtreecommitdiff
path: root/.venv/lib/python3.12/site-packages/pptx/shared.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/pptx/shared.py
parentcc961e04ba734dd72309fb548a2f97d67d578813 (diff)
downloadgn-ai-master.tar.gz
two version of R2R are hereHEADmaster
Diffstat (limited to '.venv/lib/python3.12/site-packages/pptx/shared.py')
-rw-r--r--.venv/lib/python3.12/site-packages/pptx/shared.py82
1 files changed, 82 insertions, 0 deletions
diff --git a/.venv/lib/python3.12/site-packages/pptx/shared.py b/.venv/lib/python3.12/site-packages/pptx/shared.py
new file mode 100644
index 00000000..da2a1718
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/pptx/shared.py
@@ -0,0 +1,82 @@
+"""Objects shared by pptx modules."""
+
+from __future__ import annotations
+
+from typing import TYPE_CHECKING
+
+if TYPE_CHECKING:
+ from pptx.opc.package import XmlPart
+ from pptx.oxml.xmlchemy import BaseOxmlElement
+ from pptx.types import ProvidesPart
+
+
+class ElementProxy(object):
+ """Base class for lxml element proxy classes.
+
+ An element proxy class is one whose primary responsibilities are fulfilled by manipulating the
+ attributes and child elements of an XML element. They are the most common type of class in
+ python-pptx other than custom element (oxml) classes.
+ """
+
+ def __init__(self, element: BaseOxmlElement):
+ self._element = element
+
+ def __eq__(self, other: object) -> bool:
+ """Return |True| if this proxy object refers to the same oxml element as does *other*.
+
+ ElementProxy objects are value objects and should maintain no mutable local state.
+ Equality for proxy objects is defined as referring to the same XML element, whether or not
+ they are the same proxy object instance.
+ """
+ if not isinstance(other, ElementProxy):
+ return False
+ return self._element is other._element
+
+ def __ne__(self, other: object) -> bool:
+ if not isinstance(other, ElementProxy):
+ return True
+ return self._element is not other._element
+
+ @property
+ def element(self):
+ """The lxml element proxied by this object."""
+ return self._element
+
+
+class ParentedElementProxy(ElementProxy):
+ """Provides access to ancestor objects and part.
+
+ An ancestor may occasionally be required to provide a service, such as add or drop a
+ relationship. Provides the :attr:`_parent` attribute to subclasses and the public
+ :attr:`parent` read-only property.
+ """
+
+ def __init__(self, element: BaseOxmlElement, parent: ProvidesPart):
+ super(ParentedElementProxy, self).__init__(element)
+ self._parent = parent
+
+ @property
+ def parent(self):
+ """The ancestor proxy object to this one.
+
+ For example, the parent of a shape is generally the |SlideShapes| object that contains it.
+ """
+ return self._parent
+
+ @property
+ def part(self) -> XmlPart:
+ """The package part containing this object."""
+ return self._parent.part
+
+
+class PartElementProxy(ElementProxy):
+ """Provides common members for proxy-objects that wrap a part's root element, e.g. `p:sld`."""
+
+ def __init__(self, element: BaseOxmlElement, part: XmlPart):
+ super(PartElementProxy, self).__init__(element)
+ self._part = part
+
+ @property
+ def part(self) -> XmlPart:
+ """The package part containing this object."""
+ return self._part