Skip to main content

A CLI tool for generating PowerPoint presentations

Project description

Nietzsche ⚡Power⚡Point⚡Generator

PyPI License

A CLI tool for generating PowerPoint presentations programmatically.

Installation

Install this tool using uv:

uv tool install nietzsche

Or using pip:

pip install nietzsche

Or run it directly without installing using uvx:

uvx --from nietzsche power --help

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.7.tar.gz (15.6 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.7-py3-none-any.whl (17.5 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: nietzsche-0.1.7.tar.gz
  • Upload date:
  • Size: 15.6 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for nietzsche-0.1.7.tar.gz
Algorithm Hash digest
SHA256 de1a95aaf178537a56309c38db181094b2fa687873b90cb9ba7ffd330cce56c5
MD5 ac303d9b1dbdaa26ac5c5e0a1b6feb11
BLAKE2b-256 8174139eb8e2ba54022989d6b6c6fc16801eb8bccd25aee40bf379c9933a6808

See more details on using hashes here.

Provenance

The following attestation bundles were made for nietzsche-0.1.7.tar.gz:

Publisher: python-publish.yml on yanndebray/nietzsche

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

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

File metadata

  • Download URL: nietzsche-0.1.7-py3-none-any.whl
  • Upload date:
  • Size: 17.5 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for nietzsche-0.1.7-py3-none-any.whl
Algorithm Hash digest
SHA256 a44d82f4aecc263c0869a675a8ac61f673025faa3fb155269b71d63f7a4e2ec8
MD5 be417829fcb9a736dcc5c7049267d14b
BLAKE2b-256 f0b121bf2edc3b2681dd600ea756761c7bfd917e920ba110657a2b767be1bb84

See more details on using hashes here.

Provenance

The following attestation bundles were made for nietzsche-0.1.7-py3-none-any.whl:

Publisher: python-publish.yml on yanndebray/nietzsche

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

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