Source code for sec_interp.exporters

from __future__ import annotations

"""Exporters package for Sec Interp plugin.

Provides specialized exporters for different file formats.
"""

from .base_exporter import BaseExporter
from .csv_exporter import CSVExporter
from .drillhole_3d_exporter import (
    DrillholeInterval3DExporter,
    DrillholeTrace3DExporter,
)
from .drillhole_exporters import (
    DrillholeIntervalShpExporter,
    DrillholeTraceShpExporter,
)
from .image_exporter import ImageExporter
from .interpretation_3d_exporter import Interpretation3DExporter
from .interpretation_exporters import Interpretation2DExporter
from .pdf_exporter import PDFExporter
from .profile_exporters import (
    AxesShpExporter,
    GeologyShpExporter,
    ProfileLineShpExporter,
    StructureShpExporter,
)
from .shp_exporter import ShapefileExporter
from .svg_exporter import SVGExporter

__all__ = [
    "AxesShpExporter",
    "BaseExporter",
    "CSVExporter",
    "DrillholeInterval3DExporter",
    "DrillholeIntervalShpExporter",
    "DrillholeTrace3DExporter",
    "DrillholeTraceShpExporter",
    "GeologyShpExporter",
    "ImageExporter",
    "Interpretation2DExporter",
    "Interpretation3DExporter",
    "PDFExporter",
    "ProfileLineShpExporter",
    "SVGExporter",
    "ShapefileExporter",
    "StructureShpExporter",
    "get_exporter",
]


[docs] def get_exporter(extension: str, settings: dict): """Get the appropriate exporter instance for the file extension. Args: extension: File extension (e.g., '.png', '.svg') settings: Export settings dictionary Returns: Appropriate exporter instance Raises: ValueError: If extension is not supported """ extension = extension.lower() if extension in [".png", ".jpg", ".jpeg"]: return ImageExporter(settings) if extension == ".svg": return SVGExporter(settings) if extension == ".pdf": return PDFExporter(settings) if extension == ".csv": return CSVExporter(settings) if extension in [".shp", ".gpkg"]: return ShapefileExporter(settings) raise ValueError(f"Unsupported file extension: {extension}")