@@ -9,16 +9,14 @@ def color_format_to_dict(color_format: Any) -> Dict[str, Any]:
99 data = {}
1010
1111 try :
12- if hasattr (color_format , "rgb" ):
13- if color_format .rgb is not None :
14- data ["rgb" ] = str (color_format .rgb )
12+ if rgb := getattr (color_format , "rgb" ):
13+ data ["rgb" ] = str (rgb )
1514
16- if hasattr (color_format , "theme_color" ):
17- if color_format .theme_color is not None :
18- data ["theme_color" ] = str (color_format .theme_color )
15+ if theme_color := getattr (color_format , "theme_color" ):
16+ data ["theme_color" ] = str (theme_color )
1917
20- if hasattr (color_format , "brightness" ):
21- data ["brightness" ] = color_format . brightness
18+ if brightness := getattr (color_format , "brightness" ):
19+ data ["brightness" ] = brightness
2220 except Exception :
2321 pass
2422
@@ -38,25 +36,21 @@ def text_frame_to_dict(text_frame: Any) -> Dict[str, Any]:
3836 for run in p .runs :
3937 run_data = {"text" : run .text }
4038
41- if hasattr (run , "font" ):
39+ if font := getattr (run , "font" ):
4240 font_data = {}
43- if hasattr (run .font , "name" ) and run .font .name is not None :
44- font_data ["name" ] = run .font .name
45- if hasattr (run .font , "size" ) and run .font .size is not None :
46- font_data ["size" ] = (
47- run .font .size .pt
48- if hasattr (run .font .size , "pt" )
49- else run .font .size
50- )
51- if hasattr (run .font , "bold" ) and run .font .bold is not None :
52- font_data ["bold" ] = run .font .bold
53- if hasattr (run .font , "italic" ) and run .font .italic is not None :
54- font_data ["italic" ] = run .font .italic
55- if hasattr (run .font , "underline" ) and run .font .underline is not None :
56- font_data ["underline" ] = run .font .underline
57-
58- if hasattr (run .font , "color" ) and run .font .color is not None :
59- font_data ["color" ] = color_format_to_dict (run .font .color )
41+ if name := getattr (font , "name" ):
42+ font_data ["name" ] = name
43+ if size := getattr (font , "size" ):
44+ font_data ["size" ] = size .pt if hasattr (size , "pt" ) else size
45+ if bold := getattr (font , "bold" ):
46+ font_data ["bold" ] = bold
47+ if italic := getattr (font , "italic" ):
48+ font_data ["italic" ] = italic
49+ if underline := getattr (font , "underline" ):
50+ font_data ["underline" ] = underline
51+
52+ if color := getattr (font , "color" ):
53+ font_data ["color" ] = color_format_to_dict (color )
6054
6155 run_data ["font" ] = font_data
6256
@@ -136,15 +130,11 @@ def placeholder_to_dict(placeholder: Any) -> Dict[str, Any]:
136130
137131 # Add placeholder-specific information
138132 try :
139- placeholder_data ["placeholder_type" ] = (
140- placeholder .placeholder_format .type
141- if hasattr (placeholder .placeholder_format , "type" )
142- else None
133+ placeholder_data ["placeholder_type" ] = getattr (
134+ placeholder .placeholder_format , "type"
143135 )
144- placeholder_data ["placeholder_idx" ] = (
145- placeholder .placeholder_format .idx
146- if hasattr (placeholder .placeholder_format , "idx" )
147- else None
136+ placeholder_data ["placeholder_idx" ] = getattr (
137+ placeholder .placeholder_format , "idx"
148138 )
149139 except Exception :
150140 pass
@@ -202,18 +192,17 @@ def slide_to_dict(slide: Any) -> Dict[str, Any]:
202192 }
203193
204194 # Add placeholder information
205- if hasattr (slide , "placeholders" ):
195+ if placeholders := getattr (slide , "placeholders" ):
206196 slide_data ["placeholders" ] = [
207- placeholder_to_dict (placeholder ) for placeholder in slide . placeholders
197+ placeholder_to_dict (placeholder ) for placeholder in placeholders
208198 ]
209199
210200 # Add notes information
211- if hasattr (slide , "notes_slide" ) and slide . notes_slide is not None :
201+ if notes_slide := getattr (slide , "notes_slide" ):
212202 notes_placeholders = []
213- if hasattr ( slide . notes_slide , "placeholders" ):
203+ if placeholders := getattr ( notes_slide , "placeholders" ):
214204 notes_placeholders = [
215- placeholder_to_dict (placeholder )
216- for placeholder in slide .notes_slide .placeholders
205+ placeholder_to_dict (placeholder ) for placeholder in placeholders
217206 ]
218207
219208 slide_data ["notes_slide" ] = {
0 commit comments