11"""Shape wrapper implementation."""
22
3- from typing import TYPE_CHECKING , TypedDict
3+ from typing import TYPE_CHECKING , Self , TypedDict
44
55from pptx .shapes import Subshape as PptxSubshape
66from pptx .shapes .autoshape import Shape as PptxShape
@@ -66,6 +66,11 @@ def height(self) -> Length:
6666 def height (self , value : Length | LiteralLength | PptxLength ) -> None :
6767 self ._pptx .height = to_pptx_length (value )
6868
69+ def set_height (self , value : Length | LiteralLength | PptxLength ) -> Self :
70+ """Set height value and return self for method chaining."""
71+ self .height = value
72+ return self
73+
6974 @property
7075 def left (self ) -> Length :
7176 return to_length (self ._pptx .left )
@@ -74,6 +79,11 @@ def left(self) -> Length:
7479 def left (self , value : Length | LiteralLength | PptxLength ) -> None :
7580 self ._pptx .left = to_pptx_length (value )
7681
82+ def set_left (self , value : Length | LiteralLength | PptxLength ) -> Self :
83+ """Set left position value and return self for method chaining."""
84+ self .left = value
85+ return self
86+
7787 @property
7888 def name (self ) -> str :
7989 return self ._pptx .name
@@ -82,6 +92,11 @@ def name(self) -> str:
8292 def name (self , value : str ) -> None :
8393 self ._pptx .name = value
8494
95+ def set_name (self , value : str ) -> Self :
96+ """Set name value and return self for method chaining."""
97+ self .name = value
98+ return self
99+
85100 @property
86101 def part (self ) -> "PptxBaseSlidePart" :
87102 return self ._pptx .part
@@ -98,6 +113,11 @@ def rotation(self) -> float:
98113 def rotation (self , value : float ) -> None :
99114 self ._pptx .rotation = value
100115
116+ def set_rotation (self , value : float ) -> Self :
117+ """Set rotation value and return self for method chaining."""
118+ self .rotation = value
119+ return self
120+
101121 @property
102122 def shadow (self ) -> "ShadowFormat" :
103123 from tppt .pptx .dml .effect import ShadowFormat
@@ -120,6 +140,11 @@ def top(self) -> Length:
120140 def top (self , value : Length | LiteralLength | PptxLength ) -> None :
121141 self ._pptx .top = to_pptx_length (value )
122142
143+ def set_top (self , value : Length | LiteralLength | PptxLength ) -> Self :
144+ """Set top position value and return self for method chaining."""
145+ self .top = value
146+ return self
147+
123148 @property
124149 def width (self ) -> Length :
125150 return to_length (self ._pptx .width )
@@ -128,6 +153,11 @@ def width(self) -> Length:
128153 def width (self , value : Length | LiteralLength | PptxLength ) -> None :
129154 self ._pptx .width = to_pptx_length (value )
130155
156+ def set_width (self , value : Length | LiteralLength | PptxLength ) -> Self :
157+ """Set width value and return self for method chaining."""
158+ self .width = value
159+ return self
160+
131161
132162class Shape (BaseShape [GenericPptxShape ]):
133163 @property
@@ -158,6 +188,11 @@ def text(self) -> str:
158188 def text (self , text : str ) -> None :
159189 self ._pptx .text = text
160190
191+ def set_text (self , text : str ) -> Self :
192+ """Set text value and return self for method chaining."""
193+ self .text = text
194+ return self
195+
161196 @property
162197 def text_frame (self ) -> "TextFrame" :
163198 from tppt .pptx .text .text_frame import TextFrame
0 commit comments