Skip to content

Core API Reference

Python API reference for the SlideGen core library.

SlideGenerator

Main class for generating PowerPoint presentations from schemas.

from slidegen import SlideGenerator

gen = SlideGenerator()
gen.from_schema("deck.yaml")
gen.build("output.pptx")

Constructor

SlideGenerator(theme: Optional[str] = None, theme_name: Optional[str] = None)

Initialize a SlideGenerator instance.

Parameters:

  • theme (Optional[str]): Path to PowerPoint template file (.pptx)
  • theme_name (Optional[str]): Built-in theme name ("default", "corporate", "dark")

Example:

# Default theme
gen = SlideGenerator()

# Built-in theme
gen = SlideGenerator(theme_name="corporate")

# Custom template
gen = SlideGenerator(theme="templates/custom.pptx")

Methods

from_schema(schema_path: str) -> None

Load a schema from a YAML or JSON file.

Parameters:

  • schema_path (str): Path to schema file (.yaml, .yml, or .json)

Raises:

  • FileNotFoundError: If schema file doesn't exist
  • ValueError: If schema is invalid

Example:

gen = SlideGenerator()
gen.from_schema("presentation.yaml")

from_dict(schema: Dict[str, Any]) -> None

Load a schema from a dictionary.

Parameters:

  • schema (Dict[str, Any]): Schema dictionary

Raises:

  • ValueError: If schema is invalid

Example:

schema = {
    "presentation": {
        "title": "My Presentation",
        "slides": [
            {
                "layout": "title",
                "title": "Welcome"
            }
        ]
    }
}

gen = SlideGenerator()
gen.from_dict(schema)

build(output_path: str) -> None

Render the loaded schema to a PowerPoint file.

Parameters:

  • output_path (str): Path where the .pptx file should be saved

Raises:

  • ValueError: If no schema has been loaded

Example:

gen = SlideGenerator()
gen.from_schema("deck.yaml")
gen.build("output.pptx")

Complete Example

from slidegen import SlideGenerator

# Initialize generator
gen = SlideGenerator(theme_name="corporate")

# Load schema from file
gen.from_schema("presentation.yaml")

# Generate PowerPoint
gen.build("output.pptx")

Programmatic Schema Creation

You can also create schemas programmatically:

from slidegen import SlideGenerator

schema = {
    "presentation": {
        "title": "Quarterly Results",
        "slides": [
            {
                "layout": "title",
                "title": "Q4 2025 Results",
                "subtitle": "Year-End Review"
            },
            {
                "layout": "bullet_list",
                "title": "Key Metrics",
                "bullets": [
                    "Revenue: +15% YoY",
                    "Profit margin: 22%",
                    "Customer growth: +1.2M users"
                ]
            },
            {
                "layout": "chart",
                "title": "Revenue Trend",
                "chart": {
                    "type": "line",
                    "data": {
                        "labels": ["Q1", "Q2", "Q3", "Q4"],
                        "values": [100, 120, 140, 160]
                    }
                }
            }
        ]
    }
}

gen = SlideGenerator()
gen.from_dict(schema)
gen.build("quarterly-results.pptx")

Error Handling

from slidegen import SlideGenerator
from slidegen.validator import validate

# Validate before building
schema = {...}  # Your schema
result = validate(schema)

if not result.is_valid:
    for error in result.errors:
        print(f"Error: {error.get('message')}")
else:
    gen = SlideGenerator()
    gen.from_dict(schema)
    gen.build("output.pptx")

Advanced Usage

Custom Themes

gen = SlideGenerator(theme="path/to/template.pptx")

Multiple Presentations

gen = SlideGenerator()

# Generate multiple presentations
for deck_file in ["deck1.yaml", "deck2.yaml", "deck3.yaml"]:
    gen.from_schema(deck_file)
    output_file = deck_file.replace(".yaml", ".pptx")
    gen.build(output_file)

See Also