Skip to main content

A CLI tool for generating PowerPoint presentations

Project description

Power

A CLI tool for generating PowerPoint presentations programmatically.

Installation

pip install -e .

Quick Start

# Create a presentation with a template
power create deck.pptx -t Galaxy.pptx --title "My Presentation"

# Generate from YAML/JSON
power generate slides.yaml -o output.pptx -t Galaxy.pptx

# Inspect template layouts
power inspect Galaxy.pptx

# Interactive mode
power new -t Galaxy.pptx

CLI Commands

Command Description
power create Create presentation with title slide
power generate Generate from YAML/JSON specification
power inspect Inspect template layouts and placeholders
power new Interactive presentation builder
power add Add slide to existing presentation
power remove Remove slide by index
power replace Replace {{PLACEHOLDER}} text

YAML Format

title: Quarterly Report
subtitle: Q4 2024

slides:
  - type: section
    title: Executive Summary

  - type: content
    title: Key Points
    bullets:
      - First point
      - Second point
      - Third point

  - type: table
    title: Financial Data
    headers: [Metric, Q3, Q4]
    data:
      - [Revenue, "$2.1M", "$2.6M"]
      - [Profit, "$0.7M", "$1.1M"]

  - type: chart
    title: Sales by Region
    chart_type: bar
    categories: [North, South, East, West]
    series:
      2023: [100, 200, 150, 180]
      2024: [120, 250, 170, 210]

Python API

from power import PowerPresentation

# Create with template
ppt = PowerPresentation(template="Galaxy.pptx")
ppt.clear_slides()

# Add slides
ppt.add_title_slide("Welcome", "Subtitle")
ppt.add_content_slide("Agenda", ["Topic 1", "Topic 2", "Topic 3"])
ppt.add_section_slide("Part 1")

# Custom slide with builder
slide = ppt.add_slide(5)
slide.set_title("Data Overview")
slide.add_table(
    data=[["A", "100"], ["B", "200"]],
    headers=["Item", "Value"]
)
slide.add_bar_chart(
    categories=["Q1", "Q2", "Q3", "Q4"],
    series_data={"Revenue": [100, 150, 200, 250]}
)

ppt.save("output.pptx")

Slide Types

  • title: Title slide with optional subtitle
  • section: Section header slide
  • content: Bullet points slide
  • table: Data table slide
  • chart: Bar, line, or pie chart (bar, line, pie)
  • blank: Empty slide for custom content

Requirements

  • Python 3.9+
  • python-pptx
  • click
  • rich
  • pyyaml
  • pillow

License

MIT

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

nietzsche-0.1.0.tar.gz (12.2 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

nietzsche-0.1.0-py3-none-any.whl (13.5 kB view details)

Uploaded Python 3

File details

Details for the file nietzsche-0.1.0.tar.gz.

File metadata

  • Download URL: nietzsche-0.1.0.tar.gz
  • Upload date:
  • Size: 12.2 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.8.15

File hashes

Hashes for nietzsche-0.1.0.tar.gz
Algorithm Hash digest
SHA256 19d02b0e6b039d3136a1ed5afdaa020875de0f9b139fb161444d21e593fb2d99
MD5 991aa58ba3b35a4765f763c33cb45155
BLAKE2b-256 959baae38a53df2c418b1d9e88b7ce0adddb32d8f28922ef67edb8523ad98931

See more details on using hashes here.

File details

Details for the file nietzsche-0.1.0-py3-none-any.whl.

File metadata

  • Download URL: nietzsche-0.1.0-py3-none-any.whl
  • Upload date:
  • Size: 13.5 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.8.15

File hashes

Hashes for nietzsche-0.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 66a3fd428458239d49d323cbcd11c00f1f17250bda82936992de43a218645348
MD5 3e87808b13500ec6ebf98e2aa4542cd6
BLAKE2b-256 afcae152530a47153c09bcf90ad6b873a4b286b8d08f0d0dbf98e6c4d79992e7

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page