MCPcopy Create free account
hub / github.com/Paper2Poster/Paper2Poster / prepare_ppt_folder

Function prepare_ppt_folder

utils/src/experiment/preprocess.py:162–202  ·  view source on GitHub ↗
(ppt_folder: str, text_model: BGEM3FlagModel, image_model)

Source from the content-addressed store, hash-verified

160
161
162def prepare_ppt_folder(ppt_folder: str, text_model: BGEM3FlagModel, image_model):
163 if pexists(ppt_folder + "/source.pptx") or not older_than(
164 ppt_folder + "/original.pptx"
165 ):
166 return
167 config = Config(rundir=ppt_folder, debug=False)
168 presentation = Presentation.from_file(ppt_folder + "/original.pptx", config=config)
169 if not os.path.exists(pjoin(ppt_folder, "original_slides")):
170 ppt_to_images(presentation.source_file, pjoin(ppt_folder, "original_slides"))
171 ppt_image_folder = pjoin(ppt_folder, "source_slides")
172 shutil.rmtree(ppt_image_folder, ignore_errors=True)
173 shutil.copytree(pjoin(ppt_folder, "original_slides"), ppt_image_folder)
174
175 removed_slides = prs_dedup(presentation, text_model)
176 for slide in [slide for slide in presentation.slides if I_dont_want_to_filter_slide(slide)]:
177 removed_slides.append(slide)
178 presentation.slides.remove(slide)
179
180 for slide in removed_slides:
181 os.remove(pjoin(ppt_image_folder, f"slide_{slide.real_idx:04d}.jpg"))
182 for err_idx, _ in presentation.error_history:
183 os.remove(pjoin(ppt_image_folder, f"slide_{err_idx:04d}.jpg"))
184 assert len(presentation) == len(
185 [i for i in os.listdir(ppt_image_folder) if i.endswith(".jpg")]
186 )
187 for i, slide in enumerate(presentation.slides, 1):
188 slide.slide_idx = i
189 os.rename(
190 pjoin(ppt_image_folder, f"slide_{slide.real_idx:04d}.jpg"),
191 pjoin(ppt_image_folder, f"slide_{slide.slide_idx:04d}.jpg"),
192 )
193
194 check_consistency(presentation.slides, ppt_folder, image_model)
195 ImageLabler(presentation, config).caption_images()
196 presentation.save(pjoin(ppt_folder, "source.pptx"))
197 presentation.save(pjoin(ppt_folder, "template.pptx"), layout_only=True)
198 ppt_to_images(
199 pjoin(ppt_folder, "template.pptx"),
200 pjoin(ppt_folder, "template_images"),
201 )
202 os.remove(pjoin(ppt_folder, "template.pptx"))
203
204
205def prepare_induction(induct_id: int, wait: bool = False):

Callers 1

preprocess.pyFile · 0.70

Calls 10

older_thanFunction · 0.90
ConfigClass · 0.90
ppt_to_imagesFunction · 0.90
prs_dedupFunction · 0.90
ImageLablerClass · 0.90
check_consistencyFunction · 0.70
from_fileMethod · 0.45
caption_imagesMethod · 0.45
saveMethod · 0.45

Tested by

no test coverage detected