44 lines
867 B
Python
44 lines
867 B
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]
|
||
|
|
|
||
|
|
|
||
|
|
class SaxonJar(BaseModel):
|
||
|
|
version: str = ""
|
||
|
|
path_to_jar_file: Path
|
||
|
|
|
||
|
|
|
||
|
|
class ApacheFop(BaseModel):
|
||
|
|
version: str = ""
|
||
|
|
path_to_dir: Path
|
||
|
|
|
||
|
|
|
||
|
|
class Project(BaseSettings):
|
||
|
|
name: str
|
||
|
|
project_dir: Path
|
||
|
|
java_version: str
|
||
|
|
diff_pdf_version: str
|
||
|
|
saxon_jar_version: str
|
||
|
|
apache_fop_version: str
|
||
|
|
default_params: dict[str, str] = {}
|
||
|
|
|
||
|
|
|
||
|
|
class AppSettings(BaseSettings):
|
||
|
|
java_vms: list[JavaVm]
|
||
|
|
diff_pdfs: list[DiffPdf]
|
||
|
|
saxon_jars: list[SaxonJar]
|
||
|
|
apache_fops: list[ApacheFop]
|
||
|
|
projects: list[Project] = []
|