diff --git a/PyTeX/format/auto_format.py b/PyTeX/format/auto_format.py index 365ecaa..d4dd30a 100644 --- a/PyTeX/format/auto_format.py +++ b/PyTeX/format/auto_format.py @@ -9,7 +9,7 @@ from .dtx_formatter import DTXFormatter from .pytex_formatter import PyTeXFormatter from .git_version_info import GitVersionInfo from .default_macros import get_default_macros - +from .enums import TeXType def formatter_from_file_extension( input_file: Path, @@ -25,12 +25,20 @@ def formatter_from_file_extension( 'cls.pytex': SimpleTeXFormatter, 'dict.pytex': DictFormatter } + switcher2: Dict[str, TeXType] = { + 'dtx.pytex': TeXType.TeXDocstrip, + 'sty.pytex': TeXType.TeXPackage, + 'cls.pytex': TeXType.TeXClass, + 'dict.pytex': TeXType.TeXDictionary + } # TODO: other formatters try: [name, extension] = input_file.name.split('.', maxsplit=1) except: raise NotImplementedError + config.tex_type = switcher2[extension] # This sets the textype from file extension + formatter = switcher[extension]( input_file=input_file, config=config, diff --git a/PyTeX/format/pytex_formatter.py b/PyTeX/format/pytex_formatter.py index e8a38d7..6b31cea 100644 --- a/PyTeX/format/pytex_formatter.py +++ b/PyTeX/format/pytex_formatter.py @@ -12,6 +12,7 @@ from abc import ABC, abstractmethod from .enums import * from datetime import * + class PyTeXFormatter(FormatterIF, ABC): def __init__( self, diff --git a/PyTeX/format/simple_tex_formatter.py b/PyTeX/format/simple_tex_formatter.py index 625cb2c..81f5a87 100644 --- a/PyTeX/format/simple_tex_formatter.py +++ b/PyTeX/format/simple_tex_formatter.py @@ -2,12 +2,20 @@ 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 +from .enums import TeXFlavour, TeXType class SimpleTeXFormatter(TexFormatter): + @property + def output_file(self) -> str: + switcher = { + TeXType.TeXClass: '.cls', + TeXType.TeXPackage: '.sty', + } + return self.name + switcher[self.config.tex_type] + def open_output_stream(self, build_dir: Path): - out_file = build_dir / self.input_file.with_suffix('').name + out_file = build_dir / self.output_file if out_file.exists(): raise NotImplementedError else: @@ -26,7 +34,7 @@ class SimpleTeXFormatter(TexFormatter): @property def output_files(self) -> List[str]: - return [self.input_file.with_suffix('').name] + return [self.output_file] def _post_process_line(self, line: str) -> str: if self.config.tex_flavour == TeXFlavour.LaTeX2e: