implement methods of pytexSourceFile class
This commit is contained in:
parent
f4e133b3e5
commit
8df045c457
2 changed files with 38 additions and 9 deletions
|
@ -1,28 +1,40 @@
|
|||
from typing import Optional, List
|
||||
from typing import Optional, List, Dict, Tuple
|
||||
|
||||
from PyTeX.build.build_info import BasicBuildInfo
|
||||
from PyTeX.config import BasicFormattingConfig, GlobalPyTeXConfig
|
||||
from PyTeX.paths import RelativePath
|
||||
from .enums import PyTeXFileType
|
||||
from PyTeX.formatting.formatter import Formatter
|
||||
from ...paths import RelativePath
|
||||
|
||||
|
||||
class PyTeXSourceFile:
|
||||
def __init__(self):
|
||||
self._pytex_file_type: PyTeXFileType = None
|
||||
self._relative_path: RelativePath = None
|
||||
self._formatter: Formatter = None
|
||||
self._build_info: Optional[BasicBuildInfo] = None
|
||||
|
||||
@property
|
||||
def relative_path(self) -> RelativePath:
|
||||
def relative_path(self):
|
||||
return self._relative_path
|
||||
|
||||
@property
|
||||
def pytex_file_type(self) -> PyTeXFileType:
|
||||
return self._pytex_file_type
|
||||
|
||||
def format(self) -> None:
|
||||
pass
|
||||
|
||||
@property
|
||||
def provided_files(self) -> List[RelativePath]:
|
||||
pass
|
||||
def output_files(self) -> List[RelativePath]:
|
||||
files = self._formatter.output_files
|
||||
files = [
|
||||
self._relative_path.with_name(filename)
|
||||
for filename in files
|
||||
]
|
||||
return files
|
||||
|
||||
def format(self) -> Optional[List[Tuple[RelativePath, Dict]]]:
|
||||
configs = self._formatter.format(GlobalPyTeXConfig.target_root())
|
||||
configs = [
|
||||
(self._relative_path.with_name(filename), config)
|
||||
for [filename, config] in configs
|
||||
]
|
||||
return configs
|
||||
|
|
|
@ -2,6 +2,8 @@ from pathlib import Path, PurePath
|
|||
from typing import Optional
|
||||
from .formatting_config import BasicFormattingConfig
|
||||
|
||||
from ..paths import PyTeXRootDirType
|
||||
|
||||
|
||||
class GlobalPyTeXConfig:
|
||||
_source_root: Optional[Path] = None
|
||||
|
@ -18,6 +20,8 @@ class GlobalPyTeXConfig:
|
|||
|
||||
_allow_dirty: bool = False
|
||||
|
||||
_build_target: PyTeXRootDirType = None
|
||||
|
||||
@classmethod
|
||||
def init(
|
||||
cls,
|
||||
|
@ -51,4 +55,17 @@ class GlobalPyTeXConfig:
|
|||
|
||||
@classmethod
|
||||
def wrapper_dir(cls) -> PurePath:
|
||||
return cls._wrapper_dir
|
||||
raise NotImplementedError
|
||||
|
||||
@classmethod
|
||||
def build_mode(cls) -> PyTeXRootDirType:
|
||||
return cls._build_target
|
||||
|
||||
@classmethod
|
||||
def target_root(cls) -> Path:
|
||||
return {
|
||||
PyTeXRootDirType.BUILD: cls.build_root(),
|
||||
PyTeXRootDirType.DOC: cls.doc_root(),
|
||||
PyTeXRootDirType.TEX_SOURCE: cls.tex_root(),
|
||||
PyTeXRootDirType.PYTEX_SOURCE: cls.source_root()
|
||||
}[cls._build_target]
|
||||
|
|
Loading…
Reference in a new issue