aboutsummaryrefslogtreecommitdiff
path: root/.venv/lib/python3.12/site-packages/pptx/enum
diff options
context:
space:
mode:
Diffstat (limited to '.venv/lib/python3.12/site-packages/pptx/enum')
-rw-r--r--.venv/lib/python3.12/site-packages/pptx/enum/__init__.py0
-rw-r--r--.venv/lib/python3.12/site-packages/pptx/enum/action.py71
-rw-r--r--.venv/lib/python3.12/site-packages/pptx/enum/base.py175
-rw-r--r--.venv/lib/python3.12/site-packages/pptx/enum/chart.py492
-rw-r--r--.venv/lib/python3.12/site-packages/pptx/enum/dml.py405
-rw-r--r--.venv/lib/python3.12/site-packages/pptx/enum/lang.py685
-rw-r--r--.venv/lib/python3.12/site-packages/pptx/enum/shapes.py1029
-rw-r--r--.venv/lib/python3.12/site-packages/pptx/enum/text.py230
8 files changed, 3087 insertions, 0 deletions
diff --git a/.venv/lib/python3.12/site-packages/pptx/enum/__init__.py b/.venv/lib/python3.12/site-packages/pptx/enum/__init__.py
new file mode 100644
index 00000000..e69de29b
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/pptx/enum/__init__.py
diff --git a/.venv/lib/python3.12/site-packages/pptx/enum/action.py b/.venv/lib/python3.12/site-packages/pptx/enum/action.py
new file mode 100644
index 00000000..bc447226
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/pptx/enum/action.py
@@ -0,0 +1,71 @@
+"""Enumerations that describe click-action settings."""
+
+from __future__ import annotations
+
+from pptx.enum.base import BaseEnum
+
+
+class PP_ACTION_TYPE(BaseEnum):
+ """
+ Specifies the type of a mouse action (click or hover action).
+
+ Alias: ``PP_ACTION``
+
+ Example::
+
+ from pptx.enum.action import PP_ACTION
+
+ assert shape.click_action.action == PP_ACTION.HYPERLINK
+
+ MS API name: `PpActionType`
+
+ https://msdn.microsoft.com/EN-US/library/office/ff744895.aspx
+ """
+
+ END_SHOW = (6, "Slide show ends.")
+ """Slide show ends."""
+
+ FIRST_SLIDE = (3, "Returns to the first slide.")
+ """Returns to the first slide."""
+
+ HYPERLINK = (7, "Hyperlink.")
+ """Hyperlink."""
+
+ LAST_SLIDE = (4, "Moves to the last slide.")
+ """Moves to the last slide."""
+
+ LAST_SLIDE_VIEWED = (5, "Moves to the last slide viewed.")
+ """Moves to the last slide viewed."""
+
+ NAMED_SLIDE = (101, "Moves to slide specified by slide number.")
+ """Moves to slide specified by slide number."""
+
+ NAMED_SLIDE_SHOW = (10, "Runs the slideshow.")
+ """Runs the slideshow."""
+
+ NEXT_SLIDE = (1, "Moves to the next slide.")
+ """Moves to the next slide."""
+
+ NONE = (0, "No action is performed.")
+ """No action is performed."""
+
+ OPEN_FILE = (102, "Opens the specified file.")
+ """Opens the specified file."""
+
+ OLE_VERB = (11, "OLE Verb.")
+ """OLE Verb."""
+
+ PLAY = (12, "Begins the slideshow.")
+ """Begins the slideshow."""
+
+ PREVIOUS_SLIDE = (2, "Moves to the previous slide.")
+ """Moves to the previous slide."""
+
+ RUN_MACRO = (8, "Runs a macro.")
+ """Runs a macro."""
+
+ RUN_PROGRAM = (9, "Runs a program.")
+ """Runs a program."""
+
+
+PP_ACTION = PP_ACTION_TYPE
diff --git a/.venv/lib/python3.12/site-packages/pptx/enum/base.py b/.venv/lib/python3.12/site-packages/pptx/enum/base.py
new file mode 100644
index 00000000..1d49b9c1
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/pptx/enum/base.py
@@ -0,0 +1,175 @@
+"""Base classes and other objects used by enumerations."""
+
+from __future__ import annotations
+
+import enum
+import textwrap
+from typing import TYPE_CHECKING, Any, Type, TypeVar
+
+if TYPE_CHECKING:
+ from typing_extensions import Self
+
+_T = TypeVar("_T", bound="BaseXmlEnum")
+
+
+class BaseEnum(int, enum.Enum):
+ """Base class for Enums that do not map XML attr values.
+
+ The enum's value will be an integer, corresponding to the integer assigned the
+ corresponding member in the MS API enum of the same name.
+ """
+
+ def __new__(cls, ms_api_value: int, docstr: str):
+ self = int.__new__(cls, ms_api_value)
+ self._value_ = ms_api_value
+ self.__doc__ = docstr.strip()
+ return self
+
+ def __str__(self):
+ """The symbolic name and string value of this member, e.g. 'MIDDLE (3)'."""
+ return f"{self.name} ({self.value})"
+
+
+class BaseXmlEnum(int, enum.Enum):
+ """Base class for Enums that also map XML attr values.
+
+ The enum's value will be an integer, corresponding to the integer assigned the
+ corresponding member in the MS API enum of the same name.
+ """
+
+ xml_value: str | None
+
+ def __new__(cls, ms_api_value: int, xml_value: str | None, docstr: str):
+ self = int.__new__(cls, ms_api_value)
+ self._value_ = ms_api_value
+ self.xml_value = xml_value
+ self.__doc__ = docstr.strip()
+ return self
+
+ def __str__(self):
+ """The symbolic name and string value of this member, e.g. 'MIDDLE (3)'."""
+ return f"{self.name} ({self.value})"
+
+ @classmethod
+ def from_xml(cls, xml_value: str) -> Self:
+ """Enumeration member corresponding to XML attribute value `xml_value`.
+
+ Raises `ValueError` if `xml_value` is the empty string ("") or is not an XML attribute
+ value registered on the enumeration. Note that enum members that do not correspond to one
+ of the defined values for an XML attribute have `xml_value == ""`. These
+ "return-value only" members cannot be automatically mapped from an XML attribute value and
+ must be selected explicitly by code, based on the appropriate conditions.
+
+ Example::
+
+ >>> WD_PARAGRAPH_ALIGNMENT.from_xml("center")
+ WD_PARAGRAPH_ALIGNMENT.CENTER
+
+ """
+ # -- the empty string never maps to a member --
+ member = (
+ next((member for member in cls if member.xml_value == xml_value), None)
+ if xml_value
+ else None
+ )
+
+ if member is None:
+ raise ValueError(f"{cls.__name__} has no XML mapping for {repr(xml_value)}")
+
+ return member
+
+ @classmethod
+ def to_xml(cls: Type[_T], value: int | _T) -> str:
+ """XML value of this enum member, generally an XML attribute value."""
+ # -- presence of multi-arg `__new__()` method fools type-checker, but getting a
+ # -- member by its value using EnumCls(val) works as usual.
+ member = cls(value)
+ xml_value = member.xml_value
+ if not xml_value:
+ raise ValueError(f"{cls.__name__}.{member.name} has no XML representation")
+ return xml_value
+
+ @classmethod
+ def validate(cls: Type[_T], value: _T):
+ """Raise |ValueError| if `value` is not an assignable value."""
+ if value not in cls:
+ raise ValueError(f"{value} not a member of {cls.__name__} enumeration")
+
+
+class DocsPageFormatter(object):
+ """Formats a reStructuredText documention page (string) for an enumeration."""
+
+ def __init__(self, clsname: str, clsdict: dict[str, Any]):
+ self._clsname = clsname
+ self._clsdict = clsdict
+
+ @property
+ def page_str(self):
+ """
+ The RestructuredText documentation page for the enumeration. This is
+ the only API member for the class.
+ """
+ tmpl = ".. _%s:\n\n%s\n\n%s\n\n----\n\n%s"
+ components = (
+ self._ms_name,
+ self._page_title,
+ self._intro_text,
+ self._member_defs,
+ )
+ return tmpl % components
+
+ @property
+ def _intro_text(self):
+ """
+ The docstring of the enumeration, formatted for use at the top of the
+ documentation page
+ """
+ try:
+ cls_docstring = self._clsdict["__doc__"]
+ except KeyError:
+ cls_docstring = ""
+
+ if cls_docstring is None:
+ return ""
+
+ return textwrap.dedent(cls_docstring).strip()
+
+ def _member_def(self, member: BaseEnum | BaseXmlEnum):
+ """Return an individual member definition formatted as an RST glossary entry.
+
+ Output is wrapped to fit within 78 columns.
+ """
+ member_docstring = textwrap.dedent(member.__doc__ or "").strip()
+ member_docstring = textwrap.fill(
+ member_docstring,
+ width=78,
+ initial_indent=" " * 4,
+ subsequent_indent=" " * 4,
+ )
+ return "%s\n%s\n" % (member.name, member_docstring)
+
+ @property
+ def _member_defs(self):
+ """
+ A single string containing the aggregated member definitions section
+ of the documentation page
+ """
+ members = self._clsdict["__members__"]
+ member_defs = [self._member_def(member) for member in members if member.name is not None]
+ return "\n".join(member_defs)
+
+ @property
+ def _ms_name(self):
+ """
+ The Microsoft API name for this enumeration
+ """
+ return self._clsdict["__ms_name__"]
+
+ @property
+ def _page_title(self):
+ """
+ The title for the documentation page, formatted as code (surrounded
+ in double-backtics) and underlined with '=' characters
+ """
+ title_underscore = "=" * (len(self._clsname) + 4)
+ return "``%s``\n%s" % (self._clsname, title_underscore)
diff --git a/.venv/lib/python3.12/site-packages/pptx/enum/chart.py b/.venv/lib/python3.12/site-packages/pptx/enum/chart.py
new file mode 100644
index 00000000..2599cf4d
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/pptx/enum/chart.py
@@ -0,0 +1,492 @@
+"""Enumerations used by charts and related objects."""
+
+from __future__ import annotations
+
+from pptx.enum.base import BaseEnum, BaseXmlEnum
+
+
+class XL_AXIS_CROSSES(BaseXmlEnum):
+ """Specifies the point on an axis where the other axis crosses.
+
+ Example::
+
+ from pptx.enum.chart import XL_AXIS_CROSSES
+
+ value_axis.crosses = XL_AXIS_CROSSES.MAXIMUM
+
+ MS API Name: `XlAxisCrosses`
+
+ https://msdn.microsoft.com/en-us/library/office/ff745402.aspx
+ """
+
+ AUTOMATIC = (-4105, "autoZero", "The axis crossing point is set automatically, often at zero.")
+ """The axis crossing point is set automatically, often at zero."""
+
+ CUSTOM = (-4114, "", "The .crosses_at property specifies the axis crossing point.")
+ """The .crosses_at property specifies the axis crossing point."""
+
+ MAXIMUM = (2, "max", "The axis crosses at the maximum value.")
+ """The axis crosses at the maximum value."""
+
+ MINIMUM = (4, "min", "The axis crosses at the minimum value.")
+ """The axis crosses at the minimum value."""
+
+
+class XL_CATEGORY_TYPE(BaseEnum):
+ """Specifies the type of the category axis.
+
+ Example::
+
+ from pptx.enum.chart import XL_CATEGORY_TYPE
+
+ date_axis = chart.category_axis
+ assert date_axis.category_type == XL_CATEGORY_TYPE.TIME_SCALE
+
+ MS API Name: `XlCategoryType`
+
+ https://msdn.microsoft.com/EN-US/library/office/ff746136.aspx
+ """
+
+ AUTOMATIC_SCALE = (-4105, "The application controls the axis type.")
+ """The application controls the axis type."""
+
+ CATEGORY_SCALE = (2, "Axis groups data by an arbitrary set of categories")
+ """Axis groups data by an arbitrary set of categories"""
+
+ TIME_SCALE = (3, "Axis groups data on a time scale of days, months, or years.")
+ """Axis groups data on a time scale of days, months, or years."""
+
+
+class XL_CHART_TYPE(BaseEnum):
+ """Specifies the type of a chart.
+
+ Example::
+
+ from pptx.enum.chart import XL_CHART_TYPE
+
+ assert chart.chart_type == XL_CHART_TYPE.BAR_STACKED
+
+ MS API Name: `XlChartType`
+
+ http://msdn.microsoft.com/en-us/library/office/ff838409.aspx
+ """
+
+ THREE_D_AREA = (-4098, "3D Area.")
+ """3D Area."""
+
+ THREE_D_AREA_STACKED = (78, "3D Stacked Area.")
+ """3D Stacked Area."""
+
+ THREE_D_AREA_STACKED_100 = (79, "100% Stacked Area.")
+ """100% Stacked Area."""
+
+ THREE_D_BAR_CLUSTERED = (60, "3D Clustered Bar.")
+ """3D Clustered Bar."""
+
+ THREE_D_BAR_STACKED = (61, "3D Stacked Bar.")
+ """3D Stacked Bar."""
+
+ THREE_D_BAR_STACKED_100 = (62, "3D 100% Stacked Bar.")
+ """3D 100% Stacked Bar."""
+
+ THREE_D_COLUMN = (-4100, "3D Column.")
+ """3D Column."""
+
+ THREE_D_COLUMN_CLUSTERED = (54, "3D Clustered Column.")
+ """3D Clustered Column."""
+
+ THREE_D_COLUMN_STACKED = (55, "3D Stacked Column.")
+ """3D Stacked Column."""
+
+ THREE_D_COLUMN_STACKED_100 = (56, "3D 100% Stacked Column.")
+ """3D 100% Stacked Column."""
+
+ THREE_D_LINE = (-4101, "3D Line.")
+ """3D Line."""
+
+ THREE_D_PIE = (-4102, "3D Pie.")
+ """3D Pie."""
+
+ THREE_D_PIE_EXPLODED = (70, "Exploded 3D Pie.")
+ """Exploded 3D Pie."""
+
+ AREA = (1, "Area")
+ """Area"""
+
+ AREA_STACKED = (76, "Stacked Area.")
+ """Stacked Area."""
+
+ AREA_STACKED_100 = (77, "100% Stacked Area.")
+ """100% Stacked Area."""
+
+ BAR_CLUSTERED = (57, "Clustered Bar.")
+ """Clustered Bar."""
+
+ BAR_OF_PIE = (71, "Bar of Pie.")
+ """Bar of Pie."""
+
+ BAR_STACKED = (58, "Stacked Bar.")
+ """Stacked Bar."""
+
+ BAR_STACKED_100 = (59, "100% Stacked Bar.")
+ """100% Stacked Bar."""
+
+ BUBBLE = (15, "Bubble.")
+ """Bubble."""
+
+ BUBBLE_THREE_D_EFFECT = (87, "Bubble with 3D effects.")
+ """Bubble with 3D effects."""
+
+ COLUMN_CLUSTERED = (51, "Clustered Column.")
+ """Clustered Column."""
+
+ COLUMN_STACKED = (52, "Stacked Column.")
+ """Stacked Column."""
+
+ COLUMN_STACKED_100 = (53, "100% Stacked Column.")
+ """100% Stacked Column."""
+
+ CONE_BAR_CLUSTERED = (102, "Clustered Cone Bar.")
+ """Clustered Cone Bar."""
+
+ CONE_BAR_STACKED = (103, "Stacked Cone Bar.")
+ """Stacked Cone Bar."""
+
+ CONE_BAR_STACKED_100 = (104, "100% Stacked Cone Bar.")
+ """100% Stacked Cone Bar."""
+
+ CONE_COL = (105, "3D Cone Column.")
+ """3D Cone Column."""
+
+ CONE_COL_CLUSTERED = (99, "Clustered Cone Column.")
+ """Clustered Cone Column."""
+
+ CONE_COL_STACKED = (100, "Stacked Cone Column.")
+ """Stacked Cone Column."""
+
+ CONE_COL_STACKED_100 = (101, "100% Stacked Cone Column.")
+ """100% Stacked Cone Column."""
+
+ CYLINDER_BAR_CLUSTERED = (95, "Clustered Cylinder Bar.")
+ """Clustered Cylinder Bar."""
+
+ CYLINDER_BAR_STACKED = (96, "Stacked Cylinder Bar.")
+ """Stacked Cylinder Bar."""
+
+ CYLINDER_BAR_STACKED_100 = (97, "100% Stacked Cylinder Bar.")
+ """100% Stacked Cylinder Bar."""
+
+ CYLINDER_COL = (98, "3D Cylinder Column.")
+ """3D Cylinder Column."""
+
+ CYLINDER_COL_CLUSTERED = (92, "Clustered Cone Column.")
+ """Clustered Cone Column."""
+
+ CYLINDER_COL_STACKED = (93, "Stacked Cone Column.")
+ """Stacked Cone Column."""
+
+ CYLINDER_COL_STACKED_100 = (94, "100% Stacked Cylinder Column.")
+ """100% Stacked Cylinder Column."""
+
+ DOUGHNUT = (-4120, "Doughnut.")
+ """Doughnut."""
+
+ DOUGHNUT_EXPLODED = (80, "Exploded Doughnut.")
+ """Exploded Doughnut."""
+
+ LINE = (4, "Line.")
+ """Line."""
+
+ LINE_MARKERS = (65, "Line with Markers.")
+ """Line with Markers."""
+
+ LINE_MARKERS_STACKED = (66, "Stacked Line with Markers.")
+ """Stacked Line with Markers."""
+
+ LINE_MARKERS_STACKED_100 = (67, "100% Stacked Line with Markers.")
+ """100% Stacked Line with Markers."""
+
+ LINE_STACKED = (63, "Stacked Line.")
+ """Stacked Line."""
+
+ LINE_STACKED_100 = (64, "100% Stacked Line.")
+ """100% Stacked Line."""
+
+ PIE = (5, "Pie.")
+ """Pie."""
+
+ PIE_EXPLODED = (69, "Exploded Pie.")
+ """Exploded Pie."""
+
+ PIE_OF_PIE = (68, "Pie of Pie.")
+ """Pie of Pie."""
+
+ PYRAMID_BAR_CLUSTERED = (109, "Clustered Pyramid Bar.")
+ """Clustered Pyramid Bar."""
+
+ PYRAMID_BAR_STACKED = (110, "Stacked Pyramid Bar.")
+ """Stacked Pyramid Bar."""
+
+ PYRAMID_BAR_STACKED_100 = (111, "100% Stacked Pyramid Bar.")
+ """100% Stacked Pyramid Bar."""
+
+ PYRAMID_COL = (112, "3D Pyramid Column.")
+ """3D Pyramid Column."""
+
+ PYRAMID_COL_CLUSTERED = (106, "Clustered Pyramid Column.")
+ """Clustered Pyramid Column."""
+
+ PYRAMID_COL_STACKED = (107, "Stacked Pyramid Column.")
+ """Stacked Pyramid Column."""
+
+ PYRAMID_COL_STACKED_100 = (108, "100% Stacked Pyramid Column.")
+ """100% Stacked Pyramid Column."""
+
+ RADAR = (-4151, "Radar.")
+ """Radar."""
+
+ RADAR_FILLED = (82, "Filled Radar.")
+ """Filled Radar."""
+
+ RADAR_MARKERS = (81, "Radar with Data Markers.")
+ """Radar with Data Markers."""
+
+ STOCK_HLC = (88, "High-Low-Close.")
+ """High-Low-Close."""
+
+ STOCK_OHLC = (89, "Open-High-Low-Close.")
+ """Open-High-Low-Close."""
+
+ STOCK_VHLC = (90, "Volume-High-Low-Close.")
+ """Volume-High-Low-Close."""
+
+ STOCK_VOHLC = (91, "Volume-Open-High-Low-Close.")
+ """Volume-Open-High-Low-Close."""
+
+ SURFACE = (83, "3D Surface.")
+ """3D Surface."""
+
+ SURFACE_TOP_VIEW = (85, "Surface (Top View).")
+ """Surface (Top View)."""
+
+ SURFACE_TOP_VIEW_WIREFRAME = (86, "Surface (Top View wireframe).")
+ """Surface (Top View wireframe)."""
+
+ SURFACE_WIREFRAME = (84, "3D Surface (wireframe).")
+ """3D Surface (wireframe)."""
+
+ XY_SCATTER = (-4169, "Scatter.")
+ """Scatter."""
+
+ XY_SCATTER_LINES = (74, "Scatter with Lines.")
+ """Scatter with Lines."""
+
+ XY_SCATTER_LINES_NO_MARKERS = (75, "Scatter with Lines and No Data Markers.")
+ """Scatter with Lines and No Data Markers."""
+
+ XY_SCATTER_SMOOTH = (72, "Scatter with Smoothed Lines.")
+ """Scatter with Smoothed Lines."""
+
+ XY_SCATTER_SMOOTH_NO_MARKERS = (73, "Scatter with Smoothed Lines and No Data Markers.")
+ """Scatter with Smoothed Lines and No Data Markers."""
+
+
+class XL_DATA_LABEL_POSITION(BaseXmlEnum):
+ """Specifies where the data label is positioned.
+
+ Example::
+
+ from pptx.enum.chart import XL_LABEL_POSITION
+
+ data_labels = chart.plots[0].data_labels
+ data_labels.position = XL_LABEL_POSITION.OUTSIDE_END
+
+ MS API Name: `XlDataLabelPosition`
+
+ http://msdn.microsoft.com/en-us/library/office/ff745082.aspx
+ """
+
+ ABOVE = (0, "t", "The data label is positioned above the data point.")
+ """The data label is positioned above the data point."""
+
+ BELOW = (1, "b", "The data label is positioned below the data point.")
+ """The data label is positioned below the data point."""
+
+ BEST_FIT = (5, "bestFit", "Word sets the position of the data label.")
+ """Word sets the position of the data label."""
+
+ CENTER = (
+ -4108,
+ "ctr",
+ "The data label is centered on the data point or inside a bar or a pie slice.",
+ )
+ """The data label is centered on the data point or inside a bar or a pie slice."""
+
+ INSIDE_BASE = (
+ 4,
+ "inBase",
+ "The data label is positioned inside the data point at the bottom edge.",
+ )
+ """The data label is positioned inside the data point at the bottom edge."""
+
+ INSIDE_END = (3, "inEnd", "The data label is positioned inside the data point at the top edge.")
+ """The data label is positioned inside the data point at the top edge."""
+
+ LEFT = (-4131, "l", "The data label is positioned to the left of the data point.")
+ """The data label is positioned to the left of the data point."""
+
+ MIXED = (6, "", "Data labels are in multiple positions (read-only).")
+ """Data labels are in multiple positions (read-only)."""
+
+ OUTSIDE_END = (
+ 2,
+ "outEnd",
+ "The data label is positioned outside the data point at the top edge.",
+ )
+ """The data label is positioned outside the data point at the top edge."""
+
+ RIGHT = (-4152, "r", "The data label is positioned to the right of the data point.")
+ """The data label is positioned to the right of the data point."""
+
+
+XL_LABEL_POSITION = XL_DATA_LABEL_POSITION
+
+
+class XL_LEGEND_POSITION(BaseXmlEnum):
+ """Specifies the position of the legend on a chart.
+
+ Example::
+
+ from pptx.enum.chart import XL_LEGEND_POSITION
+
+ chart.has_legend = True
+ chart.legend.position = XL_LEGEND_POSITION.BOTTOM
+
+ MS API Name: `XlLegendPosition`
+
+ http://msdn.microsoft.com/en-us/library/office/ff745840.aspx
+ """
+
+ BOTTOM = (-4107, "b", "Below the chart.")
+ """Below the chart."""
+
+ CORNER = (2, "tr", "In the upper-right corner of the chart border.")
+ """In the upper-right corner of the chart border."""
+
+ CUSTOM = (-4161, "", "A custom position (read-only).")
+ """A custom position (read-only)."""
+
+ LEFT = (-4131, "l", "Left of the chart.")
+ """Left of the chart."""
+
+ RIGHT = (-4152, "r", "Right of the chart.")
+ """Right of the chart."""
+
+ TOP = (-4160, "t", "Above the chart.")
+ """Above the chart."""
+
+
+class XL_MARKER_STYLE(BaseXmlEnum):
+ """Specifies the marker style for a point or series in a line, scatter, or radar chart.
+
+ Example::
+
+ from pptx.enum.chart import XL_MARKER_STYLE
+
+ series.marker.style = XL_MARKER_STYLE.CIRCLE
+
+ MS API Name: `XlMarkerStyle`
+
+ http://msdn.microsoft.com/en-us/library/office/ff197219.aspx
+ """
+
+ AUTOMATIC = (-4105, "auto", "Automatic markers")
+ """Automatic markers"""
+
+ CIRCLE = (8, "circle", "Circular markers")
+ """Circular markers"""
+
+ DASH = (-4115, "dash", "Long bar markers")
+ """Long bar markers"""
+
+ DIAMOND = (2, "diamond", "Diamond-shaped markers")
+ """Diamond-shaped markers"""
+
+ DOT = (-4118, "dot", "Short bar markers")
+ """Short bar markers"""
+
+ NONE = (-4142, "none", "No markers")
+ """No markers"""
+
+ PICTURE = (-4147, "picture", "Picture markers")
+ """Picture markers"""
+
+ PLUS = (9, "plus", "Square markers with a plus sign")
+ """Square markers with a plus sign"""
+
+ SQUARE = (1, "square", "Square markers")
+ """Square markers"""
+
+ STAR = (5, "star", "Square markers with an asterisk")
+ """Square markers with an asterisk"""
+
+ TRIANGLE = (3, "triangle", "Triangular markers")
+ """Triangular markers"""
+
+ X = (-4168, "x", "Square markers with an X")
+ """Square markers with an X"""
+
+
+class XL_TICK_MARK(BaseXmlEnum):
+ """Specifies a type of axis tick for a chart.
+
+ Example::
+
+ from pptx.enum.chart import XL_TICK_MARK
+
+ chart.value_axis.minor_tick_mark = XL_TICK_MARK.INSIDE
+
+ MS API Name: `XlTickMark`
+
+ http://msdn.microsoft.com/en-us/library/office/ff193878.aspx
+ """
+
+ CROSS = (4, "cross", "Tick mark crosses the axis")
+ """Tick mark crosses the axis"""
+
+ INSIDE = (2, "in", "Tick mark appears inside the axis")
+ """Tick mark appears inside the axis"""
+
+ NONE = (-4142, "none", "No tick mark")
+ """No tick mark"""
+
+ OUTSIDE = (3, "out", "Tick mark appears outside the axis")
+ """Tick mark appears outside the axis"""
+
+
+class XL_TICK_LABEL_POSITION(BaseXmlEnum):
+ """Specifies the position of tick-mark labels on a chart axis.
+
+ Example::
+
+ from pptx.enum.chart import XL_TICK_LABEL_POSITION
+
+ category_axis = chart.category_axis
+ category_axis.tick_label_position = XL_TICK_LABEL_POSITION.LOW
+
+ MS API Name: `XlTickLabelPosition`
+
+ http://msdn.microsoft.com/en-us/library/office/ff822561.aspx
+ """
+
+ HIGH = (-4127, "high", "Top or right side of the chart.")
+ """Top or right side of the chart."""
+
+ LOW = (-4134, "low", "Bottom or left side of the chart.")
+ """Bottom or left side of the chart."""
+
+ NEXT_TO_AXIS = (4, "nextTo", "Next to axis (where axis is not at either side of the chart).")
+ """Next to axis (where axis is not at either side of the chart)."""
+
+ NONE = (-4142, "none", "No tick labels.")
+ """No tick labels."""
diff --git a/.venv/lib/python3.12/site-packages/pptx/enum/dml.py b/.venv/lib/python3.12/site-packages/pptx/enum/dml.py
new file mode 100644
index 00000000..40d5c5cd
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/pptx/enum/dml.py
@@ -0,0 +1,405 @@
+"""Enumerations used by DrawingML objects."""
+
+from __future__ import annotations
+
+from pptx.enum.base import BaseEnum, BaseXmlEnum
+
+
+class MSO_COLOR_TYPE(BaseEnum):
+ """
+ Specifies the color specification scheme
+
+ Example::
+
+ from pptx.enum.dml import MSO_COLOR_TYPE
+
+ assert shape.fill.fore_color.type == MSO_COLOR_TYPE.SCHEME
+
+ MS API Name: "MsoColorType"
+
+ http://msdn.microsoft.com/en-us/library/office/ff864912(v=office.15).aspx
+ """
+
+ RGB = (1, "Color is specified by an |RGBColor| value.")
+ """Color is specified by an |RGBColor| value."""
+
+ SCHEME = (2, "Color is one of the preset theme colors")
+ """Color is one of the preset theme colors"""
+
+ HSL = (101, "Color is specified using Hue, Saturation, and Luminosity values")
+ """Color is specified using Hue, Saturation, and Luminosity values"""
+
+ PRESET = (102, "Color is specified using a named built-in color")
+ """Color is specified using a named built-in color"""
+
+ SCRGB = (103, "Color is an scRGB color, a wide color gamut RGB color space")
+ """Color is an scRGB color, a wide color gamut RGB color space"""
+
+ SYSTEM = (
+ 104,
+ "Color is one specified by the operating system, such as the window background color.",
+ )
+ """Color is one specified by the operating system, such as the window background color."""
+
+
+class MSO_FILL_TYPE(BaseEnum):
+ """
+ Specifies the type of bitmap used for the fill of a shape.
+
+ Alias: ``MSO_FILL``
+
+ Example::
+
+ from pptx.enum.dml import MSO_FILL
+
+ assert shape.fill.type == MSO_FILL.SOLID
+
+ MS API Name: `MsoFillType`
+
+ http://msdn.microsoft.com/EN-US/library/office/ff861408.aspx
+ """
+
+ BACKGROUND = (
+ 5,
+ "The shape is transparent, such that whatever is behind the shape shows through."
+ " Often this is the slide background, but if a visible shape is behind, that will"
+ " show through.",
+ )
+ """The shape is transparent, such that whatever is behind the shape shows through.
+
+ Often this is the slide background, but if a visible shape is behind, that will show through.
+ """
+
+ GRADIENT = (3, "Shape is filled with a gradient")
+ """Shape is filled with a gradient"""
+
+ GROUP = (101, "Shape is part of a group and should inherit the fill properties of the group.")
+ """Shape is part of a group and should inherit the fill properties of the group."""
+
+ PATTERNED = (2, "Shape is filled with a pattern")
+ """Shape is filled with a pattern"""
+
+ PICTURE = (6, "Shape is filled with a bitmapped image")
+ """Shape is filled with a bitmapped image"""
+
+ SOLID = (1, "Shape is filled with a solid color")
+ """Shape is filled with a solid color"""
+
+ TEXTURED = (4, "Shape is filled with a texture")
+ """Shape is filled with a texture"""
+
+
+MSO_FILL = MSO_FILL_TYPE
+
+
+class MSO_LINE_DASH_STYLE(BaseXmlEnum):
+ """Specifies the dash style for a line.
+
+ Alias: ``MSO_LINE``
+
+ Example::
+
+ from pptx.enum.dml import MSO_LINE
+
+ shape.line.dash_style = MSO_LINE.DASH_DOT_DOT
+
+ MS API name: `MsoLineDashStyle`
+
+ https://learn.microsoft.com/en-us/office/vba/api/Office.MsoLineDashStyle
+ """
+
+ DASH = (4, "dash", "Line consists of dashes only.")
+ """Line consists of dashes only."""
+
+ DASH_DOT = (5, "dashDot", "Line is a dash-dot pattern.")
+ """Line is a dash-dot pattern."""
+
+ DASH_DOT_DOT = (6, "lgDashDotDot", "Line is a dash-dot-dot pattern.")
+ """Line is a dash-dot-dot pattern."""
+
+ LONG_DASH = (7, "lgDash", "Line consists of long dashes.")
+ """Line consists of long dashes."""
+
+ LONG_DASH_DOT = (8, "lgDashDot", "Line is a long dash-dot pattern.")
+ """Line is a long dash-dot pattern."""
+
+ ROUND_DOT = (3, "sysDot", "Line is made up of round dots.")
+ """Line is made up of round dots."""
+
+ SOLID = (1, "solid", "Line is solid.")
+ """Line is solid."""
+
+ SQUARE_DOT = (2, "sysDash", "Line is made up of square dots.")
+ """Line is made up of square dots."""
+
+ DASH_STYLE_MIXED = (-2, "", "Not supported.")
+ """Return value only, indicating more than one dash style applies."""
+
+
+MSO_LINE = MSO_LINE_DASH_STYLE
+
+
+class MSO_PATTERN_TYPE(BaseXmlEnum):
+ """Specifies the fill pattern used in a shape.
+
+ Alias: ``MSO_PATTERN``
+
+ Example::
+
+ from pptx.enum.dml import MSO_PATTERN
+
+ fill = shape.fill
+ fill.patterned()
+ fill.pattern = MSO_PATTERN.WAVE
+
+ MS API Name: `MsoPatternType`
+
+ https://learn.microsoft.com/en-us/office/vba/api/Office.MsoPatternType
+ """
+
+ CROSS = (51, "cross", "Cross")
+ """Cross"""
+
+ DARK_DOWNWARD_DIAGONAL = (15, "dkDnDiag", "Dark Downward Diagonal")
+ """Dark Downward Diagonal"""
+
+ DARK_HORIZONTAL = (13, "dkHorz", "Dark Horizontal")
+ """Dark Horizontal"""
+
+ DARK_UPWARD_DIAGONAL = (16, "dkUpDiag", "Dark Upward Diagonal")
+ """Dark Upward Diagonal"""
+
+ DARK_VERTICAL = (14, "dkVert", "Dark Vertical")
+ """Dark Vertical"""
+
+ DASHED_DOWNWARD_DIAGONAL = (28, "dashDnDiag", "Dashed Downward Diagonal")
+ """Dashed Downward Diagonal"""
+
+ DASHED_HORIZONTAL = (32, "dashHorz", "Dashed Horizontal")
+ """Dashed Horizontal"""
+
+ DASHED_UPWARD_DIAGONAL = (27, "dashUpDiag", "Dashed Upward Diagonal")
+ """Dashed Upward Diagonal"""
+
+ DASHED_VERTICAL = (31, "dashVert", "Dashed Vertical")
+ """Dashed Vertical"""
+
+ DIAGONAL_BRICK = (40, "diagBrick", "Diagonal Brick")
+ """Diagonal Brick"""
+
+ DIAGONAL_CROSS = (54, "diagCross", "Diagonal Cross")
+ """Diagonal Cross"""
+
+ DIVOT = (46, "divot", "Pattern Divot")
+ """Pattern Divot"""
+
+ DOTTED_DIAMOND = (24, "dotDmnd", "Dotted Diamond")
+ """Dotted Diamond"""
+
+ DOTTED_GRID = (45, "dotGrid", "Dotted Grid")
+ """Dotted Grid"""
+
+ DOWNWARD_DIAGONAL = (52, "dnDiag", "Downward Diagonal")
+ """Downward Diagonal"""
+
+ HORIZONTAL = (49, "horz", "Horizontal")
+ """Horizontal"""
+
+ HORIZONTAL_BRICK = (35, "horzBrick", "Horizontal Brick")
+ """Horizontal Brick"""
+
+ LARGE_CHECKER_BOARD = (36, "lgCheck", "Large Checker Board")
+ """Large Checker Board"""
+
+ LARGE_CONFETTI = (33, "lgConfetti", "Large Confetti")
+ """Large Confetti"""
+
+ LARGE_GRID = (34, "lgGrid", "Large Grid")
+ """Large Grid"""
+
+ LIGHT_DOWNWARD_DIAGONAL = (21, "ltDnDiag", "Light Downward Diagonal")
+ """Light Downward Diagonal"""
+
+ LIGHT_HORIZONTAL = (19, "ltHorz", "Light Horizontal")
+ """Light Horizontal"""
+
+ LIGHT_UPWARD_DIAGONAL = (22, "ltUpDiag", "Light Upward Diagonal")
+ """Light Upward Diagonal"""
+
+ LIGHT_VERTICAL = (20, "ltVert", "Light Vertical")
+ """Light Vertical"""
+
+ NARROW_HORIZONTAL = (30, "narHorz", "Narrow Horizontal")
+ """Narrow Horizontal"""
+
+ NARROW_VERTICAL = (29, "narVert", "Narrow Vertical")
+ """Narrow Vertical"""
+
+ OUTLINED_DIAMOND = (41, "openDmnd", "Outlined Diamond")
+ """Outlined Diamond"""
+
+ PERCENT_10 = (2, "pct10", "10% of the foreground color.")
+ """10% of the foreground color."""
+
+ PERCENT_20 = (3, "pct20", "20% of the foreground color.")
+ """20% of the foreground color."""
+
+ PERCENT_25 = (4, "pct25", "25% of the foreground color.")
+ """25% of the foreground color."""
+
+ PERCENT_30 = (5, "pct30", "30% of the foreground color.")
+ """30% of the foreground color."""
+
+ ERCENT_40 = (6, "pct40", "40% of the foreground color.")
+ """40% of the foreground color."""
+
+ PERCENT_5 = (1, "pct5", "5% of the foreground color.")
+ """5% of the foreground color."""
+
+ PERCENT_50 = (7, "pct50", "50% of the foreground color.")
+ """50% of the foreground color."""
+
+ PERCENT_60 = (8, "pct60", "60% of the foreground color.")
+ """60% of the foreground color."""
+
+ PERCENT_70 = (9, "pct70", "70% of the foreground color.")
+ """70% of the foreground color."""
+
+ PERCENT_75 = (10, "pct75", "75% of the foreground color.")
+ """75% of the foreground color."""
+
+ PERCENT_80 = (11, "pct80", "80% of the foreground color.")
+ """80% of the foreground color."""
+
+ PERCENT_90 = (12, "pct90", "90% of the foreground color.")
+ """90% of the foreground color."""
+
+ PLAID = (42, "plaid", "Plaid")
+ """Plaid"""
+
+ SHINGLE = (47, "shingle", "Shingle")
+ """Shingle"""
+
+ SMALL_CHECKER_BOARD = (17, "smCheck", "Small Checker Board")
+ """Small Checker Board"""
+
+ SMALL_CONFETTI = (37, "smConfetti", "Small Confetti")
+ """Small Confetti"""
+
+ SMALL_GRID = (23, "smGrid", "Small Grid")
+ """Small Grid"""
+
+ SOLID_DIAMOND = (39, "solidDmnd", "Solid Diamond")
+ """Solid Diamond"""
+
+ SPHERE = (43, "sphere", "Sphere")
+ """Sphere"""
+
+ TRELLIS = (18, "trellis", "Trellis")
+ """Trellis"""
+
+ UPWARD_DIAGONAL = (53, "upDiag", "Upward Diagonal")
+ """Upward Diagonal"""
+
+ VERTICAL = (50, "vert", "Vertical")
+ """Vertical"""
+
+ WAVE = (48, "wave", "Wave")
+ """Wave"""
+
+ WEAVE = (44, "weave", "Weave")
+ """Weave"""
+
+ WIDE_DOWNWARD_DIAGONAL = (25, "wdDnDiag", "Wide Downward Diagonal")
+ """Wide Downward Diagonal"""
+
+ WIDE_UPWARD_DIAGONAL = (26, "wdUpDiag", "Wide Upward Diagonal")
+ """Wide Upward Diagonal"""
+
+ ZIG_ZAG = (38, "zigZag", "Zig Zag")
+ """Zig Zag"""
+
+ MIXED = (-2, "", "Mixed pattern (read-only).")
+ """Mixed pattern (read-only)."""
+
+
+MSO_PATTERN = MSO_PATTERN_TYPE
+
+
+class MSO_THEME_COLOR_INDEX(BaseXmlEnum):
+ """An Office theme color, one of those shown in the color gallery on the formatting ribbon.
+
+ Alias: ``MSO_THEME_COLOR``
+
+ Example::
+
+ from pptx.enum.dml import MSO_THEME_COLOR
+
+ shape.fill.solid()
+ shape.fill.fore_color.theme_color = MSO_THEME_COLOR.ACCENT_1
+
+ MS API Name: `MsoThemeColorIndex`
+
+ http://msdn.microsoft.com/en-us/library/office/ff860782(v=office.15).aspx
+ """
+
+ NOT_THEME_COLOR = (0, "", "Indicates the color is not a theme color.")
+ """Indicates the color is not a theme color."""
+
+ ACCENT_1 = (5, "accent1", "Specifies the Accent 1 theme color.")
+ """Specifies the Accent 1 theme color."""
+
+ ACCENT_2 = (6, "accent2", "Specifies the Accent 2 theme color.")
+ """Specifies the Accent 2 theme color."""
+
+ ACCENT_3 = (7, "accent3", "Specifies the Accent 3 theme color.")
+ """Specifies the Accent 3 theme color."""
+
+ ACCENT_4 = (8, "accent4", "Specifies the Accent 4 theme color.")
+ """Specifies the Accent 4 theme color."""
+
+ ACCENT_5 = (9, "accent5", "Specifies the Accent 5 theme color.")
+ """Specifies the Accent 5 theme color."""
+
+ ACCENT_6 = (10, "accent6", "Specifies the Accent 6 theme color.")
+ """Specifies the Accent 6 theme color."""
+
+ BACKGROUND_1 = (14, "bg1", "Specifies the Background 1 theme color.")
+ """Specifies the Background 1 theme color."""
+
+ BACKGROUND_2 = (16, "bg2", "Specifies the Background 2 theme color.")
+ """Specifies the Background 2 theme color."""
+
+ DARK_1 = (1, "dk1", "Specifies the Dark 1 theme color.")
+ """Specifies the Dark 1 theme color."""
+
+ DARK_2 = (3, "dk2", "Specifies the Dark 2 theme color.")
+ """Specifies the Dark 2 theme color."""
+
+ FOLLOWED_HYPERLINK = (12, "folHlink", "Specifies the theme color for a clicked hyperlink.")
+ """Specifies the theme color for a clicked hyperlink."""
+
+ HYPERLINK = (11, "hlink", "Specifies the theme color for a hyperlink.")
+ """Specifies the theme color for a hyperlink."""
+
+ LIGHT_1 = (2, "lt1", "Specifies the Light 1 theme color.")
+ """Specifies the Light 1 theme color."""
+
+ LIGHT_2 = (4, "lt2", "Specifies the Light 2 theme color.")
+ """Specifies the Light 2 theme color."""
+
+ TEXT_1 = (13, "tx1", "Specifies the Text 1 theme color.")
+ """Specifies the Text 1 theme color."""
+
+ TEXT_2 = (15, "tx2", "Specifies the Text 2 theme color.")
+ """Specifies the Text 2 theme color."""
+
+ MIXED = (
+ -2,
+ "",
+ "Indicates multiple theme colors are used, such as in a group shape (read-only).",
+ )
+ """Indicates multiple theme colors are used, such as in a group shape (read-only)."""
+
+
+MSO_THEME_COLOR = MSO_THEME_COLOR_INDEX
diff --git a/.venv/lib/python3.12/site-packages/pptx/enum/lang.py b/.venv/lib/python3.12/site-packages/pptx/enum/lang.py
new file mode 100644
index 00000000..a6bc1c8b
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/pptx/enum/lang.py
@@ -0,0 +1,685 @@
+"""Enumerations used for specifying language."""
+
+from __future__ import annotations
+
+from pptx.enum.base import BaseXmlEnum
+
+
+class MSO_LANGUAGE_ID(BaseXmlEnum):
+ """
+ Specifies the language identifier.
+
+ Example::
+
+ from pptx.enum.lang import MSO_LANGUAGE_ID
+
+ font.language_id = MSO_LANGUAGE_ID.POLISH
+
+ MS API Name: `MsoLanguageId`
+
+ https://msdn.microsoft.com/en-us/library/office/ff862134.aspx
+ """
+
+ NONE = (0, "", "No language specified.")
+ """No language specified."""
+
+ AFRIKAANS = (1078, "af-ZA", "The Afrikaans language.")
+ """The Afrikaans language."""
+
+ ALBANIAN = (1052, "sq-AL", "The Albanian language.")
+ """The Albanian language."""
+
+ AMHARIC = (1118, "am-ET", "The Amharic language.")
+ """The Amharic language."""
+
+ ARABIC = (1025, "ar-SA", "The Arabic language.")
+ """The Arabic language."""
+
+ ARABIC_ALGERIA = (5121, "ar-DZ", "The Arabic Algeria language.")
+ """The Arabic Algeria language."""
+
+ ARABIC_BAHRAIN = (15361, "ar-BH", "The Arabic Bahrain language.")
+ """The Arabic Bahrain language."""
+
+ ARABIC_EGYPT = (3073, "ar-EG", "The Arabic Egypt language.")
+ """The Arabic Egypt language."""
+
+ ARABIC_IRAQ = (2049, "ar-IQ", "The Arabic Iraq language.")
+ """The Arabic Iraq language."""
+
+ ARABIC_JORDAN = (11265, "ar-JO", "The Arabic Jordan language.")
+ """The Arabic Jordan language."""
+
+ ARABIC_KUWAIT = (13313, "ar-KW", "The Arabic Kuwait language.")
+ """The Arabic Kuwait language."""
+
+ ARABIC_LEBANON = (12289, "ar-LB", "The Arabic Lebanon language.")
+ """The Arabic Lebanon language."""
+
+ ARABIC_LIBYA = (4097, "ar-LY", "The Arabic Libya language.")
+ """The Arabic Libya language."""
+
+ ARABIC_MOROCCO = (6145, "ar-MA", "The Arabic Morocco language.")
+ """The Arabic Morocco language."""
+
+ ARABIC_OMAN = (8193, "ar-OM", "The Arabic Oman language.")
+ """The Arabic Oman language."""
+
+ ARABIC_QATAR = (16385, "ar-QA", "The Arabic Qatar language.")
+ """The Arabic Qatar language."""
+
+ ARABIC_SYRIA = (10241, "ar-SY", "The Arabic Syria language.")
+ """The Arabic Syria language."""
+
+ ARABIC_TUNISIA = (7169, "ar-TN", "The Arabic Tunisia language.")
+ """The Arabic Tunisia language."""
+
+ ARABIC_UAE = (14337, "ar-AE", "The Arabic UAE language.")
+ """The Arabic UAE language."""
+
+ ARABIC_YEMEN = (9217, "ar-YE", "The Arabic Yemen language.")
+ """The Arabic Yemen language."""
+
+ ARMENIAN = (1067, "hy-AM", "The Armenian language.")
+ """The Armenian language."""
+
+ ASSAMESE = (1101, "as-IN", "The Assamese language.")
+ """The Assamese language."""
+
+ AZERI_CYRILLIC = (2092, "az-AZ", "The Azeri Cyrillic language.")
+ """The Azeri Cyrillic language."""
+
+ AZERI_LATIN = (1068, "az-Latn-AZ", "The Azeri Latin language.")
+ """The Azeri Latin language."""
+
+ BASQUE = (1069, "eu-ES", "The Basque language.")
+ """The Basque language."""
+
+ BELGIAN_DUTCH = (2067, "nl-BE", "The Belgian Dutch language.")
+ """The Belgian Dutch language."""
+
+ BELGIAN_FRENCH = (2060, "fr-BE", "The Belgian French language.")
+ """The Belgian French language."""
+
+ BENGALI = (1093, "bn-IN", "The Bengali language.")
+ """The Bengali language."""
+
+ BOSNIAN = (4122, "hr-BA", "The Bosnian language.")
+ """The Bosnian language."""
+
+ BOSNIAN_BOSNIA_HERZEGOVINA_CYRILLIC = (
+ 8218,
+ "bs-BA",
+ "The Bosnian Bosnia Herzegovina Cyrillic language.",
+ )
+ """The Bosnian Bosnia Herzegovina Cyrillic language."""
+
+ BOSNIAN_BOSNIA_HERZEGOVINA_LATIN = (
+ 5146,
+ "bs-Latn-BA",
+ "The Bosnian Bosnia Herzegovina Latin language.",
+ )
+ """The Bosnian Bosnia Herzegovina Latin language."""
+
+ BRAZILIAN_PORTUGUESE = (1046, "pt-BR", "The Brazilian Portuguese language.")
+ """The Brazilian Portuguese language."""
+
+ BULGARIAN = (1026, "bg-BG", "The Bulgarian language.")
+ """The Bulgarian language."""
+
+ BURMESE = (1109, "my-MM", "The Burmese language.")
+ """The Burmese language."""
+
+ BYELORUSSIAN = (1059, "be-BY", "The Byelorussian language.")
+ """The Byelorussian language."""
+
+ CATALAN = (1027, "ca-ES", "The Catalan language.")
+ """The Catalan language."""
+
+ CHEROKEE = (1116, "chr-US", "The Cherokee language.")
+ """The Cherokee language."""
+
+ CHINESE_HONG_KONG_SAR = (3076, "zh-HK", "The Chinese Hong Kong SAR language.")
+ """The Chinese Hong Kong SAR language."""
+
+ CHINESE_MACAO_SAR = (5124, "zh-MO", "The Chinese Macao SAR language.")
+ """The Chinese Macao SAR language."""
+
+ CHINESE_SINGAPORE = (4100, "zh-SG", "The Chinese Singapore language.")
+ """The Chinese Singapore language."""
+
+ CROATIAN = (1050, "hr-HR", "The Croatian language.")
+ """The Croatian language."""
+
+ CZECH = (1029, "cs-CZ", "The Czech language.")
+ """The Czech language."""
+
+ DANISH = (1030, "da-DK", "The Danish language.")
+ """The Danish language."""
+
+ DIVEHI = (1125, "div-MV", "The Divehi language.")
+ """The Divehi language."""
+
+ DUTCH = (1043, "nl-NL", "The Dutch language.")
+ """The Dutch language."""
+
+ EDO = (1126, "bin-NG", "The Edo language.")
+ """The Edo language."""
+
+ ENGLISH_AUS = (3081, "en-AU", "The English AUS language.")
+ """The English AUS language."""
+
+ ENGLISH_BELIZE = (10249, "en-BZ", "The English Belize language.")
+ """The English Belize language."""
+
+ ENGLISH_CANADIAN = (4105, "en-CA", "The English Canadian language.")
+ """The English Canadian language."""
+
+ ENGLISH_CARIBBEAN = (9225, "en-CB", "The English Caribbean language.")
+ """The English Caribbean language."""
+
+ ENGLISH_INDONESIA = (14345, "en-ID", "The English Indonesia language.")
+ """The English Indonesia language."""
+
+ ENGLISH_IRELAND = (6153, "en-IE", "The English Ireland language.")
+ """The English Ireland language."""
+
+ ENGLISH_JAMAICA = (8201, "en-JA", "The English Jamaica language.")
+ """The English Jamaica language."""
+
+ ENGLISH_NEW_ZEALAND = (5129, "en-NZ", "The English NewZealand language.")
+ """The English NewZealand language."""
+
+ ENGLISH_PHILIPPINES = (13321, "en-PH", "The English Philippines language.")
+ """The English Philippines language."""
+
+ ENGLISH_SOUTH_AFRICA = (7177, "en-ZA", "The English South Africa language.")
+ """The English South Africa language."""
+
+ ENGLISH_TRINIDAD_TOBAGO = (11273, "en-TT", "The English Trinidad Tobago language.")
+ """The English Trinidad Tobago language."""
+
+ ENGLISH_UK = (2057, "en-GB", "The English UK language.")
+ """The English UK language."""
+
+ ENGLISH_US = (1033, "en-US", "The English US language.")
+ """The English US language."""
+
+ ENGLISH_ZIMBABWE = (12297, "en-ZW", "The English Zimbabwe language.")
+ """The English Zimbabwe language."""
+
+ ESTONIAN = (1061, "et-EE", "The Estonian language.")
+ """The Estonian language."""
+
+ FAEROESE = (1080, "fo-FO", "The Faeroese language.")
+ """The Faeroese language."""
+
+ FARSI = (1065, "fa-IR", "The Farsi language.")
+ """The Farsi language."""
+
+ FILIPINO = (1124, "fil-PH", "The Filipino language.")
+ """The Filipino language."""
+
+ FINNISH = (1035, "fi-FI", "The Finnish language.")
+ """The Finnish language."""
+
+ FRANCH_CONGO_DRC = (9228, "fr-CD", "The French Congo DRC language.")
+ """The French Congo DRC language."""
+
+ FRENCH = (1036, "fr-FR", "The French language.")
+ """The French language."""
+
+ FRENCH_CAMEROON = (11276, "fr-CM", "The French Cameroon language.")
+ """The French Cameroon language."""
+
+ FRENCH_CANADIAN = (3084, "fr-CA", "The French Canadian language.")
+ """The French Canadian language."""
+
+ FRENCH_COTED_IVOIRE = (12300, "fr-CI", "The French Coted Ivoire language.")
+ """The French Coted Ivoire language."""
+
+ FRENCH_HAITI = (15372, "fr-HT", "The French Haiti language.")
+ """The French Haiti language."""
+
+ FRENCH_LUXEMBOURG = (5132, "fr-LU", "The French Luxembourg language.")
+ """The French Luxembourg language."""
+
+ FRENCH_MALI = (13324, "fr-ML", "The French Mali language.")
+ """The French Mali language."""
+
+ FRENCH_MONACO = (6156, "fr-MC", "The French Monaco language.")
+ """The French Monaco language."""
+
+ FRENCH_MOROCCO = (14348, "fr-MA", "The French Morocco language.")
+ """The French Morocco language."""
+
+ FRENCH_REUNION = (8204, "fr-RE", "The French Reunion language.")
+ """The French Reunion language."""
+
+ FRENCH_SENEGAL = (10252, "fr-SN", "The French Senegal language.")
+ """The French Senegal language."""
+
+ FRENCH_WEST_INDIES = (7180, "fr-WINDIES", "The French West Indies language.")
+ """The French West Indies language."""
+
+ FRISIAN_NETHERLANDS = (1122, "fy-NL", "The Frisian Netherlands language.")
+ """The Frisian Netherlands language."""
+
+ FULFULDE = (1127, "ff-NG", "The Fulfulde language.")
+ """The Fulfulde language."""
+
+ GAELIC_IRELAND = (2108, "ga-IE", "The Gaelic Ireland language.")
+ """The Gaelic Ireland language."""
+
+ GAELIC_SCOTLAND = (1084, "en-US", "The Gaelic Scotland language.")
+ """The Gaelic Scotland language."""
+
+ GALICIAN = (1110, "gl-ES", "The Galician language.")
+ """The Galician language."""
+
+ GEORGIAN = (1079, "ka-GE", "The Georgian language.")
+ """The Georgian language."""
+
+ GERMAN = (1031, "de-DE", "The German language.")
+ """The German language."""
+
+ GERMAN_AUSTRIA = (3079, "de-AT", "The German Austria language.")
+ """The German Austria language."""
+
+ GERMAN_LIECHTENSTEIN = (5127, "de-LI", "The German Liechtenstein language.")
+ """The German Liechtenstein language."""
+
+ GERMAN_LUXEMBOURG = (4103, "de-LU", "The German Luxembourg language.")
+ """The German Luxembourg language."""
+
+ GREEK = (1032, "el-GR", "The Greek language.")
+ """The Greek language."""
+
+ GUARANI = (1140, "gn-PY", "The Guarani language.")
+ """The Guarani language."""
+
+ GUJARATI = (1095, "gu-IN", "The Gujarati language.")
+ """The Gujarati language."""
+
+ HAUSA = (1128, "ha-NG", "The Hausa language.")
+ """The Hausa language."""
+
+ HAWAIIAN = (1141, "haw-US", "The Hawaiian language.")
+ """The Hawaiian language."""
+
+ HEBREW = (1037, "he-IL", "The Hebrew language.")
+ """The Hebrew language."""
+
+ HINDI = (1081, "hi-IN", "The Hindi language.")
+ """The Hindi language."""
+
+ HUNGARIAN = (1038, "hu-HU", "The Hungarian language.")
+ """The Hungarian language."""
+
+ IBIBIO = (1129, "ibb-NG", "The Ibibio language.")
+ """The Ibibio language."""
+
+ ICELANDIC = (1039, "is-IS", "The Icelandic language.")
+ """The Icelandic language."""
+
+ IGBO = (1136, "ig-NG", "The Igbo language.")
+ """The Igbo language."""
+
+ INDONESIAN = (1057, "id-ID", "The Indonesian language.")
+ """The Indonesian language."""
+
+ INUKTITUT = (1117, "iu-Cans-CA", "The Inuktitut language.")
+ """The Inuktitut language."""
+
+ ITALIAN = (1040, "it-IT", "The Italian language.")
+ """The Italian language."""
+
+ JAPANESE = (1041, "ja-JP", "The Japanese language.")
+ """The Japanese language."""
+
+ KANNADA = (1099, "kn-IN", "The Kannada language.")
+ """The Kannada language."""
+
+ KANURI = (1137, "kr-NG", "The Kanuri language.")
+ """The Kanuri language."""
+
+ KASHMIRI = (1120, "ks-Arab", "The Kashmiri language.")
+ """The Kashmiri language."""
+
+ KASHMIRI_DEVANAGARI = (2144, "ks-Deva", "The Kashmiri Devanagari language.")
+ """The Kashmiri Devanagari language."""
+
+ KAZAKH = (1087, "kk-KZ", "The Kazakh language.")
+ """The Kazakh language."""
+
+ KHMER = (1107, "kh-KH", "The Khmer language.")
+ """The Khmer language."""
+
+ KIRGHIZ = (1088, "ky-KG", "The Kirghiz language.")
+ """The Kirghiz language."""
+
+ KONKANI = (1111, "kok-IN", "The Konkani language.")
+ """The Konkani language."""
+
+ KOREAN = (1042, "ko-KR", "The Korean language.")
+ """The Korean language."""
+
+ KYRGYZ = (1088, "ky-KG", "The Kyrgyz language.")
+ """The Kyrgyz language."""
+
+ LAO = (1108, "lo-LA", "The Lao language.")
+ """The Lao language."""
+
+ LATIN = (1142, "la-Latn", "The Latin language.")
+ """The Latin language."""
+
+ LATVIAN = (1062, "lv-LV", "The Latvian language.")
+ """The Latvian language."""
+
+ LITHUANIAN = (1063, "lt-LT", "The Lithuanian language.")
+ """The Lithuanian language."""
+
+ MACEDONINAN_FYROM = (1071, "mk-MK", "The Macedonian FYROM language.")
+ """The Macedonian FYROM language."""
+
+ MALAY_BRUNEI_DARUSSALAM = (2110, "ms-BN", "The Malay Brunei Darussalam language.")
+ """The Malay Brunei Darussalam language."""
+
+ MALAYALAM = (1100, "ml-IN", "The Malayalam language.")
+ """The Malayalam language."""
+
+ MALAYSIAN = (1086, "ms-MY", "The Malaysian language.")
+ """The Malaysian language."""
+
+ MALTESE = (1082, "mt-MT", "The Maltese language.")
+ """The Maltese language."""
+
+ MANIPURI = (1112, "mni-IN", "The Manipuri language.")
+ """The Manipuri language."""
+
+ MAORI = (1153, "mi-NZ", "The Maori language.")
+ """The Maori language."""
+
+ MARATHI = (1102, "mr-IN", "The Marathi language.")
+ """The Marathi language."""
+
+ MEXICAN_SPANISH = (2058, "es-MX", "The Mexican Spanish language.")
+ """The Mexican Spanish language."""
+
+ MONGOLIAN = (1104, "mn-MN", "The Mongolian language.")
+ """The Mongolian language."""
+
+ NEPALI = (1121, "ne-NP", "The Nepali language.")
+ """The Nepali language."""
+
+ NO_PROOFING = (1024, "en-US", "No proofing.")
+ """No proofing."""
+
+ NORWEGIAN_BOKMOL = (1044, "nb-NO", "The Norwegian Bokmol language.")
+ """The Norwegian Bokmol language."""
+
+ NORWEGIAN_NYNORSK = (2068, "nn-NO", "The Norwegian Nynorsk language.")
+ """The Norwegian Nynorsk language."""
+
+ ORIYA = (1096, "or-IN", "The Oriya language.")
+ """The Oriya language."""
+
+ OROMO = (1138, "om-Ethi-ET", "The Oromo language.")
+ """The Oromo language."""
+
+ PASHTO = (1123, "ps-AF", "The Pashto language.")
+ """The Pashto language."""
+
+ POLISH = (1045, "pl-PL", "The Polish language.")
+ """The Polish language."""
+
+ PORTUGUESE = (2070, "pt-PT", "The Portuguese language.")
+ """The Portuguese language."""
+
+ PUNJABI = (1094, "pa-IN", "The Punjabi language.")
+ """The Punjabi language."""
+
+ QUECHUA_BOLIVIA = (1131, "quz-BO", "The Quechua Bolivia language.")
+ """The Quechua Bolivia language."""
+
+ QUECHUA_ECUADOR = (2155, "quz-EC", "The Quechua Ecuador language.")
+ """The Quechua Ecuador language."""
+
+ QUECHUA_PERU = (3179, "quz-PE", "The Quechua Peru language.")
+ """The Quechua Peru language."""
+
+ RHAETO_ROMANIC = (1047, "rm-CH", "The Rhaeto Romanic language.")
+ """The Rhaeto Romanic language."""
+
+ ROMANIAN = (1048, "ro-RO", "The Romanian language.")
+ """The Romanian language."""
+
+ ROMANIAN_MOLDOVA = (2072, "ro-MO", "The Romanian Moldova language.")
+ """The Romanian Moldova language."""
+
+ RUSSIAN = (1049, "ru-RU", "The Russian language.")
+ """The Russian language."""
+
+ RUSSIAN_MOLDOVA = (2073, "ru-MO", "The Russian Moldova language.")
+ """The Russian Moldova language."""
+
+ SAMI_LAPPISH = (1083, "se-NO", "The Sami Lappish language.")
+ """The Sami Lappish language."""
+
+ SANSKRIT = (1103, "sa-IN", "The Sanskrit language.")
+ """The Sanskrit language."""
+
+ SEPEDI = (1132, "ns-ZA", "The Sepedi language.")
+ """The Sepedi language."""
+
+ SERBIAN_BOSNIA_HERZEGOVINA_CYRILLIC = (
+ 7194,
+ "sr-BA",
+ "The Serbian Bosnia Herzegovina Cyrillic language.",
+ )
+ """The Serbian Bosnia Herzegovina Cyrillic language."""
+
+ SERBIAN_BOSNIA_HERZEGOVINA_LATIN = (
+ 6170,
+ "sr-Latn-BA",
+ "The Serbian Bosnia Herzegovina Latin language.",
+ )
+ """The Serbian Bosnia Herzegovina Latin language."""
+
+ SERBIAN_CYRILLIC = (3098, "sr-SP", "The Serbian Cyrillic language.")
+ """The Serbian Cyrillic language."""
+
+ SERBIAN_LATIN = (2074, "sr-Latn-CS", "The Serbian Latin language.")
+ """The Serbian Latin language."""
+
+ SESOTHO = (1072, "st-ZA", "The Sesotho language.")
+ """The Sesotho language."""
+
+ SIMPLIFIED_CHINESE = (2052, "zh-CN", "The Simplified Chinese language.")
+ """The Simplified Chinese language."""
+
+ SINDHI = (1113, "sd-Deva-IN", "The Sindhi language.")
+ """The Sindhi language."""
+
+ SINDHI_PAKISTAN = (2137, "sd-Arab-PK", "The Sindhi Pakistan language.")
+ """The Sindhi Pakistan language."""
+
+ SINHALESE = (1115, "si-LK", "The Sinhalese language.")
+ """The Sinhalese language."""
+
+ SLOVAK = (1051, "sk-SK", "The Slovak language.")
+ """The Slovak language."""
+
+ SLOVENIAN = (1060, "sl-SI", "The Slovenian language.")
+ """The Slovenian language."""
+
+ SOMALI = (1143, "so-SO", "The Somali language.")
+ """The Somali language."""
+
+ SORBIAN = (1070, "wen-DE", "The Sorbian language.")
+ """The Sorbian language."""
+
+ SPANISH = (1034, "es-ES_tradnl", "The Spanish language.")
+ """The Spanish language."""
+
+ SPANISH_ARGENTINA = (11274, "es-AR", "The Spanish Argentina language.")
+ """The Spanish Argentina language."""
+
+ SPANISH_BOLIVIA = (16394, "es-BO", "The Spanish Bolivia language.")
+ """The Spanish Bolivia language."""
+
+ SPANISH_CHILE = (13322, "es-CL", "The Spanish Chile language.")
+ """The Spanish Chile language."""
+
+ SPANISH_COLOMBIA = (9226, "es-CO", "The Spanish Colombia language.")
+ """The Spanish Colombia language."""
+
+ SPANISH_COSTA_RICA = (5130, "es-CR", "The Spanish Costa Rica language.")
+ """The Spanish Costa Rica language."""
+
+ SPANISH_DOMINICAN_REPUBLIC = (7178, "es-DO", "The Spanish Dominican Republic language.")
+ """The Spanish Dominican Republic language."""
+
+ SPANISH_ECUADOR = (12298, "es-EC", "The Spanish Ecuador language.")
+ """The Spanish Ecuador language."""
+
+ SPANISH_EL_SALVADOR = (17418, "es-SV", "The Spanish El Salvador language.")
+ """The Spanish El Salvador language."""
+
+ SPANISH_GUATEMALA = (4106, "es-GT", "The Spanish Guatemala language.")
+ """The Spanish Guatemala language."""
+
+ SPANISH_HONDURAS = (18442, "es-HN", "The Spanish Honduras language.")
+ """The Spanish Honduras language."""
+
+ SPANISH_MODERN_SORT = (3082, "es-ES", "The Spanish Modern Sort language.")
+ """The Spanish Modern Sort language."""
+
+ SPANISH_NICARAGUA = (19466, "es-NI", "The Spanish Nicaragua language.")
+ """The Spanish Nicaragua language."""
+
+ SPANISH_PANAMA = (6154, "es-PA", "The Spanish Panama language.")
+ """The Spanish Panama language."""
+
+ SPANISH_PARAGUAY = (15370, "es-PY", "The Spanish Paraguay language.")
+ """The Spanish Paraguay language."""
+
+ SPANISH_PERU = (10250, "es-PE", "The Spanish Peru language.")
+ """The Spanish Peru language."""
+
+ SPANISH_PUERTO_RICO = (20490, "es-PR", "The Spanish Puerto Rico language.")
+ """The Spanish Puerto Rico language."""
+
+ SPANISH_URUGUAY = (14346, "es-UR", "The Spanish Uruguay language.")
+ """The Spanish Uruguay language."""
+
+ SPANISH_VENEZUELA = (8202, "es-VE", "The Spanish Venezuela language.")
+ """The Spanish Venezuela language."""
+
+ SUTU = (1072, "st-ZA", "The Sutu language.")
+ """The Sutu language."""
+
+ SWAHILI = (1089, "sw-KE", "The Swahili language.")
+ """The Swahili language."""
+
+ SWEDISH = (1053, "sv-SE", "The Swedish language.")
+ """The Swedish language."""
+
+ SWEDISH_FINLAND = (2077, "sv-FI", "The Swedish Finland language.")
+ """The Swedish Finland language."""
+
+ SWISS_FRENCH = (4108, "fr-CH", "The Swiss French language.")
+ """The Swiss French language."""
+
+ SWISS_GERMAN = (2055, "de-CH", "The Swiss German language.")
+ """The Swiss German language."""
+
+ SWISS_ITALIAN = (2064, "it-CH", "The Swiss Italian language.")
+ """The Swiss Italian language."""
+
+ SYRIAC = (1114, "syr-SY", "The Syriac language.")
+ """The Syriac language."""
+
+ TAJIK = (1064, "tg-TJ", "The Tajik language.")
+ """The Tajik language."""
+
+ TAMAZIGHT = (1119, "tzm-Arab-MA", "The Tamazight language.")
+ """The Tamazight language."""
+
+ TAMAZIGHT_LATIN = (2143, "tmz-DZ", "The Tamazight Latin language.")
+ """The Tamazight Latin language."""
+
+ TAMIL = (1097, "ta-IN", "The Tamil language.")
+ """The Tamil language."""
+
+ TATAR = (1092, "tt-RU", "The Tatar language.")
+ """The Tatar language."""
+
+ TELUGU = (1098, "te-IN", "The Telugu language.")
+ """The Telugu language."""
+
+ THAI = (1054, "th-TH", "The Thai language.")
+ """The Thai language."""
+
+ TIBETAN = (1105, "bo-CN", "The Tibetan language.")
+ """The Tibetan language."""
+
+ TIGRIGNA_ERITREA = (2163, "ti-ER", "The Tigrigna Eritrea language.")
+ """The Tigrigna Eritrea language."""
+
+ TIGRIGNA_ETHIOPIC = (1139, "ti-ET", "The Tigrigna Ethiopic language.")
+ """The Tigrigna Ethiopic language."""
+
+ TRADITIONAL_CHINESE = (1028, "zh-TW", "The Traditional Chinese language.")
+ """The Traditional Chinese language."""
+
+ TSONGA = (1073, "ts-ZA", "The Tsonga language.")
+ """The Tsonga language."""
+
+ TSWANA = (1074, "tn-ZA", "The Tswana language.")
+ """The Tswana language."""
+
+ TURKISH = (1055, "tr-TR", "The Turkish language.")
+ """The Turkish language."""
+
+ TURKMEN = (1090, "tk-TM", "The Turkmen language.")
+ """The Turkmen language."""
+
+ UKRAINIAN = (1058, "uk-UA", "The Ukrainian language.")
+ """The Ukrainian language."""
+
+ URDU = (1056, "ur-PK", "The Urdu language.")
+ """The Urdu language."""
+
+ UZBEK_CYRILLIC = (2115, "uz-UZ", "The Uzbek Cyrillic language.")
+ """The Uzbek Cyrillic language."""
+
+ UZBEK_LATIN = (1091, "uz-Latn-UZ", "The Uzbek Latin language.")
+ """The Uzbek Latin language."""
+
+ VENDA = (1075, "ve-ZA", "The Venda language.")
+ """The Venda language."""
+
+ VIETNAMESE = (1066, "vi-VN", "The Vietnamese language.")
+ """The Vietnamese language."""
+
+ WELSH = (1106, "cy-GB", "The Welsh language.")
+ """The Welsh language."""
+
+ XHOSA = (1076, "xh-ZA", "The Xhosa language.")
+ """The Xhosa language."""
+
+ YI = (1144, "ii-CN", "The Yi language.")
+ """The Yi language."""
+
+ YIDDISH = (1085, "yi-Hebr", "The Yiddish language.")
+ """The Yiddish language."""
+
+ YORUBA = (1130, "yo-NG", "The Yoruba language.")
+ """The Yoruba language."""
+
+ ZULU = (1077, "zu-ZA", "The Zulu language.")
+ """The Zulu language."""
+
+ MIXED = (-2, "", "More than one language in specified range (read-only).")
+ """More than one language in specified range (read-only)."""
diff --git a/.venv/lib/python3.12/site-packages/pptx/enum/shapes.py b/.venv/lib/python3.12/site-packages/pptx/enum/shapes.py
new file mode 100644
index 00000000..86f521f4
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/pptx/enum/shapes.py
@@ -0,0 +1,1029 @@
+"""Enumerations used by shapes and related objects."""
+
+from __future__ import annotations
+
+import enum
+
+from pptx.enum.base import BaseEnum, BaseXmlEnum
+
+
+class MSO_AUTO_SHAPE_TYPE(BaseXmlEnum):
+ """Specifies a type of AutoShape, e.g. DOWN_ARROW.
+
+ Alias: ``MSO_SHAPE``
+
+ Example::
+
+ from pptx.enum.shapes import MSO_SHAPE
+ from pptx.util import Inches
+
+ left = top = width = height = Inches(1.0)
+ slide.shapes.add_shape(
+ MSO_SHAPE.ROUNDED_RECTANGLE, left, top, width, height
+ )
+
+ MS API Name: `MsoAutoShapeType`
+
+ https://learn.microsoft.com/en-us/office/vba/api/Office.MsoAutoShapeType
+ """
+
+ ACTION_BUTTON_BACK_OR_PREVIOUS = (
+ 129,
+ "actionButtonBackPrevious",
+ "Back or Previous button. Supports mouse-click and mouse-over actions",
+ )
+ """Back or Previous button. Supports mouse-click and mouse-over actions"""
+
+ ACTION_BUTTON_BEGINNING = (
+ 131,
+ "actionButtonBeginning",
+ "Beginning button. Supports mouse-click and mouse-over actions",
+ )
+ """Beginning button. Supports mouse-click and mouse-over actions"""
+
+ ACTION_BUTTON_CUSTOM = (
+ 125,
+ "actionButtonBlank",
+ "Button with no default picture or text. Supports mouse-click and mouse-over actions",
+ )
+ """Button with no default picture or text. Supports mouse-click and mouse-over actions"""
+
+ ACTION_BUTTON_DOCUMENT = (
+ 134,
+ "actionButtonDocument",
+ "Document button. Supports mouse-click and mouse-over actions",
+ )
+ """Document button. Supports mouse-click and mouse-over actions"""
+
+ ACTION_BUTTON_END = (
+ 132,
+ "actionButtonEnd",
+ "End button. Supports mouse-click and mouse-over actions",
+ )
+ """End button. Supports mouse-click and mouse-over actions"""
+
+ ACTION_BUTTON_FORWARD_OR_NEXT = (
+ 130,
+ "actionButtonForwardNext",
+ "Forward or Next button. Supports mouse-click and mouse-over actions",
+ )
+ """Forward or Next button. Supports mouse-click and mouse-over actions"""
+
+ ACTION_BUTTON_HELP = (
+ 127,
+ "actionButtonHelp",
+ "Help button. Supports mouse-click and mouse-over actions",
+ )
+ """Help button. Supports mouse-click and mouse-over actions"""
+
+ ACTION_BUTTON_HOME = (
+ 126,
+ "actionButtonHome",
+ "Home button. Supports mouse-click and mouse-over actions",
+ )
+ """Home button. Supports mouse-click and mouse-over actions"""
+
+ ACTION_BUTTON_INFORMATION = (
+ 128,
+ "actionButtonInformation",
+ "Information button. Supports mouse-click and mouse-over actions",
+ )
+ """Information button. Supports mouse-click and mouse-over actions"""
+
+ ACTION_BUTTON_MOVIE = (
+ 136,
+ "actionButtonMovie",
+ "Movie button. Supports mouse-click and mouse-over actions",
+ )
+ """Movie button. Supports mouse-click and mouse-over actions"""
+
+ ACTION_BUTTON_RETURN = (
+ 133,
+ "actionButtonReturn",
+ "Return button. Supports mouse-click and mouse-over actions",
+ )
+ """Return button. Supports mouse-click and mouse-over actions"""
+
+ ACTION_BUTTON_SOUND = (
+ 135,
+ "actionButtonSound",
+ "Sound button. Supports mouse-click and mouse-over actions",
+ )
+ """Sound button. Supports mouse-click and mouse-over actions"""
+
+ ARC = (25, "arc", "Arc")
+ """Arc"""
+
+ BALLOON = (137, "wedgeRoundRectCallout", "Rounded Rectangular Callout")
+ """Rounded Rectangular Callout"""
+
+ BENT_ARROW = (41, "bentArrow", "Block arrow that follows a curved 90-degree angle")
+ """Block arrow that follows a curved 90-degree angle"""
+
+ BENT_UP_ARROW = (
+ 44,
+ "bentUpArrow",
+ "Block arrow that follows a sharp 90-degree angle. Points up by default",
+ )
+ """Block arrow that follows a sharp 90-degree angle. Points up by default"""
+
+ BEVEL = (15, "bevel", "Bevel")
+ """Bevel"""
+
+ BLOCK_ARC = (20, "blockArc", "Block arc")
+ """Block arc"""
+
+ CAN = (13, "can", "Can")
+ """Can"""
+
+ CHART_PLUS = (182, "chartPlus", "Chart Plus")
+ """Chart Plus"""
+
+ CHART_STAR = (181, "chartStar", "Chart Star")
+ """Chart Star"""
+
+ CHART_X = (180, "chartX", "Chart X")
+ """Chart X"""
+
+ CHEVRON = (52, "chevron", "Chevron")
+ """Chevron"""
+
+ CHORD = (161, "chord", "Geometric chord shape")
+ """Geometric chord shape"""
+
+ CIRCULAR_ARROW = (60, "circularArrow", "Block arrow that follows a curved 180-degree angle")
+ """Block arrow that follows a curved 180-degree angle"""
+
+ CLOUD = (179, "cloud", "Cloud")
+ """Cloud"""
+
+ CLOUD_CALLOUT = (108, "cloudCallout", "Cloud callout")
+ """Cloud callout"""
+
+ CORNER = (162, "corner", "Corner")
+ """Corner"""
+
+ CORNER_TABS = (169, "cornerTabs", "Corner Tabs")
+ """Corner Tabs"""
+
+ CROSS = (11, "plus", "Cross")
+ """Cross"""
+
+ CUBE = (14, "cube", "Cube")
+ """Cube"""
+
+ CURVED_DOWN_ARROW = (48, "curvedDownArrow", "Block arrow that curves down")
+ """Block arrow that curves down"""
+
+ CURVED_DOWN_RIBBON = (100, "ellipseRibbon", "Ribbon banner that curves down")
+ """Ribbon banner that curves down"""
+
+ CURVED_LEFT_ARROW = (46, "curvedLeftArrow", "Block arrow that curves left")
+ """Block arrow that curves left"""
+
+ CURVED_RIGHT_ARROW = (45, "curvedRightArrow", "Block arrow that curves right")
+ """Block arrow that curves right"""
+
+ CURVED_UP_ARROW = (47, "curvedUpArrow", "Block arrow that curves up")
+ """Block arrow that curves up"""
+
+ CURVED_UP_RIBBON = (99, "ellipseRibbon2", "Ribbon banner that curves up")
+ """Ribbon banner that curves up"""
+
+ DECAGON = (144, "decagon", "Decagon")
+ """Decagon"""
+
+ DIAGONAL_STRIPE = (141, "diagStripe", "Diagonal Stripe")
+ """Diagonal Stripe"""
+
+ DIAMOND = (4, "diamond", "Diamond")
+ """Diamond"""
+
+ DODECAGON = (146, "dodecagon", "Dodecagon")
+ """Dodecagon"""
+
+ DONUT = (18, "donut", "Donut")
+ """Donut"""
+
+ DOUBLE_BRACE = (27, "bracePair", "Double brace")
+ """Double brace"""
+
+ DOUBLE_BRACKET = (26, "bracketPair", "Double bracket")
+ """Double bracket"""
+
+ DOUBLE_WAVE = (104, "doubleWave", "Double wave")
+ """Double wave"""
+
+ DOWN_ARROW = (36, "downArrow", "Block arrow that points down")
+ """Block arrow that points down"""
+
+ DOWN_ARROW_CALLOUT = (56, "downArrowCallout", "Callout with arrow that points down")
+ """Callout with arrow that points down"""
+
+ DOWN_RIBBON = (98, "ribbon", "Ribbon banner with center area below ribbon ends")
+ """Ribbon banner with center area below ribbon ends"""
+
+ EXPLOSION1 = (89, "irregularSeal1", "Explosion")
+ """Explosion"""
+
+ EXPLOSION2 = (90, "irregularSeal2", "Explosion")
+ """Explosion"""
+
+ FLOWCHART_ALTERNATE_PROCESS = (
+ 62,
+ "flowChartAlternateProcess",
+ "Alternate process flowchart symbol",
+ )
+ """Alternate process flowchart symbol"""
+
+ FLOWCHART_CARD = (75, "flowChartPunchedCard", "Card flowchart symbol")
+ """Card flowchart symbol"""
+
+ FLOWCHART_COLLATE = (79, "flowChartCollate", "Collate flowchart symbol")
+ """Collate flowchart symbol"""
+
+ FLOWCHART_CONNECTOR = (73, "flowChartConnector", "Connector flowchart symbol")
+ """Connector flowchart symbol"""
+
+ FLOWCHART_DATA = (64, "flowChartInputOutput", "Data flowchart symbol")
+ """Data flowchart symbol"""
+
+ FLOWCHART_DECISION = (63, "flowChartDecision", "Decision flowchart symbol")
+ """Decision flowchart symbol"""
+
+ FLOWCHART_DELAY = (84, "flowChartDelay", "Delay flowchart symbol")
+ """Delay flowchart symbol"""
+
+ FLOWCHART_DIRECT_ACCESS_STORAGE = (
+ 87,
+ "flowChartMagneticDrum",
+ "Direct access storage flowchart symbol",
+ )
+ """Direct access storage flowchart symbol"""
+
+ FLOWCHART_DISPLAY = (88, "flowChartDisplay", "Display flowchart symbol")
+ """Display flowchart symbol"""
+
+ FLOWCHART_DOCUMENT = (67, "flowChartDocument", "Document flowchart symbol")
+ """Document flowchart symbol"""
+
+ FLOWCHART_EXTRACT = (81, "flowChartExtract", "Extract flowchart symbol")
+ """Extract flowchart symbol"""
+
+ FLOWCHART_INTERNAL_STORAGE = (
+ 66,
+ "flowChartInternalStorage",
+ "Internal storage flowchart symbol",
+ )
+ """Internal storage flowchart symbol"""
+
+ FLOWCHART_MAGNETIC_DISK = (86, "flowChartMagneticDisk", "Magnetic disk flowchart symbol")
+ """Magnetic disk flowchart symbol"""
+
+ FLOWCHART_MANUAL_INPUT = (71, "flowChartManualInput", "Manual input flowchart symbol")
+ """Manual input flowchart symbol"""
+
+ FLOWCHART_MANUAL_OPERATION = (
+ 72,
+ "flowChartManualOperation",
+ "Manual operation flowchart symbol",
+ )
+ """Manual operation flowchart symbol"""
+
+ FLOWCHART_MERGE = (82, "flowChartMerge", "Merge flowchart symbol")
+ """Merge flowchart symbol"""
+
+ FLOWCHART_MULTIDOCUMENT = (68, "flowChartMultidocument", "Multi-document flowchart symbol")
+ """Multi-document flowchart symbol"""
+
+ FLOWCHART_OFFLINE_STORAGE = (139, "flowChartOfflineStorage", "Offline Storage")
+ """Offline Storage"""
+
+ FLOWCHART_OFFPAGE_CONNECTOR = (
+ 74,
+ "flowChartOffpageConnector",
+ "Off-page connector flowchart symbol",
+ )
+ """Off-page connector flowchart symbol"""
+
+ FLOWCHART_OR = (78, "flowChartOr", '"Or" flowchart symbol')
+ """\"Or\" flowchart symbol"""
+
+ FLOWCHART_PREDEFINED_PROCESS = (
+ 65,
+ "flowChartPredefinedProcess",
+ "Predefined process flowchart symbol",
+ )
+ """Predefined process flowchart symbol"""
+
+ FLOWCHART_PREPARATION = (70, "flowChartPreparation", "Preparation flowchart symbol")
+ """Preparation flowchart symbol"""
+
+ FLOWCHART_PROCESS = (61, "flowChartProcess", "Process flowchart symbol")
+ """Process flowchart symbol"""
+
+ FLOWCHART_PUNCHED_TAPE = (76, "flowChartPunchedTape", "Punched tape flowchart symbol")
+ """Punched tape flowchart symbol"""
+
+ FLOWCHART_SEQUENTIAL_ACCESS_STORAGE = (
+ 85,
+ "flowChartMagneticTape",
+ "Sequential access storage flowchart symbol",
+ )
+ """Sequential access storage flowchart symbol"""
+
+ FLOWCHART_SORT = (80, "flowChartSort", "Sort flowchart symbol")
+ """Sort flowchart symbol"""
+
+ FLOWCHART_STORED_DATA = (83, "flowChartOnlineStorage", "Stored data flowchart symbol")
+ """Stored data flowchart symbol"""
+
+ FLOWCHART_SUMMING_JUNCTION = (
+ 77,
+ "flowChartSummingJunction",
+ "Summing junction flowchart symbol",
+ )
+ """Summing junction flowchart symbol"""
+
+ FLOWCHART_TERMINATOR = (69, "flowChartTerminator", "Terminator flowchart symbol")
+ """Terminator flowchart symbol"""
+
+ FOLDED_CORNER = (16, "foldedCorner", "Folded corner")
+ """Folded corner"""
+
+ FRAME = (158, "frame", "Frame")
+ """Frame"""
+
+ FUNNEL = (174, "funnel", "Funnel")
+ """Funnel"""
+
+ GEAR_6 = (172, "gear6", "Gear 6")
+ """Gear 6"""
+
+ GEAR_9 = (173, "gear9", "Gear 9")
+ """Gear 9"""
+
+ HALF_FRAME = (159, "halfFrame", "Half Frame")
+ """Half Frame"""
+
+ HEART = (21, "heart", "Heart")
+ """Heart"""
+
+ HEPTAGON = (145, "heptagon", "Heptagon")
+ """Heptagon"""
+
+ HEXAGON = (10, "hexagon", "Hexagon")
+ """Hexagon"""
+
+ HORIZONTAL_SCROLL = (102, "horizontalScroll", "Horizontal scroll")
+ """Horizontal scroll"""
+
+ ISOSCELES_TRIANGLE = (7, "triangle", "Isosceles triangle")
+ """Isosceles triangle"""
+
+ LEFT_ARROW = (34, "leftArrow", "Block arrow that points left")
+ """Block arrow that points left"""
+
+ LEFT_ARROW_CALLOUT = (54, "leftArrowCallout", "Callout with arrow that points left")
+ """Callout with arrow that points left"""
+
+ LEFT_BRACE = (31, "leftBrace", "Left brace")
+ """Left brace"""
+
+ LEFT_BRACKET = (29, "leftBracket", "Left bracket")
+ """Left bracket"""
+
+ LEFT_CIRCULAR_ARROW = (176, "leftCircularArrow", "Left Circular Arrow")
+ """Left Circular Arrow"""
+
+ LEFT_RIGHT_ARROW = (
+ 37,
+ "leftRightArrow",
+ "Block arrow with arrowheads that point both left and right",
+ )
+ """Block arrow with arrowheads that point both left and right"""
+
+ LEFT_RIGHT_ARROW_CALLOUT = (
+ 57,
+ "leftRightArrowCallout",
+ "Callout with arrowheads that point both left and right",
+ )
+ """Callout with arrowheads that point both left and right"""
+
+ LEFT_RIGHT_CIRCULAR_ARROW = (177, "leftRightCircularArrow", "Left Right Circular Arrow")
+ """Left Right Circular Arrow"""
+
+ LEFT_RIGHT_RIBBON = (140, "leftRightRibbon", "Left Right Ribbon")
+ """Left Right Ribbon"""
+
+ LEFT_RIGHT_UP_ARROW = (
+ 40,
+ "leftRightUpArrow",
+ "Block arrow with arrowheads that point left, right, and up",
+ )
+ """Block arrow with arrowheads that point left, right, and up"""
+
+ LEFT_UP_ARROW = (43, "leftUpArrow", "Block arrow with arrowheads that point left and up")
+ """Block arrow with arrowheads that point left and up"""
+
+ LIGHTNING_BOLT = (22, "lightningBolt", "Lightning bolt")
+ """Lightning bolt"""
+
+ LINE_CALLOUT_1 = (109, "borderCallout1", "Callout with border and horizontal callout line")
+ """Callout with border and horizontal callout line"""
+
+ LINE_CALLOUT_1_ACCENT_BAR = (113, "accentCallout1", "Callout with vertical accent bar")
+ """Callout with vertical accent bar"""
+
+ LINE_CALLOUT_1_BORDER_AND_ACCENT_BAR = (
+ 121,
+ "accentBorderCallout1",
+ "Callout with border and vertical accent bar",
+ )
+ """Callout with border and vertical accent bar"""
+
+ LINE_CALLOUT_1_NO_BORDER = (117, "callout1", "Callout with horizontal line")
+ """Callout with horizontal line"""
+
+ LINE_CALLOUT_2 = (110, "borderCallout2", "Callout with diagonal straight line")
+ """Callout with diagonal straight line"""
+
+ LINE_CALLOUT_2_ACCENT_BAR = (
+ 114,
+ "accentCallout2",
+ "Callout with diagonal callout line and accent bar",
+ )
+ """Callout with diagonal callout line and accent bar"""
+
+ LINE_CALLOUT_2_BORDER_AND_ACCENT_BAR = (
+ 122,
+ "accentBorderCallout2",
+ "Callout with border, diagonal straight line, and accent bar",
+ )
+ """Callout with border, diagonal straight line, and accent bar"""
+
+ LINE_CALLOUT_2_NO_BORDER = (118, "callout2", "Callout with no border and diagonal callout line")
+ """Callout with no border and diagonal callout line"""
+
+ LINE_CALLOUT_3 = (111, "borderCallout3", "Callout with angled line")
+ """Callout with angled line"""
+
+ LINE_CALLOUT_3_ACCENT_BAR = (
+ 115,
+ "accentCallout3",
+ "Callout with angled callout line and accent bar",
+ )
+ """Callout with angled callout line and accent bar"""
+
+ LINE_CALLOUT_3_BORDER_AND_ACCENT_BAR = (
+ 123,
+ "accentBorderCallout3",
+ "Callout with border, angled callout line, and accent bar",
+ )
+ """Callout with border, angled callout line, and accent bar"""
+
+ LINE_CALLOUT_3_NO_BORDER = (119, "callout3", "Callout with no border and angled callout line")
+ """Callout with no border and angled callout line"""
+
+ LINE_CALLOUT_4 = (
+ 112,
+ "borderCallout3",
+ "Callout with callout line segments forming a U-shape.",
+ )
+ """Callout with callout line segments forming a U-shape."""
+
+ LINE_CALLOUT_4_ACCENT_BAR = (
+ 116,
+ "accentCallout3",
+ "Callout with accent bar and callout line segments forming a U-shape.",
+ )
+ """Callout with accent bar and callout line segments forming a U-shape."""
+
+ LINE_CALLOUT_4_BORDER_AND_ACCENT_BAR = (
+ 124,
+ "accentBorderCallout3",
+ "Callout with border, accent bar, and callout line segments forming a U-shape.",
+ )
+ """Callout with border, accent bar, and callout line segments forming a U-shape."""
+
+ LINE_CALLOUT_4_NO_BORDER = (
+ 120,
+ "callout3",
+ "Callout with no border and callout line segments forming a U-shape.",
+ )
+ """Callout with no border and callout line segments forming a U-shape."""
+
+ LINE_INVERSE = (183, "lineInv", "Straight Connector")
+ """Straight Connector"""
+
+ MATH_DIVIDE = (166, "mathDivide", "Division")
+ """Division"""
+
+ MATH_EQUAL = (167, "mathEqual", "Equal")
+ """Equal"""
+
+ MATH_MINUS = (164, "mathMinus", "Minus")
+ """Minus"""
+
+ MATH_MULTIPLY = (165, "mathMultiply", "Multiply")
+ """Multiply"""
+
+ MATH_NOT_EQUAL = (168, "mathNotEqual", "Not Equal")
+ """Not Equal"""
+
+ MATH_PLUS = (163, "mathPlus", "Plus")
+ """Plus"""
+
+ MOON = (24, "moon", "Moon")
+ """Moon"""
+
+ NON_ISOSCELES_TRAPEZOID = (143, "nonIsoscelesTrapezoid", "Non-isosceles Trapezoid")
+ """Non-isosceles Trapezoid"""
+
+ NOTCHED_RIGHT_ARROW = (50, "notchedRightArrow", "Notched block arrow that points right")
+ """Notched block arrow that points right"""
+
+ NO_SYMBOL = (19, "noSmoking", "'No' Symbol")
+ """'No' Symbol"""
+
+ OCTAGON = (6, "octagon", "Octagon")
+ """Octagon"""
+
+ OVAL = (9, "ellipse", "Oval")
+ """Oval"""
+
+ OVAL_CALLOUT = (107, "wedgeEllipseCallout", "Oval-shaped callout")
+ """Oval-shaped callout"""
+
+ PARALLELOGRAM = (2, "parallelogram", "Parallelogram")
+ """Parallelogram"""
+
+ PENTAGON = (51, "homePlate", "Pentagon")
+ """Pentagon"""
+
+ PIE = (142, "pie", "Pie")
+ """Pie"""
+
+ PIE_WEDGE = (175, "pieWedge", "Pie")
+ """Pie"""
+
+ PLAQUE = (28, "plaque", "Plaque")
+ """Plaque"""
+
+ PLAQUE_TABS = (171, "plaqueTabs", "Plaque Tabs")
+ """Plaque Tabs"""
+
+ QUAD_ARROW = (39, "quadArrow", "Block arrows that point up, down, left, and right")
+ """Block arrows that point up, down, left, and right"""
+
+ QUAD_ARROW_CALLOUT = (
+ 59,
+ "quadArrowCallout",
+ "Callout with arrows that point up, down, left, and right",
+ )
+ """Callout with arrows that point up, down, left, and right"""
+
+ RECTANGLE = (1, "rect", "Rectangle")
+ """Rectangle"""
+
+ RECTANGULAR_CALLOUT = (105, "wedgeRectCallout", "Rectangular callout")
+ """Rectangular callout"""
+
+ REGULAR_PENTAGON = (12, "pentagon", "Pentagon")
+ """Pentagon"""
+
+ RIGHT_ARROW = (33, "rightArrow", "Block arrow that points right")
+ """Block arrow that points right"""
+
+ RIGHT_ARROW_CALLOUT = (53, "rightArrowCallout", "Callout with arrow that points right")
+ """Callout with arrow that points right"""
+
+ RIGHT_BRACE = (32, "rightBrace", "Right brace")
+ """Right brace"""
+
+ RIGHT_BRACKET = (30, "rightBracket", "Right bracket")
+ """Right bracket"""
+
+ RIGHT_TRIANGLE = (8, "rtTriangle", "Right triangle")
+ """Right triangle"""
+
+ ROUNDED_RECTANGLE = (5, "roundRect", "Rounded rectangle")
+ """Rounded rectangle"""
+
+ ROUNDED_RECTANGULAR_CALLOUT = (106, "wedgeRoundRectCallout", "Rounded rectangle-shaped callout")
+ """Rounded rectangle-shaped callout"""
+
+ ROUND_1_RECTANGLE = (151, "round1Rect", "Round Single Corner Rectangle")
+ """Round Single Corner Rectangle"""
+
+ ROUND_2_DIAG_RECTANGLE = (153, "round2DiagRect", "Round Diagonal Corner Rectangle")
+ """Round Diagonal Corner Rectangle"""
+
+ ROUND_2_SAME_RECTANGLE = (152, "round2SameRect", "Round Same Side Corner Rectangle")
+ """Round Same Side Corner Rectangle"""
+
+ SMILEY_FACE = (17, "smileyFace", "Smiley face")
+ """Smiley face"""
+
+ SNIP_1_RECTANGLE = (155, "snip1Rect", "Snip Single Corner Rectangle")
+ """Snip Single Corner Rectangle"""
+
+ SNIP_2_DIAG_RECTANGLE = (157, "snip2DiagRect", "Snip Diagonal Corner Rectangle")
+ """Snip Diagonal Corner Rectangle"""
+
+ SNIP_2_SAME_RECTANGLE = (156, "snip2SameRect", "Snip Same Side Corner Rectangle")
+ """Snip Same Side Corner Rectangle"""
+
+ SNIP_ROUND_RECTANGLE = (154, "snipRoundRect", "Snip and Round Single Corner Rectangle")
+ """Snip and Round Single Corner Rectangle"""
+
+ SQUARE_TABS = (170, "squareTabs", "Square Tabs")
+ """Square Tabs"""
+
+ STAR_10_POINT = (149, "star10", "10-Point Star")
+ """10-Point Star"""
+
+ STAR_12_POINT = (150, "star12", "12-Point Star")
+ """12-Point Star"""
+
+ STAR_16_POINT = (94, "star16", "16-point star")
+ """16-point star"""
+
+ STAR_24_POINT = (95, "star24", "24-point star")
+ """24-point star"""
+
+ STAR_32_POINT = (96, "star32", "32-point star")
+ """32-point star"""
+
+ STAR_4_POINT = (91, "star4", "4-point star")
+ """4-point star"""
+
+ STAR_5_POINT = (92, "star5", "5-point star")
+ """5-point star"""
+
+ STAR_6_POINT = (147, "star6", "6-Point Star")
+ """6-Point Star"""
+
+ STAR_7_POINT = (148, "star7", "7-Point Star")
+ """7-Point Star"""
+
+ STAR_8_POINT = (93, "star8", "8-point star")
+ """8-point star"""
+
+ STRIPED_RIGHT_ARROW = (
+ 49,
+ "stripedRightArrow",
+ "Block arrow that points right with stripes at the tail",
+ )
+ """Block arrow that points right with stripes at the tail"""
+
+ SUN = (23, "sun", "Sun")
+ """Sun"""
+
+ SWOOSH_ARROW = (178, "swooshArrow", "Swoosh Arrow")
+ """Swoosh Arrow"""
+
+ TEAR = (160, "teardrop", "Teardrop")
+ """Teardrop"""
+
+ TRAPEZOID = (3, "trapezoid", "Trapezoid")
+ """Trapezoid"""
+
+ UP_ARROW = (35, "upArrow", "Block arrow that points up")
+ """Block arrow that points up"""
+
+ UP_ARROW_CALLOUT = (55, "upArrowCallout", "Callout with arrow that points up")
+ """Callout with arrow that points up"""
+
+ UP_DOWN_ARROW = (38, "upDownArrow", "Block arrow that points up and down")
+ """Block arrow that points up and down"""
+
+ UP_DOWN_ARROW_CALLOUT = (58, "upDownArrowCallout", "Callout with arrows that point up and down")
+ """Callout with arrows that point up and down"""
+
+ UP_RIBBON = (97, "ribbon2", "Ribbon banner with center area above ribbon ends")
+ """Ribbon banner with center area above ribbon ends"""
+
+ U_TURN_ARROW = (42, "uturnArrow", "Block arrow forming a U shape")
+ """Block arrow forming a U shape"""
+
+ VERTICAL_SCROLL = (101, "verticalScroll", "Vertical scroll")
+ """Vertical scroll"""
+
+ WAVE = (103, "wave", "Wave")
+ """Wave"""
+
+
+MSO_SHAPE = MSO_AUTO_SHAPE_TYPE
+
+
+class MSO_CONNECTOR_TYPE(BaseXmlEnum):
+ """
+ Specifies a type of connector.
+
+ Alias: ``MSO_CONNECTOR``
+
+ Example::
+
+ from pptx.enum.shapes import MSO_CONNECTOR
+ from pptx.util import Cm
+
+ shapes = prs.slides[0].shapes
+ connector = shapes.add_connector(
+ MSO_CONNECTOR.STRAIGHT, Cm(2), Cm(2), Cm(10), Cm(10)
+ )
+ assert connector.left.cm == 2
+
+ MS API Name: `MsoConnectorType`
+
+ http://msdn.microsoft.com/en-us/library/office/ff860918.aspx
+ """
+
+ CURVE = (3, "curvedConnector3", "Curved connector.")
+ """Curved connector."""
+
+ ELBOW = (2, "bentConnector3", "Elbow connector.")
+ """Elbow connector."""
+
+ STRAIGHT = (1, "line", "Straight line connector.")
+ """Straight line connector."""
+
+ MIXED = (-2, "", "Return value only; indicates a combination of other states.")
+ """Return value only; indicates a combination of other states."""
+
+
+MSO_CONNECTOR = MSO_CONNECTOR_TYPE
+
+
+class MSO_SHAPE_TYPE(BaseEnum):
+ """Specifies the type of a shape, more specifically than the five base types.
+
+ Alias: ``MSO``
+
+ Example::
+
+ from pptx.enum.shapes import MSO_SHAPE_TYPE
+
+ assert shape.type == MSO_SHAPE_TYPE.PICTURE
+
+ MS API Name: `MsoShapeType`
+
+ http://msdn.microsoft.com/en-us/library/office/ff860759(v=office.15).aspx
+ """
+
+ AUTO_SHAPE = (1, "AutoShape")
+ """AutoShape"""
+
+ CALLOUT = (2, "Callout shape")
+ """Callout shape"""
+
+ CANVAS = (20, "Drawing canvas")
+ """Drawing canvas"""
+
+ CHART = (3, "Chart, e.g. pie chart, bar chart")
+ """Chart, e.g. pie chart, bar chart"""
+
+ COMMENT = (4, "Comment")
+ """Comment"""
+
+ DIAGRAM = (21, "Diagram")
+ """Diagram"""
+
+ EMBEDDED_OLE_OBJECT = (7, "Embedded OLE object")
+ """Embedded OLE object"""
+
+ FORM_CONTROL = (8, "Form control")
+ """Form control"""
+
+ FREEFORM = (5, "Freeform")
+ """Freeform"""
+
+ GROUP = (6, "Group shape")
+ """Group shape"""
+
+ IGX_GRAPHIC = (24, "SmartArt graphic")
+ """SmartArt graphic"""
+
+ INK = (22, "Ink")
+ """Ink"""
+
+ INK_COMMENT = (23, "Ink Comment")
+ """Ink Comment"""
+
+ LINE = (9, "Line")
+ """Line"""
+
+ LINKED_OLE_OBJECT = (10, "Linked OLE object")
+ """Linked OLE object"""
+
+ LINKED_PICTURE = (11, "Linked picture")
+ """Linked picture"""
+
+ MEDIA = (16, "Media")
+ """Media"""
+
+ OLE_CONTROL_OBJECT = (12, "OLE control object")
+ """OLE control object"""
+
+ PICTURE = (13, "Picture")
+ """Picture"""
+
+ PLACEHOLDER = (14, "Placeholder")
+ """Placeholder"""
+
+ SCRIPT_ANCHOR = (18, "Script anchor")
+ """Script anchor"""
+
+ TABLE = (19, "Table")
+ """Table"""
+
+ TEXT_BOX = (17, "Text box")
+ """Text box"""
+
+ TEXT_EFFECT = (15, "Text effect")
+ """Text effect"""
+
+ WEB_VIDEO = (26, "Web video")
+ """Web video"""
+
+ MIXED = (-2, "Multiple shape types (read-only).")
+ """Multiple shape types (read-only)."""
+
+
+MSO = MSO_SHAPE_TYPE
+
+
+class PP_MEDIA_TYPE(BaseEnum):
+ """Indicates the OLE media type.
+
+ Example::
+
+ from pptx.enum.shapes import PP_MEDIA_TYPE
+
+ movie = slide.shapes[0]
+ assert movie.media_type == PP_MEDIA_TYPE.MOVIE
+
+ MS API Name: `PpMediaType`
+
+ https://msdn.microsoft.com/en-us/library/office/ff746008.aspx
+ """
+
+ MOVIE = (3, "Video media such as MP4.")
+ """Video media such as MP4."""
+
+ OTHER = (1, "Other media types")
+ """Other media types"""
+
+ SOUND = (1, "Audio media such as MP3.")
+ """Audio media such as MP3."""
+
+ MIXED = (
+ -2,
+ "Return value only; indicates multiple media types, typically for a collection of shapes."
+ " May not be applicable in python-pptx.",
+ )
+ """Return value only; indicates multiple media types.
+
+ Typically for a collection of shapes. May not be applicable in python-pptx.
+ """
+
+
+class PP_PLACEHOLDER_TYPE(BaseXmlEnum):
+ """Specifies one of the 18 distinct types of placeholder.
+
+ Alias: ``PP_PLACEHOLDER``
+
+ Example::
+
+ from pptx.enum.shapes import PP_PLACEHOLDER
+
+ placeholder = slide.placeholders[0]
+ assert placeholder.type == PP_PLACEHOLDER.TITLE
+
+ MS API name: `PpPlaceholderType`
+
+ http://msdn.microsoft.com/en-us/library/office/ff860759(v=office.15 ").aspx"
+ """
+
+ BITMAP = (9, "clipArt", "Clip art placeholder")
+ """Clip art placeholder"""
+
+ BODY = (2, "body", "Body")
+ """Body"""
+
+ CENTER_TITLE = (3, "ctrTitle", "Center Title")
+ """Center Title"""
+
+ CHART = (8, "chart", "Chart")
+ """Chart"""
+
+ DATE = (16, "dt", "Date")
+ """Date"""
+
+ FOOTER = (15, "ftr", "Footer")
+ """Footer"""
+
+ HEADER = (14, "hdr", "Header")
+ """Header"""
+
+ MEDIA_CLIP = (10, "media", "Media Clip")
+ """Media Clip"""
+
+ OBJECT = (7, "obj", "Object")
+ """Object"""
+
+ ORG_CHART = (11, "dgm", "SmartArt placeholder. Organization chart is a legacy name.")
+ """SmartArt placeholder. Organization chart is a legacy name."""
+
+ PICTURE = (18, "pic", "Picture")
+ """Picture"""
+
+ SLIDE_IMAGE = (101, "sldImg", "Slide Image")
+ """Slide Image"""
+
+ SLIDE_NUMBER = (13, "sldNum", "Slide Number")
+ """Slide Number"""
+
+ SUBTITLE = (4, "subTitle", "Subtitle")
+ """Subtitle"""
+
+ TABLE = (12, "tbl", "Table")
+ """Table"""
+
+ TITLE = (1, "title", "Title")
+ """Title"""
+
+ VERTICAL_BODY = (6, "", "Vertical Body (read-only).")
+ """Vertical Body (read-only)."""
+
+ VERTICAL_OBJECT = (17, "", "Vertical Object (read-only).")
+ """Vertical Object (read-only)."""
+
+ VERTICAL_TITLE = (5, "", "Vertical Title (read-only).")
+ """Vertical Title (read-only)."""
+
+ MIXED = (-2, "", "Return value only; multiple placeholders of differing types.")
+ """Return value only; multiple placeholders of differing types."""
+
+
+PP_PLACEHOLDER = PP_PLACEHOLDER_TYPE
+
+
+class PROG_ID(enum.Enum):
+ """One-off Enum-like object for progId values.
+
+ Indicates the type of an OLE object in terms of the program used to open it.
+
+ A member of this enumeration can be used in a `SlideShapes.add_ole_object()` call to
+ specify a Microsoft Office file-type (Excel, PowerPoint, or Word), which will
+ then not require several of the arguments required to embed other object types.
+
+ Example::
+
+ from pptx.enum.shapes import PROG_ID
+ from pptx.util import Inches
+
+ embedded_xlsx_shape = slide.shapes.add_ole_object(
+ "workbook.xlsx", PROG_ID.XLSX, left=Inches(1), top=Inches(1)
+ )
+ assert embedded_xlsx_shape.ole_format.prog_id == "Excel.Sheet.12"
+ """
+
+ _progId: str
+ _icon_filename: str
+ _width: int
+ _height: int
+
+ def __new__(cls, value: str, progId: str, icon_filename: str, width: int, height: int):
+ self = object.__new__(cls)
+ self._value_ = value
+ self._progId = progId
+ self._icon_filename = icon_filename
+ self._width = width
+ self._height = height
+ return self
+
+ @property
+ def height(self):
+ return self._height
+
+ @property
+ def icon_filename(self):
+ return self._icon_filename
+
+ @property
+ def progId(self):
+ return self._progId
+
+ @property
+ def width(self):
+ return self._width
+
+ DOCX = ("DOCX", "Word.Document.12", "docx-icon.emf", 965200, 609600)
+ """`progId` for an embedded Word 2007+ (.docx) document."""
+
+ PPTX = ("PPTX", "PowerPoint.Show.12", "pptx-icon.emf", 965200, 609600)
+ """`progId` for an embedded PowerPoint 2007+ (.pptx) document."""
+
+ XLSX = ("XLSX", "Excel.Sheet.12", "xlsx-icon.emf", 965200, 609600)
+ """`progId` for an embedded Excel 2007+ (.xlsx) document."""
diff --git a/.venv/lib/python3.12/site-packages/pptx/enum/text.py b/.venv/lib/python3.12/site-packages/pptx/enum/text.py
new file mode 100644
index 00000000..db266a3c
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/pptx/enum/text.py
@@ -0,0 +1,230 @@
+"""Enumerations used by text and related objects."""
+
+from __future__ import annotations
+
+from pptx.enum.base import BaseEnum, BaseXmlEnum
+
+
+class MSO_AUTO_SIZE(BaseEnum):
+ """Determines the type of automatic sizing allowed.
+
+ The following names can be used to specify the automatic sizing behavior used to fit a shape's
+ text within the shape bounding box, for example::
+
+ from pptx.enum.text import MSO_AUTO_SIZE
+
+ shape.text_frame.auto_size = MSO_AUTO_SIZE.TEXT_TO_FIT_SHAPE
+
+ The word-wrap setting of the text frame interacts with the auto-size setting to determine the
+ specific auto-sizing behavior.
+
+ Note that `TextFrame.auto_size` can also be set to |None|, which removes the auto size setting
+ altogether. This causes the setting to be inherited, either from the layout placeholder, in the
+ case of a placeholder shape, or from the theme.
+
+ MS API Name: `MsoAutoSize`
+
+ http://msdn.microsoft.com/en-us/library/office/ff865367(v=office.15).aspx
+ """
+
+ NONE = (
+ 0,
+ "No automatic sizing of the shape or text will be done.\n\nText can freely extend beyond"
+ " the horizontal and vertical edges of the shape bounding box.",
+ )
+ """No automatic sizing of the shape or text will be done.
+
+ Text can freely extend beyond the horizontal and vertical edges of the shape bounding box.
+ """
+
+ SHAPE_TO_FIT_TEXT = (
+ 1,
+ "The shape height and possibly width are adjusted to fit the text.\n\nNote this setting"
+ " interacts with the TextFrame.word_wrap property setting. If word wrap is turned on,"
+ " only the height of the shape will be adjusted; soft line breaks will be used to fit the"
+ " text horizontally.",
+ )
+ """The shape height and possibly width are adjusted to fit the text.
+
+ Note this setting interacts with the TextFrame.word_wrap property setting. If word wrap is
+ turned on, only the height of the shape will be adjusted; soft line breaks will be used to fit
+ the text horizontally.
+ """
+
+ TEXT_TO_FIT_SHAPE = (
+ 2,
+ "The font size is reduced as necessary to fit the text within the shape.",
+ )
+ """The font size is reduced as necessary to fit the text within the shape."""
+
+ MIXED = (-2, "Return value only; indicates a combination of automatic sizing schemes are used.")
+ """Return value only; indicates a combination of automatic sizing schemes are used."""
+
+
+class MSO_TEXT_UNDERLINE_TYPE(BaseXmlEnum):
+ """
+ Indicates the type of underline for text. Used with
+ :attr:`.Font.underline` to specify the style of text underlining.
+
+ Alias: ``MSO_UNDERLINE``
+
+ Example::
+
+ from pptx.enum.text import MSO_UNDERLINE
+
+ run.font.underline = MSO_UNDERLINE.DOUBLE_LINE
+
+ MS API Name: `MsoTextUnderlineType`
+
+ http://msdn.microsoft.com/en-us/library/aa432699.aspx
+ """
+
+ NONE = (0, "none", "Specifies no underline.")
+ """Specifies no underline."""
+
+ DASH_HEAVY_LINE = (8, "dashHeavy", "Specifies a dash underline.")
+ """Specifies a dash underline."""
+
+ DASH_LINE = (7, "dash", "Specifies a dash line underline.")
+ """Specifies a dash line underline."""
+
+ DASH_LONG_HEAVY_LINE = (10, "dashLongHeavy", "Specifies a long heavy line underline.")
+ """Specifies a long heavy line underline."""
+
+ DASH_LONG_LINE = (9, "dashLong", "Specifies a dashed long line underline.")
+ """Specifies a dashed long line underline."""
+
+ DOT_DASH_HEAVY_LINE = (12, "dotDashHeavy", "Specifies a dot dash heavy line underline.")
+ """Specifies a dot dash heavy line underline."""
+
+ DOT_DASH_LINE = (11, "dotDash", "Specifies a dot dash line underline.")
+ """Specifies a dot dash line underline."""
+
+ DOT_DOT_DASH_HEAVY_LINE = (
+ 14,
+ "dotDotDashHeavy",
+ "Specifies a dot dot dash heavy line underline.",
+ )
+ """Specifies a dot dot dash heavy line underline."""
+
+ DOT_DOT_DASH_LINE = (13, "dotDotDash", "Specifies a dot dot dash line underline.")
+ """Specifies a dot dot dash line underline."""
+
+ DOTTED_HEAVY_LINE = (6, "dottedHeavy", "Specifies a dotted heavy line underline.")
+ """Specifies a dotted heavy line underline."""
+
+ DOTTED_LINE = (5, "dotted", "Specifies a dotted line underline.")
+ """Specifies a dotted line underline."""
+
+ DOUBLE_LINE = (3, "dbl", "Specifies a double line underline.")
+ """Specifies a double line underline."""
+
+ HEAVY_LINE = (4, "heavy", "Specifies a heavy line underline.")
+ """Specifies a heavy line underline."""
+
+ SINGLE_LINE = (2, "sng", "Specifies a single line underline.")
+ """Specifies a single line underline."""
+
+ WAVY_DOUBLE_LINE = (17, "wavyDbl", "Specifies a wavy double line underline.")
+ """Specifies a wavy double line underline."""
+
+ WAVY_HEAVY_LINE = (16, "wavyHeavy", "Specifies a wavy heavy line underline.")
+ """Specifies a wavy heavy line underline."""
+
+ WAVY_LINE = (15, "wavy", "Specifies a wavy line underline.")
+ """Specifies a wavy line underline."""
+
+ WORDS = (1, "words", "Specifies underlining words.")
+ """Specifies underlining words."""
+
+ MIXED = (-2, "", "Specifies a mix of underline types (read-only).")
+ """Specifies a mix of underline types (read-only)."""
+
+
+MSO_UNDERLINE = MSO_TEXT_UNDERLINE_TYPE
+
+
+class MSO_VERTICAL_ANCHOR(BaseXmlEnum):
+ """Specifies the vertical alignment of text in a text frame.
+
+ Used with the `.vertical_anchor` property of the |TextFrame| object. Note that the
+ `vertical_anchor` property can also have the value None, indicating there is no directly
+ specified vertical anchor setting and its effective value is inherited from its placeholder if
+ it has one or from the theme. |None| may also be assigned to remove an explicitly specified
+ vertical anchor setting.
+
+ MS API Name: `MsoVerticalAnchor`
+
+ http://msdn.microsoft.com/en-us/library/office/ff865255.aspx
+ """
+
+ TOP = (1, "t", "Aligns text to top of text frame")
+ """Aligns text to top of text frame"""
+
+ MIDDLE = (3, "ctr", "Centers text vertically")
+ """Centers text vertically"""
+
+ BOTTOM = (4, "b", "Aligns text to bottom of text frame")
+ """Aligns text to bottom of text frame"""
+
+ MIXED = (-2, "", "Return value only; indicates a combination of the other states.")
+ """Return value only; indicates a combination of the other states."""
+
+
+MSO_ANCHOR = MSO_VERTICAL_ANCHOR
+
+
+class PP_PARAGRAPH_ALIGNMENT(BaseXmlEnum):
+ """Specifies the horizontal alignment for one or more paragraphs.
+
+ Alias: `PP_ALIGN`
+
+ Example::
+
+ from pptx.enum.text import PP_ALIGN
+
+ shape.paragraphs[0].alignment = PP_ALIGN.CENTER
+
+ MS API Name: `PpParagraphAlignment`
+
+ http://msdn.microsoft.com/en-us/library/office/ff745375(v=office.15).aspx
+ """
+
+ CENTER = (2, "ctr", "Center align")
+ """Center align"""
+
+ DISTRIBUTE = (
+ 5,
+ "dist",
+ "Evenly distributes e.g. Japanese characters from left to right within a line",
+ )
+ """Evenly distributes e.g. Japanese characters from left to right within a line"""
+
+ JUSTIFY = (
+ 4,
+ "just",
+ "Justified, i.e. each line both begins and ends at the margin.\n\nSpacing between words"
+ " is adjusted such that the line exactly fills the width of the paragraph.",
+ )
+ """Justified, i.e. each line both begins and ends at the margin.
+
+ Spacing between words is adjusted such that the line exactly fills the width of the paragraph.
+ """
+
+ JUSTIFY_LOW = (7, "justLow", "Justify using a small amount of space between words.")
+ """Justify using a small amount of space between words."""
+
+ LEFT = (1, "l", "Left aligned")
+ """Left aligned"""
+
+ RIGHT = (3, "r", "Right aligned")
+ """Right aligned"""
+
+ THAI_DISTRIBUTE = (6, "thaiDist", "Thai distributed")
+ """Thai distributed"""
+
+ MIXED = (-2, "", "Multiple alignments are present in a set of paragraphs (read-only).")
+ """Multiple alignments are present in a set of paragraphs (read-only)."""
+
+
+PP_ALIGN = PP_PARAGRAPH_ALIGNMENT