python-pptx2 3.1.0__tar.gz → 3.1.1__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (683) hide show
  1. {python_pptx2-3.1.0 → python_pptx2-3.1.1}/HISTORY.rst +12 -0
  2. {python_pptx2-3.1.0/src/python_pptx2.egg-info → python_pptx2-3.1.1}/PKG-INFO +1 -1
  3. {python_pptx2-3.1.0 → python_pptx2-3.1.1}/src/pptx2/__init__.py +1 -1
  4. {python_pptx2-3.1.0 → python_pptx2-3.1.1}/src/pptx2/render.py +17 -1
  5. {python_pptx2-3.1.0 → python_pptx2-3.1.1/src/python_pptx2.egg-info}/PKG-INFO +1 -1
  6. {python_pptx2-3.1.0 → python_pptx2-3.1.1}/tests/test_render_contact_sheet.py +48 -11
  7. {python_pptx2-3.1.0 → python_pptx2-3.1.1}/LICENSE +0 -0
  8. {python_pptx2-3.1.0 → python_pptx2-3.1.1}/MANIFEST.in +0 -0
  9. {python_pptx2-3.1.0 → python_pptx2-3.1.1}/README.rst +0 -0
  10. {python_pptx2-3.1.0 → python_pptx2-3.1.1}/features/act-action.feature +0 -0
  11. {python_pptx2-3.1.0 → python_pptx2-3.1.1}/features/act-hyperlink.feature +0 -0
  12. {python_pptx2-3.1.0 → python_pptx2-3.1.1}/features/cht-axis-props.feature +0 -0
  13. {python_pptx2-3.1.0 → python_pptx2-3.1.1}/features/cht-axistitle-props.feature +0 -0
  14. {python_pptx2-3.1.0 → python_pptx2-3.1.1}/features/cht-category-access.feature +0 -0
  15. {python_pptx2-3.1.0 → python_pptx2-3.1.1}/features/cht-category-props.feature +0 -0
  16. {python_pptx2-3.1.0 → python_pptx2-3.1.1}/features/cht-chart.feature +0 -0
  17. {python_pptx2-3.1.0 → python_pptx2-3.1.1}/features/cht-charttitle-props.feature +0 -0
  18. {python_pptx2-3.1.0 → python_pptx2-3.1.1}/features/cht-data-props.feature +0 -0
  19. {python_pptx2-3.1.0 → python_pptx2-3.1.1}/features/cht-datalabels.feature +0 -0
  20. {python_pptx2-3.1.0 → python_pptx2-3.1.1}/features/cht-gridlines-props.feature +0 -0
  21. {python_pptx2-3.1.0 → python_pptx2-3.1.1}/features/cht-legend-access.feature +0 -0
  22. {python_pptx2-3.1.0 → python_pptx2-3.1.1}/features/cht-legend-props.feature +0 -0
  23. {python_pptx2-3.1.0 → python_pptx2-3.1.1}/features/cht-marker-props.feature +0 -0
  24. {python_pptx2-3.1.0 → python_pptx2-3.1.1}/features/cht-plot-props.feature +0 -0
  25. {python_pptx2-3.1.0 → python_pptx2-3.1.1}/features/cht-point-access.feature +0 -0
  26. {python_pptx2-3.1.0 → python_pptx2-3.1.1}/features/cht-point-props.feature +0 -0
  27. {python_pptx2-3.1.0 → python_pptx2-3.1.1}/features/cht-replace-data.feature +0 -0
  28. {python_pptx2-3.1.0 → python_pptx2-3.1.1}/features/cht-series.feature +0 -0
  29. {python_pptx2-3.1.0 → python_pptx2-3.1.1}/features/cht-ticklabels-props.feature +0 -0
  30. {python_pptx2-3.1.0 → python_pptx2-3.1.1}/features/dml-color.feature +0 -0
  31. {python_pptx2-3.1.0 → python_pptx2-3.1.1}/features/dml-effect.feature +0 -0
  32. {python_pptx2-3.1.0 → python_pptx2-3.1.1}/features/dml-fill.feature +0 -0
  33. {python_pptx2-3.1.0 → python_pptx2-3.1.1}/features/dml-line.feature +0 -0
  34. {python_pptx2-3.1.0 → python_pptx2-3.1.1}/features/environment.py +0 -0
  35. {python_pptx2-3.1.0 → python_pptx2-3.1.1}/features/ph-inherit-props.feature +0 -0
  36. {python_pptx2-3.1.0 → python_pptx2-3.1.1}/features/ph-insert-shape.feature +0 -0
  37. {python_pptx2-3.1.0 → python_pptx2-3.1.1}/features/ph-phfmt-props.feature +0 -0
  38. {python_pptx2-3.1.0 → python_pptx2-3.1.1}/features/ph-placeholder-props.feature +0 -0
  39. {python_pptx2-3.1.0 → python_pptx2-3.1.1}/features/prs-coreprops.feature +0 -0
  40. {python_pptx2-3.1.0 → python_pptx2-3.1.1}/features/prs-default-template.feature +0 -0
  41. {python_pptx2-3.1.0 → python_pptx2-3.1.1}/features/prs-open-save.feature +0 -0
  42. {python_pptx2-3.1.0 → python_pptx2-3.1.1}/features/prs-presentation-props.feature +0 -0
  43. {python_pptx2-3.1.0 → python_pptx2-3.1.1}/features/shp-autoshape.feature +0 -0
  44. {python_pptx2-3.1.0 → python_pptx2-3.1.1}/features/shp-connector.feature +0 -0
  45. {python_pptx2-3.1.0 → python_pptx2-3.1.1}/features/shp-freeform.feature +0 -0
  46. {python_pptx2-3.1.0 → python_pptx2-3.1.1}/features/shp-graphicframe.feature +0 -0
  47. {python_pptx2-3.1.0 → python_pptx2-3.1.1}/features/shp-groupshape.feature +0 -0
  48. {python_pptx2-3.1.0 → python_pptx2-3.1.1}/features/shp-movie-props.feature +0 -0
  49. {python_pptx2-3.1.0 → python_pptx2-3.1.1}/features/shp-picture.feature +0 -0
  50. {python_pptx2-3.1.0 → python_pptx2-3.1.1}/features/shp-placeholder.feature +0 -0
  51. {python_pptx2-3.1.0 → python_pptx2-3.1.1}/features/shp-shapes.feature +0 -0
  52. {python_pptx2-3.1.0 → python_pptx2-3.1.1}/features/shp-shared.feature +0 -0
  53. {python_pptx2-3.1.0 → python_pptx2-3.1.1}/features/sld-background.feature +0 -0
  54. {python_pptx2-3.1.0 → python_pptx2-3.1.1}/features/sld-slide.feature +0 -0
  55. {python_pptx2-3.1.0 → python_pptx2-3.1.1}/features/sld-slides.feature +0 -0
  56. {python_pptx2-3.1.0 → python_pptx2-3.1.1}/features/steps/action.py +0 -0
  57. {python_pptx2-3.1.0 → python_pptx2-3.1.1}/features/steps/axis.py +0 -0
  58. {python_pptx2-3.1.0 → python_pptx2-3.1.1}/features/steps/background.py +0 -0
  59. {python_pptx2-3.1.0 → python_pptx2-3.1.1}/features/steps/category.py +0 -0
  60. {python_pptx2-3.1.0 → python_pptx2-3.1.1}/features/steps/chart.py +0 -0
  61. {python_pptx2-3.1.0 → python_pptx2-3.1.1}/features/steps/chartdata.py +0 -0
  62. {python_pptx2-3.1.0 → python_pptx2-3.1.1}/features/steps/color.py +0 -0
  63. {python_pptx2-3.1.0 → python_pptx2-3.1.1}/features/steps/coreprops.py +0 -0
  64. {python_pptx2-3.1.0 → python_pptx2-3.1.1}/features/steps/datalabel.py +0 -0
  65. {python_pptx2-3.1.0 → python_pptx2-3.1.1}/features/steps/effect.py +0 -0
  66. {python_pptx2-3.1.0 → python_pptx2-3.1.1}/features/steps/fill.py +0 -0
  67. {python_pptx2-3.1.0 → python_pptx2-3.1.1}/features/steps/font.py +0 -0
  68. {python_pptx2-3.1.0 → python_pptx2-3.1.1}/features/steps/font_color.py +0 -0
  69. {python_pptx2-3.1.0 → python_pptx2-3.1.1}/features/steps/helpers.py +0 -0
  70. {python_pptx2-3.1.0 → python_pptx2-3.1.1}/features/steps/legend.py +0 -0
  71. {python_pptx2-3.1.0 → python_pptx2-3.1.1}/features/steps/line.py +0 -0
  72. {python_pptx2-3.1.0 → python_pptx2-3.1.1}/features/steps/picture.py +0 -0
  73. {python_pptx2-3.1.0 → python_pptx2-3.1.1}/features/steps/placeholder.py +0 -0
  74. {python_pptx2-3.1.0 → python_pptx2-3.1.1}/features/steps/plot.py +0 -0
  75. {python_pptx2-3.1.0 → python_pptx2-3.1.1}/features/steps/presentation.py +0 -0
  76. {python_pptx2-3.1.0 → python_pptx2-3.1.1}/features/steps/series.py +0 -0
  77. {python_pptx2-3.1.0 → python_pptx2-3.1.1}/features/steps/shape.py +0 -0
  78. {python_pptx2-3.1.0 → python_pptx2-3.1.1}/features/steps/shapes.py +0 -0
  79. {python_pptx2-3.1.0 → python_pptx2-3.1.1}/features/steps/slide.py +0 -0
  80. {python_pptx2-3.1.0 → python_pptx2-3.1.1}/features/steps/slides.py +0 -0
  81. {python_pptx2-3.1.0 → python_pptx2-3.1.1}/features/steps/table.py +0 -0
  82. {python_pptx2-3.1.0 → python_pptx2-3.1.1}/features/steps/test_files/72-dpi.tiff +0 -0
  83. {python_pptx2-3.1.0 → python_pptx2-3.1.1}/features/steps/test_files/CVS_LOGO.WMF +0 -0
  84. {python_pptx2-3.1.0 → python_pptx2-3.1.1}/features/steps/test_files/act-props.pptm +0 -0
  85. {python_pptx2-3.1.0 → python_pptx2-3.1.1}/features/steps/test_files/calibriz.ttf +0 -0
  86. {python_pptx2-3.1.0 → python_pptx2-3.1.1}/features/steps/test_files/cht-axis-props.pptx +0 -0
  87. {python_pptx2-3.1.0 → python_pptx2-3.1.1}/features/steps/test_files/cht-category-access.pptx +0 -0
  88. {python_pptx2-3.1.0 → python_pptx2-3.1.1}/features/steps/test_files/cht-chart-props.pptx +0 -0
  89. {python_pptx2-3.1.0 → python_pptx2-3.1.1}/features/steps/test_files/cht-chart-type.pptx +0 -0
  90. {python_pptx2-3.1.0 → python_pptx2-3.1.1}/features/steps/test_files/cht-charts.pptx +0 -0
  91. {python_pptx2-3.1.0 → python_pptx2-3.1.1}/features/steps/test_files/cht-datalabels.pptx +0 -0
  92. {python_pptx2-3.1.0 → python_pptx2-3.1.1}/features/steps/test_files/cht-gridlines-props.pptx +0 -0
  93. {python_pptx2-3.1.0 → python_pptx2-3.1.1}/features/steps/test_files/cht-legend-props.pptx +0 -0
  94. {python_pptx2-3.1.0 → python_pptx2-3.1.1}/features/steps/test_files/cht-legend.pptx +0 -0
  95. {python_pptx2-3.1.0 → python_pptx2-3.1.1}/features/steps/test_files/cht-marker-props.pptx +0 -0
  96. {python_pptx2-3.1.0 → python_pptx2-3.1.1}/features/steps/test_files/cht-plot-props.pptx +0 -0
  97. {python_pptx2-3.1.0 → python_pptx2-3.1.1}/features/steps/test_files/cht-point-access.pptx +0 -0
  98. {python_pptx2-3.1.0 → python_pptx2-3.1.1}/features/steps/test_files/cht-point-props.pptx +0 -0
  99. {python_pptx2-3.1.0 → python_pptx2-3.1.1}/features/steps/test_files/cht-replace-data.pptx +0 -0
  100. {python_pptx2-3.1.0 → python_pptx2-3.1.1}/features/steps/test_files/cht-series.pptx +0 -0
  101. {python_pptx2-3.1.0 → python_pptx2-3.1.1}/features/steps/test_files/cht-ticklabels-props.pptx +0 -0
  102. {python_pptx2-3.1.0 → python_pptx2-3.1.1}/features/steps/test_files/dml-effect.pptx +0 -0
  103. {python_pptx2-3.1.0 → python_pptx2-3.1.1}/features/steps/test_files/dml-fill.pptx +0 -0
  104. {python_pptx2-3.1.0 → python_pptx2-3.1.1}/features/steps/test_files/dml-line.pptx +0 -0
  105. {python_pptx2-3.1.0 → python_pptx2-3.1.1}/features/steps/test_files/ext-rels.pptx +0 -0
  106. {python_pptx2-3.1.0 → python_pptx2-3.1.1}/features/steps/test_files/extracted-pptx/[Content_Types].xml +0 -0
  107. {python_pptx2-3.1.0 → python_pptx2-3.1.1}/features/steps/test_files/extracted-pptx/_rels/.rels +0 -0
  108. {python_pptx2-3.1.0 → python_pptx2-3.1.1}/features/steps/test_files/extracted-pptx/docProps/app.xml +0 -0
  109. {python_pptx2-3.1.0 → python_pptx2-3.1.1}/features/steps/test_files/extracted-pptx/docProps/core.xml +0 -0
  110. {python_pptx2-3.1.0 → python_pptx2-3.1.1}/features/steps/test_files/extracted-pptx/docProps/thumbnail.jpeg +0 -0
  111. {python_pptx2-3.1.0 → python_pptx2-3.1.1}/features/steps/test_files/extracted-pptx/ppt/_rels/presentation.xml.rels +0 -0
  112. {python_pptx2-3.1.0 → python_pptx2-3.1.1}/features/steps/test_files/extracted-pptx/ppt/presProps.xml +0 -0
  113. {python_pptx2-3.1.0 → python_pptx2-3.1.1}/features/steps/test_files/extracted-pptx/ppt/presentation.xml +0 -0
  114. {python_pptx2-3.1.0 → python_pptx2-3.1.1}/features/steps/test_files/extracted-pptx/ppt/printerSettings/printerSettings1.bin +0 -0
  115. {python_pptx2-3.1.0 → python_pptx2-3.1.1}/features/steps/test_files/extracted-pptx/ppt/slideLayouts/_rels/slideLayout1.xml.rels +0 -0
  116. {python_pptx2-3.1.0 → python_pptx2-3.1.1}/features/steps/test_files/extracted-pptx/ppt/slideLayouts/_rels/slideLayout10.xml.rels +0 -0
  117. {python_pptx2-3.1.0 → python_pptx2-3.1.1}/features/steps/test_files/extracted-pptx/ppt/slideLayouts/_rels/slideLayout11.xml.rels +0 -0
  118. {python_pptx2-3.1.0 → python_pptx2-3.1.1}/features/steps/test_files/extracted-pptx/ppt/slideLayouts/_rels/slideLayout2.xml.rels +0 -0
  119. {python_pptx2-3.1.0 → python_pptx2-3.1.1}/features/steps/test_files/extracted-pptx/ppt/slideLayouts/_rels/slideLayout3.xml.rels +0 -0
  120. {python_pptx2-3.1.0 → python_pptx2-3.1.1}/features/steps/test_files/extracted-pptx/ppt/slideLayouts/_rels/slideLayout4.xml.rels +0 -0
  121. {python_pptx2-3.1.0 → python_pptx2-3.1.1}/features/steps/test_files/extracted-pptx/ppt/slideLayouts/_rels/slideLayout5.xml.rels +0 -0
  122. {python_pptx2-3.1.0 → python_pptx2-3.1.1}/features/steps/test_files/extracted-pptx/ppt/slideLayouts/_rels/slideLayout6.xml.rels +0 -0
  123. {python_pptx2-3.1.0 → python_pptx2-3.1.1}/features/steps/test_files/extracted-pptx/ppt/slideLayouts/_rels/slideLayout7.xml.rels +0 -0
  124. {python_pptx2-3.1.0 → python_pptx2-3.1.1}/features/steps/test_files/extracted-pptx/ppt/slideLayouts/_rels/slideLayout8.xml.rels +0 -0
  125. {python_pptx2-3.1.0 → python_pptx2-3.1.1}/features/steps/test_files/extracted-pptx/ppt/slideLayouts/_rels/slideLayout9.xml.rels +0 -0
  126. {python_pptx2-3.1.0 → python_pptx2-3.1.1}/features/steps/test_files/extracted-pptx/ppt/slideLayouts/slideLayout1.xml +0 -0
  127. {python_pptx2-3.1.0 → python_pptx2-3.1.1}/features/steps/test_files/extracted-pptx/ppt/slideLayouts/slideLayout10.xml +0 -0
  128. {python_pptx2-3.1.0 → python_pptx2-3.1.1}/features/steps/test_files/extracted-pptx/ppt/slideLayouts/slideLayout11.xml +0 -0
  129. {python_pptx2-3.1.0 → python_pptx2-3.1.1}/features/steps/test_files/extracted-pptx/ppt/slideLayouts/slideLayout2.xml +0 -0
  130. {python_pptx2-3.1.0 → python_pptx2-3.1.1}/features/steps/test_files/extracted-pptx/ppt/slideLayouts/slideLayout3.xml +0 -0
  131. {python_pptx2-3.1.0 → python_pptx2-3.1.1}/features/steps/test_files/extracted-pptx/ppt/slideLayouts/slideLayout4.xml +0 -0
  132. {python_pptx2-3.1.0 → python_pptx2-3.1.1}/features/steps/test_files/extracted-pptx/ppt/slideLayouts/slideLayout5.xml +0 -0
  133. {python_pptx2-3.1.0 → python_pptx2-3.1.1}/features/steps/test_files/extracted-pptx/ppt/slideLayouts/slideLayout6.xml +0 -0
  134. {python_pptx2-3.1.0 → python_pptx2-3.1.1}/features/steps/test_files/extracted-pptx/ppt/slideLayouts/slideLayout7.xml +0 -0
  135. {python_pptx2-3.1.0 → python_pptx2-3.1.1}/features/steps/test_files/extracted-pptx/ppt/slideLayouts/slideLayout8.xml +0 -0
  136. {python_pptx2-3.1.0 → python_pptx2-3.1.1}/features/steps/test_files/extracted-pptx/ppt/slideLayouts/slideLayout9.xml +0 -0
  137. {python_pptx2-3.1.0 → python_pptx2-3.1.1}/features/steps/test_files/extracted-pptx/ppt/slideMasters/_rels/slideMaster1.xml.rels +0 -0
  138. {python_pptx2-3.1.0 → python_pptx2-3.1.1}/features/steps/test_files/extracted-pptx/ppt/slideMasters/slideMaster1.xml +0 -0
  139. {python_pptx2-3.1.0 → python_pptx2-3.1.1}/features/steps/test_files/extracted-pptx/ppt/slides/_rels/slide1.xml.rels +0 -0
  140. {python_pptx2-3.1.0 → python_pptx2-3.1.1}/features/steps/test_files/extracted-pptx/ppt/slides/slide1.xml +0 -0
  141. {python_pptx2-3.1.0 → python_pptx2-3.1.1}/features/steps/test_files/extracted-pptx/ppt/tableStyles.xml +0 -0
  142. {python_pptx2-3.1.0 → python_pptx2-3.1.1}/features/steps/test_files/extracted-pptx/ppt/theme/theme1.xml +0 -0
  143. {python_pptx2-3.1.0 → python_pptx2-3.1.1}/features/steps/test_files/extracted-pptx/ppt/viewProps.xml +0 -0
  144. {python_pptx2-3.1.0 → python_pptx2-3.1.1}/features/steps/test_files/font-color.pptx +0 -0
  145. {python_pptx2-3.1.0 → python_pptx2-3.1.1}/features/steps/test_files/just-two-mice.mp4 +0 -0
  146. {python_pptx2-3.1.0 → python_pptx2-3.1.1}/features/steps/test_files/just-two-mice.png +0 -0
  147. {python_pptx2-3.1.0 → python_pptx2-3.1.1}/features/steps/test_files/lyt-shapes.pptx +0 -0
  148. {python_pptx2-3.1.0 → python_pptx2-3.1.1}/features/steps/test_files/minimal.pptx +0 -0
  149. {python_pptx2-3.1.0 → python_pptx2-3.1.1}/features/steps/test_files/monty-truth.png +0 -0
  150. {python_pptx2-3.1.0 → python_pptx2-3.1.1}/features/steps/test_files/mst-placeholders.pptx +0 -0
  151. {python_pptx2-3.1.0 → python_pptx2-3.1.1}/features/steps/test_files/mst-shapes.pptx +0 -0
  152. {python_pptx2-3.1.0 → python_pptx2-3.1.1}/features/steps/test_files/mst-slide-layouts.pptx +0 -0
  153. {python_pptx2-3.1.0 → python_pptx2-3.1.1}/features/steps/test_files/ph-inherit-props.pptx +0 -0
  154. {python_pptx2-3.1.0 → python_pptx2-3.1.1}/features/steps/test_files/ph-populated-placeholders.pptx +0 -0
  155. {python_pptx2-3.1.0 → python_pptx2-3.1.1}/features/steps/test_files/ph-unpopulated-placeholders.pptx +0 -0
  156. {python_pptx2-3.1.0 → python_pptx2-3.1.1}/features/steps/test_files/pic.emf +0 -0
  157. {python_pptx2-3.1.0 → python_pptx2-3.1.1}/features/steps/test_files/prs-add-slide.pptx +0 -0
  158. {python_pptx2-3.1.0 → python_pptx2-3.1.1}/features/steps/test_files/prs-notes.pptx +0 -0
  159. {python_pptx2-3.1.0 → python_pptx2-3.1.1}/features/steps/test_files/prs-properties.pptx +0 -0
  160. {python_pptx2-3.1.0 → python_pptx2-3.1.1}/features/steps/test_files/prs-slide-masters.pptx +0 -0
  161. {python_pptx2-3.1.0 → python_pptx2-3.1.1}/features/steps/test_files/python-icon.jpeg +0 -0
  162. {python_pptx2-3.1.0 → python_pptx2-3.1.1}/features/steps/test_files/python-powered.png +0 -0
  163. {python_pptx2-3.1.0 → python_pptx2-3.1.1}/features/steps/test_files/python.bmp +0 -0
  164. {python_pptx2-3.1.0 → python_pptx2-3.1.1}/features/steps/test_files/shp-access-chart.pptx +0 -0
  165. {python_pptx2-3.1.0 → python_pptx2-3.1.1}/features/steps/test_files/shp-access-ole-object.pptx +0 -0
  166. {python_pptx2-3.1.0 → python_pptx2-3.1.1}/features/steps/test_files/shp-autoshape-adjustments.pptx +0 -0
  167. {python_pptx2-3.1.0 → python_pptx2-3.1.1}/features/steps/test_files/shp-autoshape-props.pptx +0 -0
  168. {python_pptx2-3.1.0 → python_pptx2-3.1.1}/features/steps/test_files/shp-common-props.pptx +0 -0
  169. {python_pptx2-3.1.0 → python_pptx2-3.1.1}/features/steps/test_files/shp-connector-props.pptx +0 -0
  170. {python_pptx2-3.1.0 → python_pptx2-3.1.1}/features/steps/test_files/shp-embedded-docx.docx +0 -0
  171. {python_pptx2-3.1.0 → python_pptx2-3.1.1}/features/steps/test_files/shp-embedded-pptx.pptx +0 -0
  172. {python_pptx2-3.1.0 → python_pptx2-3.1.1}/features/steps/test_files/shp-embedded-xlsx.xlsx +0 -0
  173. {python_pptx2-3.1.0 → python_pptx2-3.1.1}/features/steps/test_files/shp-freeform.pptx +0 -0
  174. {python_pptx2-3.1.0 → python_pptx2-3.1.1}/features/steps/test_files/shp-groupshape.pptx +0 -0
  175. {python_pptx2-3.1.0 → python_pptx2-3.1.1}/features/steps/test_files/shp-movie-props.pptx +0 -0
  176. {python_pptx2-3.1.0 → python_pptx2-3.1.1}/features/steps/test_files/shp-picture.pptx +0 -0
  177. {python_pptx2-3.1.0 → python_pptx2-3.1.1}/features/steps/test_files/shp-pos-and-size.pptx +0 -0
  178. {python_pptx2-3.1.0 → python_pptx2-3.1.1}/features/steps/test_files/shp-shapes.pptx +0 -0
  179. {python_pptx2-3.1.0 → python_pptx2-3.1.1}/features/steps/test_files/sld-background.pptx +0 -0
  180. {python_pptx2-3.1.0 → python_pptx2-3.1.1}/features/steps/test_files/sld-blank.pptx +0 -0
  181. {python_pptx2-3.1.0 → python_pptx2-3.1.1}/features/steps/test_files/sld-notes.pptx +0 -0
  182. {python_pptx2-3.1.0 → python_pptx2-3.1.1}/features/steps/test_files/sld-slide.pptx +0 -0
  183. {python_pptx2-3.1.0 → python_pptx2-3.1.1}/features/steps/test_files/sld-slides.pptx +0 -0
  184. {python_pptx2-3.1.0 → python_pptx2-3.1.1}/features/steps/test_files/sonic.gif +0 -0
  185. {python_pptx2-3.1.0 → python_pptx2-3.1.1}/features/steps/test_files/tbl-cell.pptx +0 -0
  186. {python_pptx2-3.1.0 → python_pptx2-3.1.1}/features/steps/test_files/test-image-jpg-mime.pptx +0 -0
  187. {python_pptx2-3.1.0 → python_pptx2-3.1.1}/features/steps/test_files/test.pptx +0 -0
  188. {python_pptx2-3.1.0 → python_pptx2-3.1.1}/features/steps/test_files/txt-fit-text.pptx +0 -0
  189. {python_pptx2-3.1.0 → python_pptx2-3.1.1}/features/steps/test_files/txt-font-props.pptx +0 -0
  190. {python_pptx2-3.1.0 → python_pptx2-3.1.1}/features/steps/test_files/txt-font-typeface.pptx +0 -0
  191. {python_pptx2-3.1.0 → python_pptx2-3.1.1}/features/steps/test_files/txt-paragraph-spacing.pptx +0 -0
  192. {python_pptx2-3.1.0 → python_pptx2-3.1.1}/features/steps/test_files/txt-text-frame.pptx +0 -0
  193. {python_pptx2-3.1.0 → python_pptx2-3.1.1}/features/steps/test_files/txt-text.pptx +0 -0
  194. {python_pptx2-3.1.0 → python_pptx2-3.1.1}/features/steps/text.py +0 -0
  195. {python_pptx2-3.1.0 → python_pptx2-3.1.1}/features/steps/text_frame.py +0 -0
  196. {python_pptx2-3.1.0 → python_pptx2-3.1.1}/features/tbl-cell.feature +0 -0
  197. {python_pptx2-3.1.0 → python_pptx2-3.1.1}/features/tbl-column.feature +0 -0
  198. {python_pptx2-3.1.0 → python_pptx2-3.1.1}/features/tbl-table.feature +0 -0
  199. {python_pptx2-3.1.0 → python_pptx2-3.1.1}/features/txt-fit-text.feature +0 -0
  200. {python_pptx2-3.1.0 → python_pptx2-3.1.1}/features/txt-font-color.feature +0 -0
  201. {python_pptx2-3.1.0 → python_pptx2-3.1.1}/features/txt-font-props.feature +0 -0
  202. {python_pptx2-3.1.0 → python_pptx2-3.1.1}/features/txt-paragraph.feature +0 -0
  203. {python_pptx2-3.1.0 → python_pptx2-3.1.1}/features/txt-text.feature +0 -0
  204. {python_pptx2-3.1.0 → python_pptx2-3.1.1}/features/txt-textframe.feature +0 -0
  205. {python_pptx2-3.1.0 → python_pptx2-3.1.1}/pyproject.toml +0 -0
  206. {python_pptx2-3.1.0 → python_pptx2-3.1.1}/setup.cfg +0 -0
  207. {python_pptx2-3.1.0 → python_pptx2-3.1.1}/src/paper_pptx_doctor/__init__.py +0 -0
  208. {python_pptx2-3.1.0 → python_pptx2-3.1.1}/src/paper_pptx_doctor/__main__.py +0 -0
  209. {python_pptx2-3.1.0 → python_pptx2-3.1.1}/src/pptx2/_agent_friendly.py +0 -0
  210. {python_pptx2-3.1.0 → python_pptx2-3.1.1}/src/pptx2/_color.py +0 -0
  211. {python_pptx2-3.1.0 → python_pptx2-3.1.1}/src/pptx2/_ownership.py +0 -0
  212. {python_pptx2-3.1.0 → python_pptx2-3.1.1}/src/pptx2/_slide_importer.py +0 -0
  213. {python_pptx2-3.1.0 → python_pptx2-3.1.1}/src/pptx2/_svg.py +0 -0
  214. {python_pptx2-3.1.0 → python_pptx2-3.1.1}/src/pptx2/_template_applier.py +0 -0
  215. {python_pptx2-3.1.0 → python_pptx2-3.1.1}/src/pptx2/_textstyle.py +0 -0
  216. {python_pptx2-3.1.0 → python_pptx2-3.1.1}/src/pptx2/_transaction.py +0 -0
  217. {python_pptx2-3.1.0 → python_pptx2-3.1.1}/src/pptx2/_version.py +0 -0
  218. {python_pptx2-3.1.0 → python_pptx2-3.1.1}/src/pptx2/_zipguard.py +0 -0
  219. {python_pptx2-3.1.0 → python_pptx2-3.1.1}/src/pptx2/accessibility.py +0 -0
  220. {python_pptx2-3.1.0 → python_pptx2-3.1.1}/src/pptx2/action.py +0 -0
  221. {python_pptx2-3.1.0 → python_pptx2-3.1.1}/src/pptx2/animation.py +0 -0
  222. {python_pptx2-3.1.0 → python_pptx2-3.1.1}/src/pptx2/api.py +0 -0
  223. {python_pptx2-3.1.0 → python_pptx2-3.1.1}/src/pptx2/audit.py +0 -0
  224. {python_pptx2-3.1.0 → python_pptx2-3.1.1}/src/pptx2/chart/__init__.py +0 -0
  225. {python_pptx2-3.1.0 → python_pptx2-3.1.1}/src/pptx2/chart/analytics.py +0 -0
  226. {python_pptx2-3.1.0 → python_pptx2-3.1.1}/src/pptx2/chart/axis.py +0 -0
  227. {python_pptx2-3.1.0 → python_pptx2-3.1.1}/src/pptx2/chart/category.py +0 -0
  228. {python_pptx2-3.1.0 → python_pptx2-3.1.1}/src/pptx2/chart/chart.py +0 -0
  229. {python_pptx2-3.1.0 → python_pptx2-3.1.1}/src/pptx2/chart/data.py +0 -0
  230. {python_pptx2-3.1.0 → python_pptx2-3.1.1}/src/pptx2/chart/datalabel.py +0 -0
  231. {python_pptx2-3.1.0 → python_pptx2-3.1.1}/src/pptx2/chart/legend.py +0 -0
  232. {python_pptx2-3.1.0 → python_pptx2-3.1.1}/src/pptx2/chart/marker.py +0 -0
  233. {python_pptx2-3.1.0 → python_pptx2-3.1.1}/src/pptx2/chart/palettes.py +0 -0
  234. {python_pptx2-3.1.0 → python_pptx2-3.1.1}/src/pptx2/chart/plot.py +0 -0
  235. {python_pptx2-3.1.0 → python_pptx2-3.1.1}/src/pptx2/chart/point.py +0 -0
  236. {python_pptx2-3.1.0 → python_pptx2-3.1.1}/src/pptx2/chart/quick_layouts.py +0 -0
  237. {python_pptx2-3.1.0 → python_pptx2-3.1.1}/src/pptx2/chart/series.py +0 -0
  238. {python_pptx2-3.1.0 → python_pptx2-3.1.1}/src/pptx2/chart/xlsx.py +0 -0
  239. {python_pptx2-3.1.0 → python_pptx2-3.1.1}/src/pptx2/chart/xmlwriter.py +0 -0
  240. {python_pptx2-3.1.0 → python_pptx2-3.1.1}/src/pptx2/compose/__init__.py +0 -0
  241. {python_pptx2-3.1.0 → python_pptx2-3.1.1}/src/pptx2/compose/deck_compose.py +0 -0
  242. {python_pptx2-3.1.0 → python_pptx2-3.1.1}/src/pptx2/compose/from_spec.py +0 -0
  243. {python_pptx2-3.1.0 → python_pptx2-3.1.1}/src/pptx2/design/__init__.py +0 -0
  244. {python_pptx2-3.1.0 → python_pptx2-3.1.1}/src/pptx2/design/blocks.py +0 -0
  245. {python_pptx2-3.1.0 → python_pptx2-3.1.1}/src/pptx2/design/components.py +0 -0
  246. {python_pptx2-3.1.0 → python_pptx2-3.1.1}/src/pptx2/design/figures.py +0 -0
  247. {python_pptx2-3.1.0 → python_pptx2-3.1.1}/src/pptx2/design/layout.py +0 -0
  248. {python_pptx2-3.1.0 → python_pptx2-3.1.1}/src/pptx2/design/palettes.py +0 -0
  249. {python_pptx2-3.1.0 → python_pptx2-3.1.1}/src/pptx2/design/recipes.py +0 -0
  250. {python_pptx2-3.1.0 → python_pptx2-3.1.1}/src/pptx2/design/style.py +0 -0
  251. {python_pptx2-3.1.0 → python_pptx2-3.1.1}/src/pptx2/design/tokens.py +0 -0
  252. {python_pptx2-3.1.0 → python_pptx2-3.1.1}/src/pptx2/diagrams.py +0 -0
  253. {python_pptx2-3.1.0 → python_pptx2-3.1.1}/src/pptx2/diff.py +0 -0
  254. {python_pptx2-3.1.0 → python_pptx2-3.1.1}/src/pptx2/dml/__init__.py +0 -0
  255. {python_pptx2-3.1.0 → python_pptx2-3.1.1}/src/pptx2/dml/chtfmt.py +0 -0
  256. {python_pptx2-3.1.0 → python_pptx2-3.1.1}/src/pptx2/dml/color.py +0 -0
  257. {python_pptx2-3.1.0 → python_pptx2-3.1.1}/src/pptx2/dml/effect.py +0 -0
  258. {python_pptx2-3.1.0 → python_pptx2-3.1.1}/src/pptx2/dml/fill.py +0 -0
  259. {python_pptx2-3.1.0 → python_pptx2-3.1.1}/src/pptx2/dml/line.py +0 -0
  260. {python_pptx2-3.1.0 → python_pptx2-3.1.1}/src/pptx2/dml/picture.py +0 -0
  261. {python_pptx2-3.1.0 → python_pptx2-3.1.1}/src/pptx2/dml/three_d.py +0 -0
  262. {python_pptx2-3.1.0 → python_pptx2-3.1.1}/src/pptx2/edit.py +0 -0
  263. {python_pptx2-3.1.0 → python_pptx2-3.1.1}/src/pptx2/enum/__init__.py +0 -0
  264. {python_pptx2-3.1.0 → python_pptx2-3.1.1}/src/pptx2/enum/action.py +0 -0
  265. {python_pptx2-3.1.0 → python_pptx2-3.1.1}/src/pptx2/enum/animation.py +0 -0
  266. {python_pptx2-3.1.0 → python_pptx2-3.1.1}/src/pptx2/enum/base.py +0 -0
  267. {python_pptx2-3.1.0 → python_pptx2-3.1.1}/src/pptx2/enum/chart.py +0 -0
  268. {python_pptx2-3.1.0 → python_pptx2-3.1.1}/src/pptx2/enum/dml.py +0 -0
  269. {python_pptx2-3.1.0 → python_pptx2-3.1.1}/src/pptx2/enum/lang.py +0 -0
  270. {python_pptx2-3.1.0 → python_pptx2-3.1.1}/src/pptx2/enum/presentation.py +0 -0
  271. {python_pptx2-3.1.0 → python_pptx2-3.1.1}/src/pptx2/enum/shapes.py +0 -0
  272. {python_pptx2-3.1.0 → python_pptx2-3.1.1}/src/pptx2/enum/text.py +0 -0
  273. {python_pptx2-3.1.0 → python_pptx2-3.1.1}/src/pptx2/errors.py +0 -0
  274. {python_pptx2-3.1.0 → python_pptx2-3.1.1}/src/pptx2/exc.py +0 -0
  275. {python_pptx2-3.1.0 → python_pptx2-3.1.1}/src/pptx2/formats.py +0 -0
  276. {python_pptx2-3.1.0 → python_pptx2-3.1.1}/src/pptx2/geometry.py +0 -0
  277. {python_pptx2-3.1.0 → python_pptx2-3.1.1}/src/pptx2/hf.py +0 -0
  278. {python_pptx2-3.1.0 → python_pptx2-3.1.1}/src/pptx2/inherit.py +0 -0
  279. {python_pptx2-3.1.0 → python_pptx2-3.1.1}/src/pptx2/inspect.py +0 -0
  280. {python_pptx2-3.1.0 → python_pptx2-3.1.1}/src/pptx2/lint.py +0 -0
  281. {python_pptx2-3.1.0 → python_pptx2-3.1.1}/src/pptx2/math.py +0 -0
  282. {python_pptx2-3.1.0 → python_pptx2-3.1.1}/src/pptx2/mathml2omml.py +0 -0
  283. {python_pptx2-3.1.0 → python_pptx2-3.1.1}/src/pptx2/media.py +0 -0
  284. {python_pptx2-3.1.0 → python_pptx2-3.1.1}/src/pptx2/opc/__init__.py +0 -0
  285. {python_pptx2-3.1.0 → python_pptx2-3.1.1}/src/pptx2/opc/constants.py +0 -0
  286. {python_pptx2-3.1.0 → python_pptx2-3.1.1}/src/pptx2/opc/oxml.py +0 -0
  287. {python_pptx2-3.1.0 → python_pptx2-3.1.1}/src/pptx2/opc/package.py +0 -0
  288. {python_pptx2-3.1.0 → python_pptx2-3.1.1}/src/pptx2/opc/packuri.py +0 -0
  289. {python_pptx2-3.1.0 → python_pptx2-3.1.1}/src/pptx2/opc/serialized.py +0 -0
  290. {python_pptx2-3.1.0 → python_pptx2-3.1.1}/src/pptx2/opc/shared.py +0 -0
  291. {python_pptx2-3.1.0 → python_pptx2-3.1.1}/src/pptx2/opc/spec.py +0 -0
  292. {python_pptx2-3.1.0 → python_pptx2-3.1.1}/src/pptx2/oxml/__init__.py +0 -0
  293. {python_pptx2-3.1.0 → python_pptx2-3.1.1}/src/pptx2/oxml/action.py +0 -0
  294. {python_pptx2-3.1.0 → python_pptx2-3.1.1}/src/pptx2/oxml/chart/__init__.py +0 -0
  295. {python_pptx2-3.1.0 → python_pptx2-3.1.1}/src/pptx2/oxml/chart/axis.py +0 -0
  296. {python_pptx2-3.1.0 → python_pptx2-3.1.1}/src/pptx2/oxml/chart/chart.py +0 -0
  297. {python_pptx2-3.1.0 → python_pptx2-3.1.1}/src/pptx2/oxml/chart/datalabel.py +0 -0
  298. {python_pptx2-3.1.0 → python_pptx2-3.1.1}/src/pptx2/oxml/chart/legend.py +0 -0
  299. {python_pptx2-3.1.0 → python_pptx2-3.1.1}/src/pptx2/oxml/chart/marker.py +0 -0
  300. {python_pptx2-3.1.0 → python_pptx2-3.1.1}/src/pptx2/oxml/chart/plot.py +0 -0
  301. {python_pptx2-3.1.0 → python_pptx2-3.1.1}/src/pptx2/oxml/chart/series.py +0 -0
  302. {python_pptx2-3.1.0 → python_pptx2-3.1.1}/src/pptx2/oxml/chart/shared.py +0 -0
  303. {python_pptx2-3.1.0 → python_pptx2-3.1.1}/src/pptx2/oxml/coreprops.py +0 -0
  304. {python_pptx2-3.1.0 → python_pptx2-3.1.1}/src/pptx2/oxml/customprops.py +0 -0
  305. {python_pptx2-3.1.0 → python_pptx2-3.1.1}/src/pptx2/oxml/dml/__init__.py +0 -0
  306. {python_pptx2-3.1.0 → python_pptx2-3.1.1}/src/pptx2/oxml/dml/color.py +0 -0
  307. {python_pptx2-3.1.0 → python_pptx2-3.1.1}/src/pptx2/oxml/dml/effect.py +0 -0
  308. {python_pptx2-3.1.0 → python_pptx2-3.1.1}/src/pptx2/oxml/dml/fill.py +0 -0
  309. {python_pptx2-3.1.0 → python_pptx2-3.1.1}/src/pptx2/oxml/dml/line.py +0 -0
  310. {python_pptx2-3.1.0 → python_pptx2-3.1.1}/src/pptx2/oxml/dml/three_d.py +0 -0
  311. {python_pptx2-3.1.0 → python_pptx2-3.1.1}/src/pptx2/oxml/ns.py +0 -0
  312. {python_pptx2-3.1.0 → python_pptx2-3.1.1}/src/pptx2/oxml/presentation.py +0 -0
  313. {python_pptx2-3.1.0 → python_pptx2-3.1.1}/src/pptx2/oxml/shapes/__init__.py +0 -0
  314. {python_pptx2-3.1.0 → python_pptx2-3.1.1}/src/pptx2/oxml/shapes/autoshape.py +0 -0
  315. {python_pptx2-3.1.0 → python_pptx2-3.1.1}/src/pptx2/oxml/shapes/connector.py +0 -0
  316. {python_pptx2-3.1.0 → python_pptx2-3.1.1}/src/pptx2/oxml/shapes/graphfrm.py +0 -0
  317. {python_pptx2-3.1.0 → python_pptx2-3.1.1}/src/pptx2/oxml/shapes/groupshape.py +0 -0
  318. {python_pptx2-3.1.0 → python_pptx2-3.1.1}/src/pptx2/oxml/shapes/picture.py +0 -0
  319. {python_pptx2-3.1.0 → python_pptx2-3.1.1}/src/pptx2/oxml/shapes/shared.py +0 -0
  320. {python_pptx2-3.1.0 → python_pptx2-3.1.1}/src/pptx2/oxml/simpletypes.py +0 -0
  321. {python_pptx2-3.1.0 → python_pptx2-3.1.1}/src/pptx2/oxml/slide.py +0 -0
  322. {python_pptx2-3.1.0 → python_pptx2-3.1.1}/src/pptx2/oxml/table.py +0 -0
  323. {python_pptx2-3.1.0 → python_pptx2-3.1.1}/src/pptx2/oxml/text.py +0 -0
  324. {python_pptx2-3.1.0 → python_pptx2-3.1.1}/src/pptx2/oxml/theme.py +0 -0
  325. {python_pptx2-3.1.0 → python_pptx2-3.1.1}/src/pptx2/oxml/xmlchemy.py +0 -0
  326. {python_pptx2-3.1.0 → python_pptx2-3.1.1}/src/pptx2/package.py +0 -0
  327. {python_pptx2-3.1.0 → python_pptx2-3.1.1}/src/pptx2/parts/__init__.py +0 -0
  328. {python_pptx2-3.1.0 → python_pptx2-3.1.1}/src/pptx2/parts/chart.py +0 -0
  329. {python_pptx2-3.1.0 → python_pptx2-3.1.1}/src/pptx2/parts/coreprops.py +0 -0
  330. {python_pptx2-3.1.0 → python_pptx2-3.1.1}/src/pptx2/parts/customprops.py +0 -0
  331. {python_pptx2-3.1.0 → python_pptx2-3.1.1}/src/pptx2/parts/diagram.py +0 -0
  332. {python_pptx2-3.1.0 → python_pptx2-3.1.1}/src/pptx2/parts/embeddedpackage.py +0 -0
  333. {python_pptx2-3.1.0 → python_pptx2-3.1.1}/src/pptx2/parts/image.py +0 -0
  334. {python_pptx2-3.1.0 → python_pptx2-3.1.1}/src/pptx2/parts/media.py +0 -0
  335. {python_pptx2-3.1.0 → python_pptx2-3.1.1}/src/pptx2/parts/presentation.py +0 -0
  336. {python_pptx2-3.1.0 → python_pptx2-3.1.1}/src/pptx2/parts/slide.py +0 -0
  337. {python_pptx2-3.1.0 → python_pptx2-3.1.1}/src/pptx2/presentation.py +0 -0
  338. {python_pptx2-3.1.0 → python_pptx2-3.1.1}/src/pptx2/py.typed +0 -0
  339. {python_pptx2-3.1.0 → python_pptx2-3.1.1}/src/pptx2/rebind.py +0 -0
  340. {python_pptx2-3.1.0 → python_pptx2-3.1.1}/src/pptx2/section.py +0 -0
  341. {python_pptx2-3.1.0 → python_pptx2-3.1.1}/src/pptx2/shapes/__init__.py +0 -0
  342. {python_pptx2-3.1.0 → python_pptx2-3.1.1}/src/pptx2/shapes/autoshape.py +0 -0
  343. {python_pptx2-3.1.0 → python_pptx2-3.1.1}/src/pptx2/shapes/base.py +0 -0
  344. {python_pptx2-3.1.0 → python_pptx2-3.1.1}/src/pptx2/shapes/connector.py +0 -0
  345. {python_pptx2-3.1.0 → python_pptx2-3.1.1}/src/pptx2/shapes/freeform.py +0 -0
  346. {python_pptx2-3.1.0 → python_pptx2-3.1.1}/src/pptx2/shapes/graphfrm.py +0 -0
  347. {python_pptx2-3.1.0 → python_pptx2-3.1.1}/src/pptx2/shapes/group.py +0 -0
  348. {python_pptx2-3.1.0 → python_pptx2-3.1.1}/src/pptx2/shapes/picture.py +0 -0
  349. {python_pptx2-3.1.0 → python_pptx2-3.1.1}/src/pptx2/shapes/placeholder.py +0 -0
  350. {python_pptx2-3.1.0 → python_pptx2-3.1.1}/src/pptx2/shapes/shapetree.py +0 -0
  351. {python_pptx2-3.1.0 → python_pptx2-3.1.1}/src/pptx2/shared.py +0 -0
  352. {python_pptx2-3.1.0 → python_pptx2-3.1.1}/src/pptx2/skill/SKILL.md +0 -0
  353. {python_pptx2-3.1.0 → python_pptx2-3.1.1}/src/pptx2/skill/__init__.py +0 -0
  354. {python_pptx2-3.1.0 → python_pptx2-3.1.1}/src/pptx2/skill/__main__.py +0 -0
  355. {python_pptx2-3.1.0 → python_pptx2-3.1.1}/src/pptx2/skill/references/animations.md +0 -0
  356. {python_pptx2-3.1.0 → python_pptx2-3.1.1}/src/pptx2/skill/references/basics.md +0 -0
  357. {python_pptx2-3.1.0 → python_pptx2-3.1.1}/src/pptx2/skill/references/charts.md +0 -0
  358. {python_pptx2-3.1.0 → python_pptx2-3.1.1}/src/pptx2/skill/references/compose.md +0 -0
  359. {python_pptx2-3.1.0 → python_pptx2-3.1.1}/src/pptx2/skill/references/design.md +0 -0
  360. {python_pptx2-3.1.0 → python_pptx2-3.1.1}/src/pptx2/skill/references/editing.md +0 -0
  361. {python_pptx2-3.1.0 → python_pptx2-3.1.1}/src/pptx2/skill/references/effects.md +0 -0
  362. {python_pptx2-3.1.0 → python_pptx2-3.1.1}/src/pptx2/skill/references/end-to-end-deck.md +0 -0
  363. {python_pptx2-3.1.0 → python_pptx2-3.1.1}/src/pptx2/skill/references/geometry-and-arrows.md +0 -0
  364. {python_pptx2-3.1.0 → python_pptx2-3.1.1}/src/pptx2/skill/references/lint.md +0 -0
  365. {python_pptx2-3.1.0 → python_pptx2-3.1.1}/src/pptx2/skill/references/math.md +0 -0
  366. {python_pptx2-3.1.0 → python_pptx2-3.1.1}/src/pptx2/skill/references/picture-effects.md +0 -0
  367. {python_pptx2-3.1.0 → python_pptx2-3.1.1}/src/pptx2/skill/references/render.md +0 -0
  368. {python_pptx2-3.1.0 → python_pptx2-3.1.1}/src/pptx2/skill/references/slide-design.md +0 -0
  369. {python_pptx2-3.1.0 → python_pptx2-3.1.1}/src/pptx2/skill/references/smart-art.md +0 -0
  370. {python_pptx2-3.1.0 → python_pptx2-3.1.1}/src/pptx2/skill/references/space-aware-authoring.md +0 -0
  371. {python_pptx2-3.1.0 → python_pptx2-3.1.1}/src/pptx2/skill/references/tables.md +0 -0
  372. {python_pptx2-3.1.0 → python_pptx2-3.1.1}/src/pptx2/skill/references/theme.md +0 -0
  373. {python_pptx2-3.1.0 → python_pptx2-3.1.1}/src/pptx2/skill/references/three-d.md +0 -0
  374. {python_pptx2-3.1.0 → python_pptx2-3.1.1}/src/pptx2/skill/references/transitions.md +0 -0
  375. {python_pptx2-3.1.0 → python_pptx2-3.1.1}/src/pptx2/slide.py +0 -0
  376. {python_pptx2-3.1.0 → python_pptx2-3.1.1}/src/pptx2/slideops.py +0 -0
  377. {python_pptx2-3.1.0 → python_pptx2-3.1.1}/src/pptx2/smart_art.py +0 -0
  378. {python_pptx2-3.1.0 → python_pptx2-3.1.1}/src/pptx2/spec.py +0 -0
  379. {python_pptx2-3.1.0 → python_pptx2-3.1.1}/src/pptx2/table.py +0 -0
  380. {python_pptx2-3.1.0 → python_pptx2-3.1.1}/src/pptx2/table_styles.py +0 -0
  381. {python_pptx2-3.1.0 → python_pptx2-3.1.1}/src/pptx2/templates/default.pptx +0 -0
  382. {python_pptx2-3.1.0 → python_pptx2-3.1.1}/src/pptx2/templates/docx-icon.emf +0 -0
  383. {python_pptx2-3.1.0 → python_pptx2-3.1.1}/src/pptx2/templates/generic-icon.emf +0 -0
  384. {python_pptx2-3.1.0 → python_pptx2-3.1.1}/src/pptx2/templates/notes.xml +0 -0
  385. {python_pptx2-3.1.0 → python_pptx2-3.1.1}/src/pptx2/templates/notesMaster.xml +0 -0
  386. {python_pptx2-3.1.0 → python_pptx2-3.1.1}/src/pptx2/templates/pptx-icon.emf +0 -0
  387. {python_pptx2-3.1.0 → python_pptx2-3.1.1}/src/pptx2/templates/theme.xml +0 -0
  388. {python_pptx2-3.1.0 → python_pptx2-3.1.1}/src/pptx2/templates/xlsx-icon.emf +0 -0
  389. {python_pptx2-3.1.0 → python_pptx2-3.1.1}/src/pptx2/text/__init__.py +0 -0
  390. {python_pptx2-3.1.0 → python_pptx2-3.1.1}/src/pptx2/text/bullet.py +0 -0
  391. {python_pptx2-3.1.0 → python_pptx2-3.1.1}/src/pptx2/text/fonts.py +0 -0
  392. {python_pptx2-3.1.0 → python_pptx2-3.1.1}/src/pptx2/text/layout.py +0 -0
  393. {python_pptx2-3.1.0 → python_pptx2-3.1.1}/src/pptx2/text/text.py +0 -0
  394. {python_pptx2-3.1.0 → python_pptx2-3.1.1}/src/pptx2/theme.py +0 -0
  395. {python_pptx2-3.1.0 → python_pptx2-3.1.1}/src/pptx2/types.py +0 -0
  396. {python_pptx2-3.1.0 → python_pptx2-3.1.1}/src/pptx2/util.py +0 -0
  397. {python_pptx2-3.1.0 → python_pptx2-3.1.1}/src/python_pptx2.egg-info/SOURCES.txt +0 -0
  398. {python_pptx2-3.1.0 → python_pptx2-3.1.1}/src/python_pptx2.egg-info/dependency_links.txt +0 -0
  399. {python_pptx2-3.1.0 → python_pptx2-3.1.1}/src/python_pptx2.egg-info/entry_points.txt +0 -0
  400. {python_pptx2-3.1.0 → python_pptx2-3.1.1}/src/python_pptx2.egg-info/requires.txt +0 -0
  401. {python_pptx2-3.1.0 → python_pptx2-3.1.1}/src/python_pptx2.egg-info/top_level.txt +0 -0
  402. {python_pptx2-3.1.0 → python_pptx2-3.1.1}/tests/__init__.py +0 -0
  403. {python_pptx2-3.1.0 → python_pptx2-3.1.1}/tests/chart/__init__.py +0 -0
  404. {python_pptx2-3.1.0 → python_pptx2-3.1.1}/tests/chart/test_analytics.py +0 -0
  405. {python_pptx2-3.1.0 → python_pptx2-3.1.1}/tests/chart/test_axis.py +0 -0
  406. {python_pptx2-3.1.0 → python_pptx2-3.1.1}/tests/chart/test_category.py +0 -0
  407. {python_pptx2-3.1.0 → python_pptx2-3.1.1}/tests/chart/test_chart.py +0 -0
  408. {python_pptx2-3.1.0 → python_pptx2-3.1.1}/tests/chart/test_chart_toggles.py +0 -0
  409. {python_pptx2-3.1.0 → python_pptx2-3.1.1}/tests/chart/test_collision_strategy.py +0 -0
  410. {python_pptx2-3.1.0 → python_pptx2-3.1.1}/tests/chart/test_data.py +0 -0
  411. {python_pptx2-3.1.0 → python_pptx2-3.1.1}/tests/chart/test_datalabel.py +0 -0
  412. {python_pptx2-3.1.0 → python_pptx2-3.1.1}/tests/chart/test_legend.py +0 -0
  413. {python_pptx2-3.1.0 → python_pptx2-3.1.1}/tests/chart/test_marker.py +0 -0
  414. {python_pptx2-3.1.0 → python_pptx2-3.1.1}/tests/chart/test_palettes.py +0 -0
  415. {python_pptx2-3.1.0 → python_pptx2-3.1.1}/tests/chart/test_plot.py +0 -0
  416. {python_pptx2-3.1.0 → python_pptx2-3.1.1}/tests/chart/test_point.py +0 -0
  417. {python_pptx2-3.1.0 → python_pptx2-3.1.1}/tests/chart/test_quick_layouts.py +0 -0
  418. {python_pptx2-3.1.0 → python_pptx2-3.1.1}/tests/chart/test_series.py +0 -0
  419. {python_pptx2-3.1.0 → python_pptx2-3.1.1}/tests/chart/test_xlsx.py +0 -0
  420. {python_pptx2-3.1.0 → python_pptx2-3.1.1}/tests/chart/test_xmlwriter.py +0 -0
  421. {python_pptx2-3.1.0 → python_pptx2-3.1.1}/tests/design/__init__.py +0 -0
  422. {python_pptx2-3.1.0 → python_pptx2-3.1.1}/tests/design/test_blocks.py +0 -0
  423. {python_pptx2-3.1.0 → python_pptx2-3.1.1}/tests/design/test_components.py +0 -0
  424. {python_pptx2-3.1.0 → python_pptx2-3.1.1}/tests/design/test_figures.py +0 -0
  425. {python_pptx2-3.1.0 → python_pptx2-3.1.1}/tests/design/test_layout.py +0 -0
  426. {python_pptx2-3.1.0 → python_pptx2-3.1.1}/tests/design/test_palettes.py +0 -0
  427. {python_pptx2-3.1.0 → python_pptx2-3.1.1}/tests/design/test_recipes.py +0 -0
  428. {python_pptx2-3.1.0 → python_pptx2-3.1.1}/tests/design/test_style.py +0 -0
  429. {python_pptx2-3.1.0 → python_pptx2-3.1.1}/tests/design/test_tokens.py +0 -0
  430. {python_pptx2-3.1.0 → python_pptx2-3.1.1}/tests/dml/__init__.py +0 -0
  431. {python_pptx2-3.1.0 → python_pptx2-3.1.1}/tests/dml/test_chtfmt.py +0 -0
  432. {python_pptx2-3.1.0 → python_pptx2-3.1.1}/tests/dml/test_color.py +0 -0
  433. {python_pptx2-3.1.0 → python_pptx2-3.1.1}/tests/dml/test_effect.py +0 -0
  434. {python_pptx2-3.1.0 → python_pptx2-3.1.1}/tests/dml/test_fill.py +0 -0
  435. {python_pptx2-3.1.0 → python_pptx2-3.1.1}/tests/dml/test_line.py +0 -0
  436. {python_pptx2-3.1.0 → python_pptx2-3.1.1}/tests/dml/test_three_d.py +0 -0
  437. {python_pptx2-3.1.0 → python_pptx2-3.1.1}/tests/enum/__init__.py +0 -0
  438. {python_pptx2-3.1.0 → python_pptx2-3.1.1}/tests/enum/test_base.py +0 -0
  439. {python_pptx2-3.1.0 → python_pptx2-3.1.1}/tests/enum/test_shapes.py +0 -0
  440. {python_pptx2-3.1.0 → python_pptx2-3.1.1}/tests/integration/__init__.py +0 -0
  441. {python_pptx2-3.1.0 → python_pptx2-3.1.1}/tests/integration/round_trip.py +0 -0
  442. {python_pptx2-3.1.0 → python_pptx2-3.1.1}/tests/integration/test_add_slide_layout.py +0 -0
  443. {python_pptx2-3.1.0 → python_pptx2-3.1.1}/tests/integration/test_apply_template.py +0 -0
  444. {python_pptx2-3.1.0 → python_pptx2-3.1.1}/tests/integration/test_compose_package.py +0 -0
  445. {python_pptx2-3.1.0 → python_pptx2-3.1.1}/tests/integration/test_import_slide.py +0 -0
  446. {python_pptx2-3.1.0 → python_pptx2-3.1.1}/tests/integration/test_round_trip.py +0 -0
  447. {python_pptx2-3.1.0 → python_pptx2-3.1.1}/tests/opc/__init__.py +0 -0
  448. {python_pptx2-3.1.0 → python_pptx2-3.1.1}/tests/opc/test_oxml.py +0 -0
  449. {python_pptx2-3.1.0 → python_pptx2-3.1.1}/tests/opc/test_package.py +0 -0
  450. {python_pptx2-3.1.0 → python_pptx2-3.1.1}/tests/opc/test_packuri.py +0 -0
  451. {python_pptx2-3.1.0 → python_pptx2-3.1.1}/tests/opc/test_serialized.py +0 -0
  452. {python_pptx2-3.1.0 → python_pptx2-3.1.1}/tests/oxml/__init__.py +0 -0
  453. {python_pptx2-3.1.0 → python_pptx2-3.1.1}/tests/oxml/shapes/__init__.py +0 -0
  454. {python_pptx2-3.1.0 → python_pptx2-3.1.1}/tests/oxml/shapes/test_autoshape.py +0 -0
  455. {python_pptx2-3.1.0 → python_pptx2-3.1.1}/tests/oxml/shapes/test_graphfrm.py +0 -0
  456. {python_pptx2-3.1.0 → python_pptx2-3.1.1}/tests/oxml/shapes/test_groupshape.py +0 -0
  457. {python_pptx2-3.1.0 → python_pptx2-3.1.1}/tests/oxml/shapes/test_picture.py +0 -0
  458. {python_pptx2-3.1.0 → python_pptx2-3.1.1}/tests/oxml/test___init__.py +0 -0
  459. {python_pptx2-3.1.0 → python_pptx2-3.1.1}/tests/oxml/test_dml.py +0 -0
  460. {python_pptx2-3.1.0 → python_pptx2-3.1.1}/tests/oxml/test_ns.py +0 -0
  461. {python_pptx2-3.1.0 → python_pptx2-3.1.1}/tests/oxml/test_presentation.py +0 -0
  462. {python_pptx2-3.1.0 → python_pptx2-3.1.1}/tests/oxml/test_simpletypes.py +0 -0
  463. {python_pptx2-3.1.0 → python_pptx2-3.1.1}/tests/oxml/test_slide.py +0 -0
  464. {python_pptx2-3.1.0 → python_pptx2-3.1.1}/tests/oxml/test_table.py +0 -0
  465. {python_pptx2-3.1.0 → python_pptx2-3.1.1}/tests/oxml/test_theme.py +0 -0
  466. {python_pptx2-3.1.0 → python_pptx2-3.1.1}/tests/oxml/test_xmlchemy.py +0 -0
  467. {python_pptx2-3.1.0 → python_pptx2-3.1.1}/tests/oxml/unitdata/__init__.py +0 -0
  468. {python_pptx2-3.1.0 → python_pptx2-3.1.1}/tests/oxml/unitdata/dml.py +0 -0
  469. {python_pptx2-3.1.0 → python_pptx2-3.1.1}/tests/oxml/unitdata/shape.py +0 -0
  470. {python_pptx2-3.1.0 → python_pptx2-3.1.1}/tests/oxml/unitdata/text.py +0 -0
  471. {python_pptx2-3.1.0 → python_pptx2-3.1.1}/tests/paper/__init__.py +0 -0
  472. {python_pptx2-3.1.0 → python_pptx2-3.1.1}/tests/paper/_authoring/build_fixtures.py +0 -0
  473. {python_pptx2-3.1.0 → python_pptx2-3.1.1}/tests/paper/_authoring/update_goldens.py +0 -0
  474. {python_pptx2-3.1.0 → python_pptx2-3.1.1}/tests/paper/clock.py +0 -0
  475. {python_pptx2-3.1.0 → python_pptx2-3.1.1}/tests/paper/conftest.py +0 -0
  476. {python_pptx2-3.1.0 → python_pptx2-3.1.1}/tests/paper/contract.py +0 -0
  477. {python_pptx2-3.1.0 → python_pptx2-3.1.1}/tests/paper/corpus.py +0 -0
  478. {python_pptx2-3.1.0 → python_pptx2-3.1.1}/tests/paper/fragval.py +0 -0
  479. {python_pptx2-3.1.0 → python_pptx2-3.1.1}/tests/paper/idlists.py +0 -0
  480. {python_pptx2-3.1.0 → python_pptx2-3.1.1}/tests/paper/lo.py +0 -0
  481. {python_pptx2-3.1.0 → python_pptx2-3.1.1}/tests/paper/relint.py +0 -0
  482. {python_pptx2-3.1.0 → python_pptx2-3.1.1}/tests/paper/test_autofit.py +0 -0
  483. {python_pptx2-3.1.0 → python_pptx2-3.1.1}/tests/paper/test_batch.py +0 -0
  484. {python_pptx2-3.1.0 → python_pptx2-3.1.1}/tests/paper/test_bullets.py +0 -0
  485. {python_pptx2-3.1.0 → python_pptx2-3.1.1}/tests/paper/test_chart_routing.py +0 -0
  486. {python_pptx2-3.1.0 → python_pptx2-3.1.1}/tests/paper/test_content_type_coverage.py +0 -0
  487. {python_pptx2-3.1.0 → python_pptx2-3.1.1}/tests/paper/test_contract_harness.py +0 -0
  488. {python_pptx2-3.1.0 → python_pptx2-3.1.1}/tests/paper/test_deck_manifest.py +0 -0
  489. {python_pptx2-3.1.0 → python_pptx2-3.1.1}/tests/paper/test_diff.py +0 -0
  490. {python_pptx2-3.1.0 → python_pptx2-3.1.1}/tests/paper/test_distribution_doctor.py +0 -0
  491. {python_pptx2-3.1.0 → python_pptx2-3.1.1}/tests/paper/test_edit_text.py +0 -0
  492. {python_pptx2-3.1.0 → python_pptx2-3.1.1}/tests/paper/test_effective_inspect.py +0 -0
  493. {python_pptx2-3.1.0 → python_pptx2-3.1.1}/tests/paper/test_fields_hf.py +0 -0
  494. {python_pptx2-3.1.0 → python_pptx2-3.1.1}/tests/paper/test_fixture_corpus.py +0 -0
  495. {python_pptx2-3.1.0 → python_pptx2-3.1.1}/tests/paper/test_hf_apply.py +0 -0
  496. {python_pptx2-3.1.0 → python_pptx2-3.1.1}/tests/paper/test_image_replace.py +0 -0
  497. {python_pptx2-3.1.0 → python_pptx2-3.1.1}/tests/paper/test_import.py +0 -0
  498. {python_pptx2-3.1.0 → python_pptx2-3.1.1}/tests/paper/test_inspect_text.py +0 -0
  499. {python_pptx2-3.1.0 → python_pptx2-3.1.1}/tests/paper/test_notes.py +0 -0
  500. {python_pptx2-3.1.0 → python_pptx2-3.1.1}/tests/paper/test_package_io_hardening.py +0 -0
  501. {python_pptx2-3.1.0 → python_pptx2-3.1.1}/tests/paper/test_package_kernel.py +0 -0
  502. {python_pptx2-3.1.0 → python_pptx2-3.1.1}/tests/paper/test_package_round_trip.py +0 -0
  503. {python_pptx2-3.1.0 → python_pptx2-3.1.1}/tests/paper/test_rebind.py +0 -0
  504. {python_pptx2-3.1.0 → python_pptx2-3.1.1}/tests/paper/test_save_destinations.py +0 -0
  505. {python_pptx2-3.1.0 → python_pptx2-3.1.1}/tests/paper/test_shape_surgery.py +0 -0
  506. {python_pptx2-3.1.0 → python_pptx2-3.1.1}/tests/paper/test_slide_ops.py +0 -0
  507. {python_pptx2-3.1.0 → python_pptx2-3.1.1}/tests/paper/test_slide_partname_allocation.py +0 -0
  508. {python_pptx2-3.1.0 → python_pptx2-3.1.1}/tests/paper/test_table_ops.py +0 -0
  509. {python_pptx2-3.1.0 → python_pptx2-3.1.1}/tests/paper/test_transaction.py +0 -0
  510. {python_pptx2-3.1.0 → python_pptx2-3.1.1}/tests/paper/test_walkthrough_pitchbook.py +0 -0
  511. {python_pptx2-3.1.0 → python_pptx2-3.1.1}/tests/paper/test_walkthrough_qbr.py +0 -0
  512. {python_pptx2-3.1.0 → python_pptx2-3.1.1}/tests/paper/test_zipguard_end_record.py +0 -0
  513. {python_pptx2-3.1.0 → python_pptx2-3.1.1}/tests/paper/test_zipguard_structural.py +0 -0
  514. {python_pptx2-3.1.0 → python_pptx2-3.1.1}/tests/parts/__init__.py +0 -0
  515. {python_pptx2-3.1.0 → python_pptx2-3.1.1}/tests/parts/test_chart.py +0 -0
  516. {python_pptx2-3.1.0 → python_pptx2-3.1.1}/tests/parts/test_coreprops.py +0 -0
  517. {python_pptx2-3.1.0 → python_pptx2-3.1.1}/tests/parts/test_customprops.py +0 -0
  518. {python_pptx2-3.1.0 → python_pptx2-3.1.1}/tests/parts/test_embeddedpackage.py +0 -0
  519. {python_pptx2-3.1.0 → python_pptx2-3.1.1}/tests/parts/test_image.py +0 -0
  520. {python_pptx2-3.1.0 → python_pptx2-3.1.1}/tests/parts/test_media.py +0 -0
  521. {python_pptx2-3.1.0 → python_pptx2-3.1.1}/tests/parts/test_presentation.py +0 -0
  522. {python_pptx2-3.1.0 → python_pptx2-3.1.1}/tests/parts/test_slide.py +0 -0
  523. {python_pptx2-3.1.0 → python_pptx2-3.1.1}/tests/schema/__init__.py +0 -0
  524. {python_pptx2-3.1.0 → python_pptx2-3.1.1}/tests/schema/oxml_schema_validator.py +0 -0
  525. {python_pptx2-3.1.0 → python_pptx2-3.1.1}/tests/schema/test_schema_validity.py +0 -0
  526. {python_pptx2-3.1.0 → python_pptx2-3.1.1}/tests/shapes/__init__.py +0 -0
  527. {python_pptx2-3.1.0 → python_pptx2-3.1.1}/tests/shapes/test_anchor.py +0 -0
  528. {python_pptx2-3.1.0 → python_pptx2-3.1.1}/tests/shapes/test_animate.py +0 -0
  529. {python_pptx2-3.1.0 → python_pptx2-3.1.1}/tests/shapes/test_autoshape.py +0 -0
  530. {python_pptx2-3.1.0 → python_pptx2-3.1.1}/tests/shapes/test_base.py +0 -0
  531. {python_pptx2-3.1.0 → python_pptx2-3.1.1}/tests/shapes/test_connector.py +0 -0
  532. {python_pptx2-3.1.0 → python_pptx2-3.1.1}/tests/shapes/test_freeform.py +0 -0
  533. {python_pptx2-3.1.0 → python_pptx2-3.1.1}/tests/shapes/test_graphfrm.py +0 -0
  534. {python_pptx2-3.1.0 → python_pptx2-3.1.1}/tests/shapes/test_group.py +0 -0
  535. {python_pptx2-3.1.0 → python_pptx2-3.1.1}/tests/shapes/test_picture.py +0 -0
  536. {python_pptx2-3.1.0 → python_pptx2-3.1.1}/tests/shapes/test_placeholder.py +0 -0
  537. {python_pptx2-3.1.0 → python_pptx2-3.1.1}/tests/shapes/test_shapetree.py +0 -0
  538. {python_pptx2-3.1.0 → python_pptx2-3.1.1}/tests/test_accessibility.py +0 -0
  539. {python_pptx2-3.1.0 → python_pptx2-3.1.1}/tests/test_action.py +0 -0
  540. {python_pptx2-3.1.0 → python_pptx2-3.1.1}/tests/test_animation.py +0 -0
  541. {python_pptx2-3.1.0 → python_pptx2-3.1.1}/tests/test_api.py +0 -0
  542. {python_pptx2-3.1.0 → python_pptx2-3.1.1}/tests/test_audit.py +0 -0
  543. {python_pptx2-3.1.0 → python_pptx2-3.1.1}/tests/test_compose_from_spec.py +0 -0
  544. {python_pptx2-3.1.0 → python_pptx2-3.1.1}/tests/test_diagrams.py +0 -0
  545. {python_pptx2-3.1.0 → python_pptx2-3.1.1}/tests/test_files/calibriz.ttf +0 -0
  546. {python_pptx2-3.1.0 → python_pptx2-3.1.1}/tests/test_files/cdw-logo.eps +0 -0
  547. {python_pptx2-3.1.0 → python_pptx2-3.1.1}/tests/test_files/dummy.mp4 +0 -0
  548. {python_pptx2-3.1.0 → python_pptx2-3.1.1}/tests/test_files/expanded_pptx/[Content_Types].xml +0 -0
  549. {python_pptx2-3.1.0 → python_pptx2-3.1.1}/tests/test_files/expanded_pptx/_rels/.rels +0 -0
  550. {python_pptx2-3.1.0 → python_pptx2-3.1.1}/tests/test_files/expanded_pptx/docProps/app.xml +0 -0
  551. {python_pptx2-3.1.0 → python_pptx2-3.1.1}/tests/test_files/expanded_pptx/docProps/core.xml +0 -0
  552. {python_pptx2-3.1.0 → python_pptx2-3.1.1}/tests/test_files/expanded_pptx/docProps/thumbnail.jpeg +0 -0
  553. {python_pptx2-3.1.0 → python_pptx2-3.1.1}/tests/test_files/expanded_pptx/ppt/_rels/presentation.xml.rels +0 -0
  554. {python_pptx2-3.1.0 → python_pptx2-3.1.1}/tests/test_files/expanded_pptx/ppt/presProps.xml +0 -0
  555. {python_pptx2-3.1.0 → python_pptx2-3.1.1}/tests/test_files/expanded_pptx/ppt/presentation.xml +0 -0
  556. {python_pptx2-3.1.0 → python_pptx2-3.1.1}/tests/test_files/expanded_pptx/ppt/printerSettings/printerSettings1.bin +0 -0
  557. {python_pptx2-3.1.0 → python_pptx2-3.1.1}/tests/test_files/expanded_pptx/ppt/slideLayouts/_rels/slideLayout1.xml.rels +0 -0
  558. {python_pptx2-3.1.0 → python_pptx2-3.1.1}/tests/test_files/expanded_pptx/ppt/slideLayouts/_rels/slideLayout10.xml.rels +0 -0
  559. {python_pptx2-3.1.0 → python_pptx2-3.1.1}/tests/test_files/expanded_pptx/ppt/slideLayouts/_rels/slideLayout11.xml.rels +0 -0
  560. {python_pptx2-3.1.0 → python_pptx2-3.1.1}/tests/test_files/expanded_pptx/ppt/slideLayouts/_rels/slideLayout2.xml.rels +0 -0
  561. {python_pptx2-3.1.0 → python_pptx2-3.1.1}/tests/test_files/expanded_pptx/ppt/slideLayouts/_rels/slideLayout3.xml.rels +0 -0
  562. {python_pptx2-3.1.0 → python_pptx2-3.1.1}/tests/test_files/expanded_pptx/ppt/slideLayouts/_rels/slideLayout4.xml.rels +0 -0
  563. {python_pptx2-3.1.0 → python_pptx2-3.1.1}/tests/test_files/expanded_pptx/ppt/slideLayouts/_rels/slideLayout5.xml.rels +0 -0
  564. {python_pptx2-3.1.0 → python_pptx2-3.1.1}/tests/test_files/expanded_pptx/ppt/slideLayouts/_rels/slideLayout6.xml.rels +0 -0
  565. {python_pptx2-3.1.0 → python_pptx2-3.1.1}/tests/test_files/expanded_pptx/ppt/slideLayouts/_rels/slideLayout7.xml.rels +0 -0
  566. {python_pptx2-3.1.0 → python_pptx2-3.1.1}/tests/test_files/expanded_pptx/ppt/slideLayouts/_rels/slideLayout8.xml.rels +0 -0
  567. {python_pptx2-3.1.0 → python_pptx2-3.1.1}/tests/test_files/expanded_pptx/ppt/slideLayouts/_rels/slideLayout9.xml.rels +0 -0
  568. {python_pptx2-3.1.0 → python_pptx2-3.1.1}/tests/test_files/expanded_pptx/ppt/slideLayouts/slideLayout1.xml +0 -0
  569. {python_pptx2-3.1.0 → python_pptx2-3.1.1}/tests/test_files/expanded_pptx/ppt/slideLayouts/slideLayout10.xml +0 -0
  570. {python_pptx2-3.1.0 → python_pptx2-3.1.1}/tests/test_files/expanded_pptx/ppt/slideLayouts/slideLayout11.xml +0 -0
  571. {python_pptx2-3.1.0 → python_pptx2-3.1.1}/tests/test_files/expanded_pptx/ppt/slideLayouts/slideLayout2.xml +0 -0
  572. {python_pptx2-3.1.0 → python_pptx2-3.1.1}/tests/test_files/expanded_pptx/ppt/slideLayouts/slideLayout3.xml +0 -0
  573. {python_pptx2-3.1.0 → python_pptx2-3.1.1}/tests/test_files/expanded_pptx/ppt/slideLayouts/slideLayout4.xml +0 -0
  574. {python_pptx2-3.1.0 → python_pptx2-3.1.1}/tests/test_files/expanded_pptx/ppt/slideLayouts/slideLayout5.xml +0 -0
  575. {python_pptx2-3.1.0 → python_pptx2-3.1.1}/tests/test_files/expanded_pptx/ppt/slideLayouts/slideLayout6.xml +0 -0
  576. {python_pptx2-3.1.0 → python_pptx2-3.1.1}/tests/test_files/expanded_pptx/ppt/slideLayouts/slideLayout7.xml +0 -0
  577. {python_pptx2-3.1.0 → python_pptx2-3.1.1}/tests/test_files/expanded_pptx/ppt/slideLayouts/slideLayout8.xml +0 -0
  578. {python_pptx2-3.1.0 → python_pptx2-3.1.1}/tests/test_files/expanded_pptx/ppt/slideLayouts/slideLayout9.xml +0 -0
  579. {python_pptx2-3.1.0 → python_pptx2-3.1.1}/tests/test_files/expanded_pptx/ppt/slideMasters/_rels/slideMaster1.xml.rels +0 -0
  580. {python_pptx2-3.1.0 → python_pptx2-3.1.1}/tests/test_files/expanded_pptx/ppt/slideMasters/slideMaster1.xml +0 -0
  581. {python_pptx2-3.1.0 → python_pptx2-3.1.1}/tests/test_files/expanded_pptx/ppt/slides/_rels/slide1.xml.rels +0 -0
  582. {python_pptx2-3.1.0 → python_pptx2-3.1.1}/tests/test_files/expanded_pptx/ppt/slides/slide1.xml +0 -0
  583. {python_pptx2-3.1.0 → python_pptx2-3.1.1}/tests/test_files/expanded_pptx/ppt/tableStyles.xml +0 -0
  584. {python_pptx2-3.1.0 → python_pptx2-3.1.1}/tests/test_files/expanded_pptx/ppt/theme/theme1.xml +0 -0
  585. {python_pptx2-3.1.0 → python_pptx2-3.1.1}/tests/test_files/expanded_pptx/ppt/viewProps.xml +0 -0
  586. {python_pptx2-3.1.0 → python_pptx2-3.1.1}/tests/test_files/minimal.pptx +0 -0
  587. {python_pptx2-3.1.0 → python_pptx2-3.1.1}/tests/test_files/minimal_slide.xml +0 -0
  588. {python_pptx2-3.1.0 → python_pptx2-3.1.1}/tests/test_files/missing_rels_item.pptx +0 -0
  589. {python_pptx2-3.1.0 → python_pptx2-3.1.1}/tests/test_files/monty-truth.png +0 -0
  590. {python_pptx2-3.1.0 → python_pptx2-3.1.1}/tests/test_files/no-core-props.pptx +0 -0
  591. {python_pptx2-3.1.0 → python_pptx2-3.1.1}/tests/test_files/no-slides.pptx +0 -0
  592. {python_pptx2-3.1.0 → python_pptx2-3.1.1}/tests/test_files/presentation.xml +0 -0
  593. {python_pptx2-3.1.0 → python_pptx2-3.1.1}/tests/test_files/python-icon.jpeg +0 -0
  594. {python_pptx2-3.1.0 → python_pptx2-3.1.1}/tests/test_files/python-powered.png +0 -0
  595. {python_pptx2-3.1.0 → python_pptx2-3.1.1}/tests/test_files/python.bmp +0 -0
  596. {python_pptx2-3.1.0 → python_pptx2-3.1.1}/tests/test_files/slideLayout1.xml +0 -0
  597. {python_pptx2-3.1.0 → python_pptx2-3.1.1}/tests/test_files/smart_art_org_chart.pptx +0 -0
  598. {python_pptx2-3.1.0 → python_pptx2-3.1.1}/tests/test_files/snippets/2x2-area-date.txt +0 -0
  599. {python_pptx2-3.1.0 → python_pptx2-3.1.1}/tests/test_files/snippets/2x2-area-float.txt +0 -0
  600. {python_pptx2-3.1.0 → python_pptx2-3.1.1}/tests/test_files/snippets/2x2-area-stacked-100.txt +0 -0
  601. {python_pptx2-3.1.0 → python_pptx2-3.1.1}/tests/test_files/snippets/2x2-area-stacked.txt +0 -0
  602. {python_pptx2-3.1.0 → python_pptx2-3.1.1}/tests/test_files/snippets/2x2-area.txt +0 -0
  603. {python_pptx2-3.1.0 → python_pptx2-3.1.1}/tests/test_files/snippets/2x2-bar-clustered-date.txt +0 -0
  604. {python_pptx2-3.1.0 → python_pptx2-3.1.1}/tests/test_files/snippets/2x2-bar-clustered-float.txt +0 -0
  605. {python_pptx2-3.1.0 → python_pptx2-3.1.1}/tests/test_files/snippets/2x2-bar-clustered.txt +0 -0
  606. {python_pptx2-3.1.0 → python_pptx2-3.1.1}/tests/test_files/snippets/2x2-bar-stacked-100.txt +0 -0
  607. {python_pptx2-3.1.0 → python_pptx2-3.1.1}/tests/test_files/snippets/2x2-bar-stacked.txt +0 -0
  608. {python_pptx2-3.1.0 → python_pptx2-3.1.1}/tests/test_files/snippets/2x2-column-clustered.txt +0 -0
  609. {python_pptx2-3.1.0 → python_pptx2-3.1.1}/tests/test_files/snippets/2x2-column-stacked-100.txt +0 -0
  610. {python_pptx2-3.1.0 → python_pptx2-3.1.1}/tests/test_files/snippets/2x2-column-stacked.txt +0 -0
  611. {python_pptx2-3.1.0 → python_pptx2-3.1.1}/tests/test_files/snippets/2x2-line-date.txt +0 -0
  612. {python_pptx2-3.1.0 → python_pptx2-3.1.1}/tests/test_files/snippets/2x2-line-float.txt +0 -0
  613. {python_pptx2-3.1.0 → python_pptx2-3.1.1}/tests/test_files/snippets/2x2-line-markers-stacked-100.txt +0 -0
  614. {python_pptx2-3.1.0 → python_pptx2-3.1.1}/tests/test_files/snippets/2x2-line-markers-stacked.txt +0 -0
  615. {python_pptx2-3.1.0 → python_pptx2-3.1.1}/tests/test_files/snippets/2x2-line-markers.txt +0 -0
  616. {python_pptx2-3.1.0 → python_pptx2-3.1.1}/tests/test_files/snippets/2x2-line-stacked-100.txt +0 -0
  617. {python_pptx2-3.1.0 → python_pptx2-3.1.1}/tests/test_files/snippets/2x2-line-stacked.txt +0 -0
  618. {python_pptx2-3.1.0 → python_pptx2-3.1.1}/tests/test_files/snippets/2x2-line.txt +0 -0
  619. {python_pptx2-3.1.0 → python_pptx2-3.1.1}/tests/test_files/snippets/2x3-bubble-3d.txt +0 -0
  620. {python_pptx2-3.1.0 → python_pptx2-3.1.1}/tests/test_files/snippets/2x3-bubble.txt +0 -0
  621. {python_pptx2-3.1.0 → python_pptx2-3.1.1}/tests/test_files/snippets/2x3-xy-lines-no-markers.txt +0 -0
  622. {python_pptx2-3.1.0 → python_pptx2-3.1.1}/tests/test_files/snippets/2x3-xy-lines.txt +0 -0
  623. {python_pptx2-3.1.0 → python_pptx2-3.1.1}/tests/test_files/snippets/2x3-xy-smooth-no-markers.txt +0 -0
  624. {python_pptx2-3.1.0 → python_pptx2-3.1.1}/tests/test_files/snippets/2x3-xy-smooth.txt +0 -0
  625. {python_pptx2-3.1.0 → python_pptx2-3.1.1}/tests/test_files/snippets/2x3-xy.txt +0 -0
  626. {python_pptx2-3.1.0 → python_pptx2-3.1.1}/tests/test_files/snippets/2x5-radar.txt +0 -0
  627. {python_pptx2-3.1.0 → python_pptx2-3.1.1}/tests/test_files/snippets/3x1-pie-exploded.txt +0 -0
  628. {python_pptx2-3.1.0 → python_pptx2-3.1.1}/tests/test_files/snippets/3x1-pie.txt +0 -0
  629. {python_pptx2-3.1.0 → python_pptx2-3.1.1}/tests/test_files/snippets/3x2-doughnut-exploded.txt +0 -0
  630. {python_pptx2-3.1.0 → python_pptx2-3.1.1}/tests/test_files/snippets/3x2-doughnut.txt +0 -0
  631. {python_pptx2-3.1.0 → python_pptx2-3.1.1}/tests/test_files/snippets/4x2-multi-cat-bar.txt +0 -0
  632. {python_pptx2-3.1.0 → python_pptx2-3.1.1}/tests/test_files/snippets/adjust-ser-count.txt +0 -0
  633. {python_pptx2-3.1.0 → python_pptx2-3.1.1}/tests/test_files/snippets/cat-labels.txt +0 -0
  634. {python_pptx2-3.1.0 → python_pptx2-3.1.1}/tests/test_files/snippets/content-types-xml.txt +0 -0
  635. {python_pptx2-3.1.0 → python_pptx2-3.1.1}/tests/test_files/snippets/default-notes.txt +0 -0
  636. {python_pptx2-3.1.0 → python_pptx2-3.1.1}/tests/test_files/snippets/default-notesMaster.txt +0 -0
  637. {python_pptx2-3.1.0 → python_pptx2-3.1.1}/tests/test_files/snippets/default-theme.txt +0 -0
  638. {python_pptx2-3.1.0 → python_pptx2-3.1.1}/tests/test_files/snippets/freeform.txt +0 -0
  639. {python_pptx2-3.1.0 → python_pptx2-3.1.1}/tests/test_files/snippets/package-rels-xml.txt +0 -0
  640. {python_pptx2-3.1.0 → python_pptx2-3.1.1}/tests/test_files/snippets/placeholders.txt +0 -0
  641. {python_pptx2-3.1.0 → python_pptx2-3.1.1}/tests/test_files/snippets/presentation-rels-xml.txt +0 -0
  642. {python_pptx2-3.1.0 → python_pptx2-3.1.1}/tests/test_files/snippets/relationships.txt +0 -0
  643. {python_pptx2-3.1.0 → python_pptx2-3.1.1}/tests/test_files/snippets/rels-load-from-xml.txt +0 -0
  644. {python_pptx2-3.1.0 → python_pptx2-3.1.1}/tests/test_files/snippets/rewrite-ser.txt +0 -0
  645. {python_pptx2-3.1.0 → python_pptx2-3.1.1}/tests/test_files/snippets/timing.txt +0 -0
  646. {python_pptx2-3.1.0 → python_pptx2-3.1.1}/tests/test_files/test.pptx +0 -0
  647. {python_pptx2-3.1.0 → python_pptx2-3.1.1}/tests/test_files/test_slides.pptx +0 -0
  648. {python_pptx2-3.1.0 → python_pptx2-3.1.1}/tests/test_formats.py +0 -0
  649. {python_pptx2-3.1.0 → python_pptx2-3.1.1}/tests/test_geometry.py +0 -0
  650. {python_pptx2-3.1.0 → python_pptx2-3.1.1}/tests/test_inherit.py +0 -0
  651. {python_pptx2-3.1.0 → python_pptx2-3.1.1}/tests/test_lint.py +0 -0
  652. {python_pptx2-3.1.0 → python_pptx2-3.1.1}/tests/test_lint_on_save.py +0 -0
  653. {python_pptx2-3.1.0 → python_pptx2-3.1.1}/tests/test_math.py +0 -0
  654. {python_pptx2-3.1.0 → python_pptx2-3.1.1}/tests/test_media.py +0 -0
  655. {python_pptx2-3.1.0 → python_pptx2-3.1.1}/tests/test_new_features.py +0 -0
  656. {python_pptx2-3.1.0 → python_pptx2-3.1.1}/tests/test_package.py +0 -0
  657. {python_pptx2-3.1.0 → python_pptx2-3.1.1}/tests/test_pathlike_inputs.py +0 -0
  658. {python_pptx2-3.1.0 → python_pptx2-3.1.1}/tests/test_powerpoint_strict_validation.py +0 -0
  659. {python_pptx2-3.1.0 → python_pptx2-3.1.1}/tests/test_presentation.py +0 -0
  660. {python_pptx2-3.1.0 → python_pptx2-3.1.1}/tests/test_render.py +0 -0
  661. {python_pptx2-3.1.0 → python_pptx2-3.1.1}/tests/test_render_slides_alias.py +0 -0
  662. {python_pptx2-3.1.0 → python_pptx2-3.1.1}/tests/test_section.py +0 -0
  663. {python_pptx2-3.1.0 → python_pptx2-3.1.1}/tests/test_shape_helpers.py +0 -0
  664. {python_pptx2-3.1.0 → python_pptx2-3.1.1}/tests/test_shared.py +0 -0
  665. {python_pptx2-3.1.0 → python_pptx2-3.1.1}/tests/test_skill.py +0 -0
  666. {python_pptx2-3.1.0 → python_pptx2-3.1.1}/tests/test_slide.py +0 -0
  667. {python_pptx2-3.1.0 → python_pptx2-3.1.1}/tests/test_smart_art.py +0 -0
  668. {python_pptx2-3.1.0 → python_pptx2-3.1.1}/tests/test_svg_picture.py +0 -0
  669. {python_pptx2-3.1.0 → python_pptx2-3.1.1}/tests/test_table.py +0 -0
  670. {python_pptx2-3.1.0 → python_pptx2-3.1.1}/tests/test_table_extras.py +0 -0
  671. {python_pptx2-3.1.0 → python_pptx2-3.1.1}/tests/test_theme.py +0 -0
  672. {python_pptx2-3.1.0 → python_pptx2-3.1.1}/tests/test_transition_morph.py +0 -0
  673. {python_pptx2-3.1.0 → python_pptx2-3.1.1}/tests/test_util.py +0 -0
  674. {python_pptx2-3.1.0 → python_pptx2-3.1.1}/tests/text/__init__.py +0 -0
  675. {python_pptx2-3.1.0 → python_pptx2-3.1.1}/tests/text/test_fonts.py +0 -0
  676. {python_pptx2-3.1.0 → python_pptx2-3.1.1}/tests/text/test_layout.py +0 -0
  677. {python_pptx2-3.1.0 → python_pptx2-3.1.1}/tests/text/test_text.py +0 -0
  678. {python_pptx2-3.1.0 → python_pptx2-3.1.1}/tests/unitdata.py +0 -0
  679. {python_pptx2-3.1.0 → python_pptx2-3.1.1}/tests/unitutil/__init__.py +0 -0
  680. {python_pptx2-3.1.0 → python_pptx2-3.1.1}/tests/unitutil/cxml.py +0 -0
  681. {python_pptx2-3.1.0 → python_pptx2-3.1.1}/tests/unitutil/file.py +0 -0
  682. {python_pptx2-3.1.0 → python_pptx2-3.1.1}/tests/unitutil/mock.py +0 -0
  683. {python_pptx2-3.1.0 → python_pptx2-3.1.1}/tox.ini +0 -0
