# sec_interp.exporters.base_exporter module

Base exporter module for Sec Interp plugin.

class sec_interp.exporters.base_exporter.BaseExporter(settings: dict[str, Any])

  Bases: `ABC`

  Abstract base class for all exporters.

  This class defines the interface that all concrete exporters must implement. It follows the Template Method pattern, providing common initialization and validation logic while delegating format-specific export to subclasses.

  Initialize the exporter with settings.

  Parameters:

    settings – Dictionary containing export settings such as: - width: Output width in pixels - height: Output height in pixels - dpi: Dots per inch for resolution - background_color: Background color (QColor) - legend_renderer: Optional renderer for legend overlay

  __init__(settings: dict[str, Any])

    Initialize the exporter with settings.

    Parameters:

      settings – Dictionary containing export settings such as: - width: Output width in pixels - height: Output height in pixels - dpi: Dots per inch for resolution - background_color: Background color (QColor) - legend_renderer: Optional renderer for legend overlay

  abstractmethod export(output_path: Path, data: Any) → bool

    Export data to file.

    This method must be implemented by all concrete exporters.

    Parameters:

      - output_path – Destination file path

      - data – Data to export (format depends on exporter type)

    Returns:

      True if export successful, False otherwise

    Return type:

      bool

  validate_export_path(output_path: Path, base_dir: Path | None = None) → tuple[bool, str]

    Validate export path for security.

    Uses secure path validation to prevent path traversal attacks.

    Parameters:

      - output_path – Path to validate

      - base_dir – Optional base directory to restrict exports to

    Returns:

      (is_valid, error_message)

    Return type:

      tuple

  abstractmethod get_supported_extensions() → list[str]

    Get list of supported file extensions.

    Returns:

      List of supported extensions (e.g., [‘.png’, ‘.jpg’])

  validate_path(path: Path) → bool

    Validate that the output path has a supported extension.

    Parameters:

      path – Path to validate

    Returns:

      True if path has a supported extension, False otherwise

  get_setting(key: str, default: Any = None) → Any

    Get a setting value with optional default.

    Parameters:

      - key – Setting key

      - default – Default value if key not found

    Returns:

      Setting value or default