from pathlib import Path from pydantic import BaseModel from pydantic_settings import BaseSettings # , SettingsConfigDict class JavaVm(BaseModel): version: str path_to_binary_file: Path class DiffPdf(BaseModel): version: str path_to_binary_file: Path default_params: list[str] output_file_extension: str = "pdf" class SaxonJar(BaseModel): version: str path_to_jar_file: Path output_file_extension: str = "fo" class ApacheFop(BaseModel): version: str path_to_dir: Path output_file_extension: str = "pdf" class XslDir(BaseModel): name: str path_to_root_dir: Path class PdfProject(BaseModel): name: str project_dir: Path java_version: str diff_pdf_version: str saxon_jar_version: str apache_fop_version: str xsl_dir_name: str default_xslt_params: dict[str, str] = {} class AppSettings(BaseSettings): java_vms: list[JavaVm] diff_pdfs: list[DiffPdf] saxon_jars: list[SaxonJar] apache_fops: list[ApacheFop] pdf_projects: list[PdfProject] = [] class PdfProjectSettings(BaseSettings): """ Speichert Projekt-Einstellungen direkt im Ordner des Projekts in einer Klartextdatei (JSON, YAML oder XML) """ pass