@@ -15,6 +15,18 @@ can sit beside both ``python-pptx`` (``pptx``) and ``power-pptx``
15
15
  .. _`scanny/python-pptx`: https://github.com/scanny/python-pptx
16
16
 
17
17
 
18
+ 3.1.1 (2026-09-03)
19
+ ++++++++++++++++++
20
+
21
+ Changed
22
+
23
+ - ``render_contact_sheet`` goes straight to the PDF export when a page
24
+ splitter (``pdftoppm`` or ``pypdfium2``) is available, instead of first
25
+ paying for a ``--convert-to png`` run that stock LibreOffice 7+ answers
26
+ with a single slide. Roughly halves the wall-clock of a visual check on
27
+ a multi-slide deck; ``"auto"`` remains the portable fallback.
28
+
29
+
18
30
  3.1.0 (2026-09-03)
19
31
  ++++++++++++++++++
20
32
 
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: python-pptx2
3
- Version: 3.1.0
3
+ Version: 3.1.1
4
4
  Summary: Create, read, and update PowerPoint 2007+ (.pptx) files. Fork of power-pptx / python-pptx, published as python-pptx2.
5
5
  Author: Matěj Štágl
6
6
  Author-email: stagl@wattlescript.org
@@ -65,7 +65,7 @@ from pptx2.parts.slide import (
65
65
  if TYPE_CHECKING:
66
66
  from pptx2.opc.package import Part
67
67
 
68
- __version__ = "3.1.0"
68
+ __version__ = "3.1.1"
69
69
 
70
70
  sys.modules["pptx2.exceptions"] = exceptions
71
71
  del sys
@@ -324,6 +324,17 @@ def _render_via_pdf(
324
324
  pass
325
325
 
326
326
 
327
+ def _pdf_splitter_available() -> bool:
328
+ """True when the PDF→PNG step can run (Poppler's pdftoppm or pypdfium2)."""
329
+ if shutil.which("pdftoppm") is not None:
330
+ return True
331
+ try:
332
+ import pypdfium2 # type: ignore[import-not-found] # noqa: F401
333
+ except ImportError:
334
+ return False
335
+ return True
336
+
337
+
327
338
  def _pdf_to_pngs(pdf_path: Path, out_dir: Path, *, dpi: int) -> List[Path]:
328
339
  """Split a PDF into one PNG per page in *out_dir* and return the paths.
329
340
 
@@ -615,13 +626,18 @@ def render_contact_sheet(
615
626
 
616
627
  work_dir = Path(tempfile.mkdtemp(prefix="pptx-sheet-"))
617
628
  try:
629
+ # Stock LibreOffice 7+ writes only the first slide through the PNG
630
+ # filter, so for a multi-slide deck "auto" pays for a wasted soffice
631
+ # start before falling back to PDF. Go straight to PDF whenever a
632
+ # page splitter is available; "auto" remains the portable fallback.
633
+ strategy = "pdf" if _pdf_splitter_available() else "auto"
618
634
  paths = render_slide_thumbnails(
619
635
  prs,
620
636
  out_dir=work_dir,
621
637
  slide_indexes=slides,
622
638
  soffice_bin=soffice_bin,
623
639
  timeout=timeout,
624
- strategy="auto",
640
+ strategy=strategy,
625
641
  dpi=dpi,
626
642
  )
627
643
  if not paths:
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: python-pptx2
3
- Version: 3.1.0
3
+ Version: 3.1.1
4
4
  Summary: Create, read, and update PowerPoint 2007+ (.pptx) files. Fork of power-pptx / python-pptx, published as python-pptx2.
5
5
  Author: Matěj Štágl
6
6
  Author-email: stagl@wattlescript.org
@@ -2,6 +2,7 @@
2
2
 
3
3
  from __future__ import annotations
4
4
 
5
+ import contextlib
5
6
  from pathlib import Path
6
7
  from subprocess import CompletedProcess
7
8
  from unittest.mock import patch
@@ -30,13 +31,39 @@ def _fake_soffice_run(num_slides: int, size=(320, 180)):
30
31
  return _runner
31
32
 
32
33
 
34
+ def _fake_pdf_pipeline(num_slides: int, size=(320, 180)):
35
+ """Stand-ins for ``soffice --convert-to pdf`` + the page splitter."""
36
+
37
+ def _soffice_pdf(soffice_bin, deck_path, out_dir, timeout):
38
+ (Path(out_dir) / "_render_input.pdf").write_bytes(b"%PDF-1.4 fake")
39
+ return CompletedProcess(args=[], returncode=0, stdout=b"", stderr=b"")
40
+
41
+ def _split(pdf_path, out_dir, *, dpi):
42
+ pages = []
43
+ for i in range(num_slides):
44
+ p = Path(out_dir) / f"page-{i + 1}.png"
45
+ Image.new("RGB", size, (200, 200 + i * 10, 200)).save(p)
46
+ pages.append(p)
47
+ return pages
48
+
49
+ return _soffice_pdf, _split
50
+
51
+
52
+ @contextlib.contextmanager
53
+ def _mocked_png_renderer(num_slides: int):
54
+ """Mock a LibreOffice that writes every slide through the PNG filter and has no PDF splitter."""
55
+ with (
56
+ patch("pptx2.render.shutil.which", return_value="/usr/bin/soffice"),
57
+ patch("pptx2.render._pdf_splitter_available", return_value=False),
58
+ patch("pptx2.render._run_soffice", side_effect=_fake_soffice_run(num_slides)),
59
+ ):
60
+ yield
61
+
62
+
33
63
  class DescribeRenderContactSheet:
34
64
  def it_tiles_every_slide_into_one_png(self, tmp_path, five_slide_prs):
35
65
  out = tmp_path / "sheet.png"
36
- with (
37
- patch("pptx2.render.shutil.which", return_value="/usr/bin/soffice"),
38
- patch("pptx2.render._run_soffice", side_effect=_fake_soffice_run(5)),
39
- ):
66
+ with _mocked_png_renderer(5):
40
67
  written = render_contact_sheet(five_slide_prs, out, cols=3, thumb_width=160, gap=10)
41
68
  assert written == out
42
69
  assert out.is_file()
@@ -46,22 +73,32 @@ class DescribeRenderContactSheet:
46
73
 
47
74
  def it_respects_a_slide_subset(self, tmp_path, five_slide_prs):
48
75
  out = tmp_path / "subset.png"
49
- with (
50
- patch("pptx2.render.shutil.which", return_value="/usr/bin/soffice"),
51
- patch("pptx2.render._run_soffice", side_effect=_fake_soffice_run(5)),
52
- ):
76
+ with _mocked_png_renderer(5):
53
77
  render_contact_sheet(five_slide_prs, out, slides=[0, 4], cols=2, thumb_width=100, gap=0)
54
78
  with Image.open(out) as sheet:
55
79
  assert sheet.size == (200, 56)
56
80
 
57
81
  def it_is_reachable_from_the_presentation(self, tmp_path, five_slide_prs):
58
82
  out = tmp_path / "via-prs.png"
83
+ with _mocked_png_renderer(5):
84
+ five_slide_prs.render_contact_sheet(out, cols=5, thumb_width=64)
85
+ assert out.is_file()
86
+
87
+ def it_goes_straight_to_pdf_when_a_splitter_exists(self, tmp_path, five_slide_prs):
88
+ """Stock LibreOffice 7+ only writes slide 1 as PNG; skip that wasted start."""
89
+ soffice_pdf, split = _fake_pdf_pipeline(5)
90
+ out = tmp_path / "pdf-path.png"
59
91
  with (
60
92
  patch("pptx2.render.shutil.which", return_value="/usr/bin/soffice"),
61
- patch("pptx2.render._run_soffice", side_effect=_fake_soffice_run(5)),
93
+ patch("pptx2.render._pdf_splitter_available", return_value=True),
94
+ patch("pptx2.render._run_soffice") as png_filter,
95
+ patch("pptx2.render._run_soffice_pdf", side_effect=soffice_pdf),
96
+ patch("pptx2.render._pdf_to_pngs", side_effect=split),
62
97
  ):
63
- five_slide_prs.render_contact_sheet(out, cols=5, thumb_width=64)
64
- assert out.is_file()
98
+ render_contact_sheet(five_slide_prs, out, cols=5, thumb_width=64, gap=0)
99
+ png_filter.assert_not_called()
100
+ with Image.open(out) as sheet:
101
+ assert sheet.size == (5 * 64, 36)
65
102
 
66
103
  def it_raises_unavailable_when_soffice_is_missing(self, tmp_path, five_slide_prs):
67
104
  with (
File without changes
File without changes
File without changes