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¶
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 existValueError: If schema is invalid
Example:
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.pptxfile should be saved
Raises:
ValueError: If no schema has been loaded
Example:
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¶
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¶
- Layout API - Layout renderer interface
- Validator API - Schema validation
- Theming API - Theme management