本文へ移動
cccskills
無料GitHub で公開

pptx-debug-workflow

Systematic debugging workflow for python-pptx presentation generation

インストール方法を見る

含まれるファイル(2)

  • SKILL.md4.4 KB
  • .skill_id33 B

SKILL.md(原文)

インストールする前に、エージェントに与えられる指示の中身を確認できます。

PPTX Debugging Workflow

A systematic approach to creating and debugging PowerPoint presentations using the python-pptx library. This workflow ensures reliable presentation generation through iterative verification and error resolution.

Step 1: Verify Installation

Before writing any code, verify that python-pptx is installed:

pip show python-pptx

If not installed:

pip install python-pptx

Step 2: Test Minimal PPTX Creation

Create and run a minimal test script to verify the library works:

from pptx import Presentation

prs = Presentation()
slide = prs.slides.add_slide(prs.slide_layouts[0])
slide.shapes.title.text = "Test Slide"
prs.save("test.pptx")
print("Test presentation created successfully")

Run this first to confirm basic functionality before building complex presentations.

Step 3: Write Full Script to File

Always write your presentation script to a .py file instead of using heredoc or inline execution. This enables:

  • Better error messages with line numbers
  • Easier iteration and debugging
  • Preserved state between error fixes

Example structure:

from pptx import Presentation
from pptx.util import Inches, Pt
from pptx.enum.shapes import MSO_SHAPE
from pptx.enum.chart import XL_CHART_TYPE, XL_LEGEND_POSITION
from pptx.chart.data import CategoryChartData

def create_presentation():
    prs = Presentation()
    # Build slides here
    prs.save("output.pptx")
    print("Presentation saved successfully")

if __name__ == "__main__":
    create_presentation()

Step 4: Execute and Capture Full Traceback

Run the script with full error output:

python your_script.py 2>&1 | tee debug_output.log

This captures the complete Python traceback including:

  • Error type and message
  • Line numbers where errors occurred
  • Stack trace for debugging

Step 5: Fix API Errors Iteratively

Common python-pptx API patterns to remember:

Chart Legend Positioning

Use XL_LEGEND_POSITION (NOT XL_CHART_TYPE) for legend positioning:

from pptx.enum.chart import XL_LEGEND_POSITION

chart.chart.has_legend = True
chart.chart.legend.position = XL_LEGEND_POSITION.RIGHT

Table Cell Access

Access table cells through row iteration pattern:

table = slide.shapes.add_table(rows=5, cols=4, left=Inches(1), top=Inches(2), width=Inches(6), height=Inches(3)).table

# Correct pattern - iterate through rows, then cells
for row_idx, row in enumerate(table.rows):
    for cell_idx, cell in enumerate(row.cells):
        cell.text = f"Row {row_idx}, Cell {cell_idx}"

# Or direct access
table.rows[0].cells[0].text = "Header"

Chart Data Format

For pie charts, use category-based data:

chart_data = CategoryChartData()
chart_data.categories = ['Category A', 'Category B', 'Category C']
chart_data.add_series('Series 1', (30, 45, 25))

x, y, cx, cy = Inches(2), Inches(2), Inches(6), Inches(4.5)
slide.shapes.add_chart(XL_CHART_TYPE.PIE, x, y, cx, cy, chart_data)

Step 6: Validate Output

After successful execution:

  1. Verify the .pptx file was created
  2. Open in PowerPoint or compatible viewer
  3. Check that all slides, tables, and charts render correctly

Common Troubleshooting

IssueSolution
Module not foundpip install python-pptx
AttributeError on chartCheck XL_LEGEND_POSITION vs XL_CHART_TYPE
Table cell access failsUse table.rows[row].cells[cell] pattern
Chart doesn't displayVerify chart_data format matches chart type
Import errorsCheck enum imports from pptx.enum.*

Quick Reference Script Template

from pptx import Presentation
from pptx.util import Inches, Pt
from pptx.enum.chart import XL_CHART_TYPE, XL_LEGEND_POSITION
from pptx.chart.data import CategoryChartData

def main():
    prs = Presentation()
    
    # Add title slide
    slide = prs.slides.add_slide(prs.slide_layouts[0])
    slide.shapes.title.text = "Title"
    
    # Add content slide with table
    slide = prs.slides.add_slide(prs.slide_layouts[1])
    table = slide.shapes.add_table(3, 3, Inches(1), Inches(2), Inches(8), Inches(2)).table
    for row in table.rows:
        for cell in row.cells:
            cell.text = "Data"
    
    prs.save("presentation.pptx")
    print("Done!")

if __name__ == "__main__":
    main()

レビュー

まだレビューはありません。使ってみた感想をお寄せください。

同じリポジトリのスキル

概要と使いどころ

Incremental audio production with duration mismatch handling, adaptive stem extension, and pre-mix alignment verification

日本語の概要は準備中です。原文の説明を表示しています。

HKUDS/OpenSpace7,7552026年8月13日 更新

Incremental audio production with duration alignment handling, per-stem verification, and adaptive extension strategies

日本語の概要は準備中です。原文の説明を表示しています。

HKUDS/OpenSpace7,7552026年8月13日 更新

Create serverless API proxy endpoints that hide API keys and provide a unified backend for the dashboard frontend. Designed for Vercel deployment.

日本語の概要は準備中です。原文の説明を表示しています。

HKUDS/OpenSpace7,7552026年8月13日 更新

End-to-end audio production workflow with stems, effects, archiving, and verification

日本語の概要は準備中です。原文の説明を表示しています。

HKUDS/OpenSpace7,7552026年8月13日 更新

Handle cascading data retrieval tool failures by falling back to embedded knowledge generation

日本語の概要は準備中です。原文の説明を表示しています。

HKUDS/OpenSpace7,7552026年8月13日 更新

Fallback pattern for executing Python code when execute_code_sandbox fails

日本語の概要は準備中です。原文の説明を表示しています。

HKUDS/OpenSpace7,7552026年8月13日 更新

HKUDS のスキルをすべて見る

このスキルの問題を報告する