pptx.compose
paper-pptx 0.2.0 API reference
Cross-presentation slide import and deck merge (paper-pptx addition).
Composition is how decks are actually made, and composition is relationship-and-
inheritance surgery - the corruption-prone, package-level mechanics this fork exists to
own. Presentation.import_slide transplants one slide between packages under one of
three CONSCIOUS reconciliation modes (there is no right default):
- "adopt_theme" - content transplants; the slide rebinds to a destination layout (the rebind machinery), orphan placeholders bake from their SOURCE-resolved look, and every run whose resolved values changed is reported. The slide takes the house style.
- "keep_appearance" - the source layout + master + theme chain transplants with it. Support parts deduplicate by content fingerprint, so ten slides from one source share ONE transplanted master, which gains additional layouts on demand.
- "bake" - every resolvable run's effective values become explicit local properties (resolved in the SOURCE package), furniture placeholders (dt/ftr/sldNum) drop, other placeholders become free shapes, and the slide attaches to a destination layout. Visually stable without importing masters.
The source presentation is never mutated (the cross-contamination guarantee, byte- tested). All transplant decisions - the full refusal ledger - validate BEFORE the first destination write. Media always copies across packages (never shared); charts deep-copy with their embedded workbooks; SmartArt carries opaquely; comments drop (reported); OLE/ActiveX/internal-link relationships refuse. Fingerprint dedupe is conservative and relationship-binding-aware: support parts are reused only when their bytes and referenced part graph match. A transplanted master pruned to fewer layouts no longer fingerprints like its source.
SCHEMA_NAME
attributeSCHEMA_NAME= 'paper-import-report'SCHEMA_VERSION
attributeSCHEMA_VERSION= 3