pytex/PyTeX/format/simple_tex_formatter.py

36 lines
1.1 KiB
Python

from .formatting_config import FormattingConfig
from .tex_formatter import TexFormatter
from pathlib import Path
from typing import Optional, List, Tuple, Dict
from .enums import TeXFlavour
class SimpleTeXFormatter(TexFormatter):
def open_output_stream(self, build_dir: Path):
out_file = build_dir / self.input_file.with_suffix('').name
if out_file.exists():
raise NotImplementedError
else:
self._output_file = out_file.open('w')
def close_output_stream(self):
self._output_file.close()
@property
def future_config(self) -> List[Tuple[str, FormattingConfig]]:
return [] # TODO
@property
def dependencies(self) -> List[str]:
return [] # sty / cls file does not depend on anything
@property
def output_files(self) -> List[str]:
return [self.input_file.with_suffix('').name]
def _post_process_line(self, line: str) -> str:
if self.config.tex_flavour == TeXFlavour.LaTeX2e:
raw = line.rstrip(' %\n')
return '' if raw == '' else raw + '%'
else:
return line.rstrip()