61 lines
1.2 KiB
Python
61 lines
1.2 KiB
Python
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
|