"""Slide XML and slide relationship XML generation.""" from __future__ import annotations # Import animation module (optional) try: from pptx_animations import create_transition_xml, TRANSITIONS ANIMATIONS_AVAILABLE = True except ImportError: ANIMATIONS_AVAILABLE = False TRANSITIONS = {} def create_slide_xml_with_svg( slide_num: int, png_rid: str, svg_rid: str, width_emu: int, height_emu: int, transition: str | None = 'fade', transition_duration: float = 0.5, auto_advance: float | None = None, use_compat_mode: bool = True, ) -> str: """Create slide XML containing an SVG image. Args: slide_num: Slide number. png_rid: PNG fallback image relationship ID. svg_rid: SVG relationship ID. width_emu: Width in EMU. height_emu: Height in EMU. transition: Transition effect name. transition_duration: Transition duration in seconds. auto_advance: Auto-advance interval in seconds. use_compat_mode: Whether to use compatibility mode (PNG + SVG dual format). """ transition_xml = '' if transition and ANIMATIONS_AVAILABLE: transition_xml = '\n' + create_transition_xml( effect=transition, duration=transition_duration, advance_after=auto_advance, ) if use_compat_mode: blip_xml = f''' ''' else: blip_xml = f'' return f''' {blip_xml} {transition_xml} ''' def create_slide_rels_xml( png_rid: str, png_filename: str, svg_rid: str, svg_filename: str, use_compat_mode: bool = True, ) -> str: """Create slide relationship file XML. Args: png_rid: PNG image relationship ID. png_filename: PNG filename. svg_rid: SVG relationship ID. svg_filename: SVG filename. use_compat_mode: Whether to use compatibility mode. """ if use_compat_mode: return f''' ''' else: return f''' '''