- Create Economist SubmissionTracking package correctly: * mainArticle = full blog post content * coverLetter = 216-word SIR— letter * Links to blog post via blogPostId - Archive 'Letter to The Economist' from blog posts (it's the cover letter) - Fix date display on article cards (use published_at) - Target publication already displaying via blue badge Database changes: - Make blogPostId optional in SubmissionTracking model - Economist package ID: 68fa85ae49d4900e7f2ecd83 - Le Monde package ID: 68fa2abd2e6acd5691932150 Next: Enhanced modal with tabs, validation, export 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com>
1029 lines
29 KiB
Python
1029 lines
29 KiB
Python
"""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."""
|