start working on pytex builder

This commit is contained in:
Maximilian Keßler 2022-02-06 20:39:17 +01:00
parent 6bef2a82e6
commit f2fc8a832d

View file

@ -1,7 +1,10 @@
from typing import Optional from typing import Optional
from pathlib import Path
from PyTeX.build.build import BuildDirSpecification from PyTeX.build.build import BuildDirSpecification
from PyTeX.build.enums import PyTeXRootDirType
from PyTeX.format.formatting_config import FormattingConfig from PyTeX.format.formatting_config import FormattingConfig
from ...logger import logger
class PyTeXBuilder: class PyTeXBuilder:
@ -9,21 +12,49 @@ class PyTeXBuilder:
self, self,
build_dir_spec: BuildDirSpecification build_dir_spec: BuildDirSpecification
): ):
self._build_spec: BuildDirSpecification = build_dir_spec
self._default_formatting_config: Optional[FormattingConfig] = None self._build_target_type: Optional[PyTeXRootDirType] = None
self._recursive: bool = True def build_tex_sources(self):
self._overwrite_existing_files: bool = False self._build_target_type = PyTeXRootDirType.TEX_SOURCE
self._clean_old_files: True
self._allow_dirty: bool = False
def build_sources(self):
pass pass
def build_documentation(self): def build_documentation(self):
self._build_target_type = PyTeXRootDirType.DOC
pass pass
def build_tex(self): def build_tex_files(self):
self._build_target_type = PyTeXRootDirType.BUILD
pass pass
def build(self):
if self._build_target_type is None:
raise NotImplementedError
self._build()
@property
def target_root(self) -> Path:
return {
PyTeXRootDirType.BUILD: self._build_spec.build_root,
PyTeXRootDirType.DOC: self._build_spec.doc_root,
PyTeXRootDirType.TEX_SOURCE: self._build_spec.tex_source_root,
}[self._build_target_type]
@property
def source_root(self) -> Path:
return {
PyTeXRootDirType.BUILD: self._build_spec.tex_source_root,
PyTeXRootDirType.DOC: self._build_spec.tex_source_root,
PyTeXRootDirType.TEX_SOURCE: self._build_spec.pytex_source_root,
}[self._build_target_type]
def get_git_version_info(self):
pass
def parse_config_file(self):
pass
def _build(self):
logger.info("Starting build")