Spaces:
Running
Running
Address scenario where a step does not begin with the designated marker
Browse files- helpers/pptx_helper.py +21 -7
helpers/pptx_helper.py
CHANGED
@@ -97,11 +97,6 @@ def generate_powerpoint_presentation(
|
|
97 |
subtitle.text = 'by Myself and SlideDeck AI :)'
|
98 |
all_headers = [title.text, ]
|
99 |
|
100 |
-
# background = slide.background
|
101 |
-
# background.fill.solid()
|
102 |
-
# background.fill.fore_color.rgb = RGBColor.from_string('C0C0C0') # Silver
|
103 |
-
# title.text_frame.paragraphs[0].font.color.rgb = RGBColor(0, 0, 128) # Navy blue
|
104 |
-
|
105 |
# Add contents in a loop
|
106 |
for a_slide in parsed_data['slides']:
|
107 |
bullet_slide_layout = presentation.slide_layouts[1]
|
@@ -202,17 +197,36 @@ def _handle_step_by_step_process(
|
|
202 |
if 'bullet_points' in slide_json and slide_json['bullet_points']:
|
203 |
steps = slide_json['bullet_points']
|
204 |
|
|
|
|
|
|
|
205 |
# Ensure that it is a single list of strings without any sub-list
|
206 |
for step in steps:
|
207 |
if not isinstance(step, str):
|
208 |
return False
|
209 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
210 |
if not step.startswith(STEP_BY_STEP_PROCESS_MARKER):
|
211 |
-
|
|
|
|
|
|
|
212 |
|
213 |
shapes = slide.shapes
|
214 |
shapes.title.text = remove_slide_number_from_heading(slide_json['heading'])
|
215 |
-
n_steps = len(steps)
|
216 |
|
217 |
if 3 <= n_steps <= 4:
|
218 |
# Horizontal display
|
|
|
97 |
subtitle.text = 'by Myself and SlideDeck AI :)'
|
98 |
all_headers = [title.text, ]
|
99 |
|
|
|
|
|
|
|
|
|
|
|
100 |
# Add contents in a loop
|
101 |
for a_slide in parsed_data['slides']:
|
102 |
bullet_slide_layout = presentation.slide_layouts[1]
|
|
|
197 |
if 'bullet_points' in slide_json and slide_json['bullet_points']:
|
198 |
steps = slide_json['bullet_points']
|
199 |
|
200 |
+
no_marker_count = 0.0
|
201 |
+
n_steps = len(steps)
|
202 |
+
|
203 |
# Ensure that it is a single list of strings without any sub-list
|
204 |
for step in steps:
|
205 |
if not isinstance(step, str):
|
206 |
return False
|
207 |
|
208 |
+
# In some cases, one or two steps may not begin with >>, e.g.:
|
209 |
+
# {
|
210 |
+
# "heading": "Step-by-Step Process: Creating a Legacy",
|
211 |
+
# "bullet_points": [
|
212 |
+
# "Identify your unique talents and passions",
|
213 |
+
# ">> Develop your skills and knowledge",
|
214 |
+
# ">> Create meaningful work",
|
215 |
+
# ">> Share your work with the world",
|
216 |
+
# ">> Continuously learn and adapt"
|
217 |
+
# ],
|
218 |
+
# "key_message": ""
|
219 |
+
# },
|
220 |
+
#
|
221 |
+
# Use a threshold, e.g., at most 20%
|
222 |
if not step.startswith(STEP_BY_STEP_PROCESS_MARKER):
|
223 |
+
no_marker_count += 1
|
224 |
+
|
225 |
+
if no_marker_count / n_steps > 0.2:
|
226 |
+
return False
|
227 |
|
228 |
shapes = slide.shapes
|
229 |
shapes.title.text = remove_slide_number_from_heading(slide_json['heading'])
|
|
|
230 |
|
231 |
if 3 <= n_steps <= 4:
|
232 |
# Horizontal display
|