@@ -206,7 +206,7 @@ def populate_views(self, workbook_item: WorkbookItem, usage: bool = False) -> No
206206 error = "Workbook item missing ID. Workbook must be retrieved from server first."
207207 raise MissingRequiredFieldError (error )
208208
209- def view_fetcher ():
209+ def view_fetcher () -> List [ ViewItem ] :
210210 return self ._get_views_for_workbook (workbook_item , usage )
211211
212212 workbook_item ._set_views (view_fetcher )
@@ -252,32 +252,50 @@ def populate_pdf(self, workbook_item: WorkbookItem, req_options: "RequestOptions
252252 error = "Workbook item missing ID."
253253 raise MissingRequiredFieldError (error )
254254
255- def pdf_fetcher ():
255+ def pdf_fetcher () -> bytes :
256256 return self ._get_wb_pdf (workbook_item , req_options )
257257
258258 workbook_item ._set_pdf (pdf_fetcher )
259259 logger .info ("Populated pdf for workbook (ID: {0})" .format (workbook_item .id ))
260260
261- def _get_wb_pdf (self , workbook_item , req_options ) :
261+ def _get_wb_pdf (self , workbook_item : WorkbookItem , req_options : Optional [ "RequestOptions" ]) -> bytes :
262262 url = "{0}/{1}/pdf" .format (self .baseurl , workbook_item .id )
263263 server_response = self .get_request (url , req_options )
264264 pdf = server_response .content
265265 return pdf
266266
267+ @api (version = "3.8" )
268+ def populate_powerpoint (self , workbook_item : WorkbookItem , req_options : Optional ["RequestOptions" ] = None ) -> None :
269+ if not workbook_item .id :
270+ error = "Workbook item missing ID."
271+ raise MissingRequiredFieldError (error )
272+
273+ def pptx_fetcher () -> bytes :
274+ return self ._get_wb_pptx (workbook_item , req_options )
275+
276+ workbook_item ._set_powerpoint (pptx_fetcher )
277+ logger .info ("Populated powerpoint for workbook (ID: {0})" .format (workbook_item .id ))
278+
279+ def _get_wb_pptx (self , workbook_item : WorkbookItem , req_options : Optional ["RequestOptions" ]) -> bytes :
280+ url = "{0}/{1}/powerpoint" .format (self .baseurl , workbook_item .id )
281+ server_response = self .get_request (url , req_options )
282+ pptx = server_response .content
283+ return pptx
284+
267285 # Get preview image of workbook
268286 @api (version = "2.0" )
269287 def populate_preview_image (self , workbook_item : WorkbookItem ) -> None :
270288 if not workbook_item .id :
271289 error = "Workbook item missing ID. Workbook must be retrieved from server first."
272290 raise MissingRequiredFieldError (error )
273291
274- def image_fetcher ():
292+ def image_fetcher () -> bytes :
275293 return self ._get_wb_preview_image (workbook_item )
276294
277295 workbook_item ._set_preview_image (image_fetcher )
278296 logger .info ("Populated preview image for workbook (ID: {0})" .format (workbook_item .id ))
279297
280- def _get_wb_preview_image (self , workbook_item ) :
298+ def _get_wb_preview_image (self , workbook_item : WorkbookItem ) -> bytes :
281299 url = "{0}/{1}/previewImage" .format (self .baseurl , workbook_item .id )
282300 server_response = self .get_request (url )
283301 preview_image = server_response .content
0 commit comments