File tree Expand file tree Collapse file tree 1 file changed +14
-9
lines changed Expand file tree Collapse file tree 1 file changed +14
-9
lines changed Original file line number Diff line number Diff line change 33 TYPE_CHECKING ,
44 Annotated ,
55 Any ,
6+ Callable ,
67 ClassVar ,
78 OrderedDict ,
89 Self ,
910 TypeAlias ,
1011 TypeVar ,
12+ assert_never ,
1113 dataclass_transform ,
1214 get_args ,
1315 get_origin ,
1416 get_type_hints ,
1517 overload ,
1618)
1719
18- from tppt .exception import InvalidSetterTypeError
19-
2020if TYPE_CHECKING :
21+ from ..pptx .shape .placeholder import SlidePlaceholder as SlidePlaceholder
2122 from ..pptx .slide import SlideBuilder
2223 from ..pptx .slide_layout import SlideLayout as PptxConvertibleSlideLayout
2324
2627
2728
2829if TYPE_CHECKING :
29- Placeholder : TypeAlias = Annotated [AnyType , ...]
30+ Placeholder : TypeAlias = Annotated [
31+ AnyType | Callable [[SlidePlaceholder ], SlidePlaceholder ], ...
32+ ]
3033else :
3134
3235 class Placeholder :
@@ -159,21 +162,23 @@ def placeholder_registry(slide: Slide):
159162 case None :
160163 continue
161164 case str ():
162- pass
165+ placeholder . text = value
163166 case datetime .date ():
164- value = value .strftime ("%Y%m/%d" )
167+ placeholder .text = value .strftime ("%Y%m/%d" )
168+ case Callable ():
169+ value (placeholder )
165170 case _:
166- raise InvalidSetterTypeError (str , type (value ))
167-
168- placeholder .text = value
171+ assert_never (value )
169172
170173 return SlideBuilder (
171174 self ._convertible_slide_layout ,
172175 placeholder_registry ,
173176 )
174177
175178
176- def get_placeholders (slide_layout : SlideLayout ) -> OrderedDict [str , Any ]:
179+ def get_placeholders (
180+ slide_layout : SlideLayout ,
181+ ) -> "OrderedDict[str, str | datetime.date | None | Callable[[SlidePlaceholder], SlidePlaceholder]]" :
177182 return OrderedDict (
178183 (key , getattr (slide_layout , key ))
179184 for key in slide_layout .__class__ .__placeholders__
You can’t perform that action at this time.
0 commit comments