From c8deda5af851b3072a9e235fc5fe317e70cf50e3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Maximilian=20Ke=C3=9Fler?= Date: Tue, 11 Jan 2022 18:51:03 +0100 Subject: [PATCH] add support for latex3 files --- base/enums.py | 2 +- build/build.py | 8 +++++++ build/utils/pytex_file.py | 28 ++++++++++++++++++++----- default_formatters/class_formatter.py | 10 ++++++--- default_formatters/package_formatter.py | 9 +++++--- 5 files changed, 45 insertions(+), 12 deletions(-) diff --git a/base/enums.py b/base/enums.py index a0399fa..f2e8a22 100644 --- a/base/enums.py +++ b/base/enums.py @@ -11,7 +11,7 @@ class Attributes(Enum): date = 'date' year = 'year' source_file_name = 'source_file_name' - version = 'package_version' + version = 'version' class Args(Enum): diff --git a/build/build.py b/build/build.py index 9a1467b..453a803 100644 --- a/build/build.py +++ b/build/build.py @@ -67,6 +67,10 @@ def build( files.append(file) for file in src_dir.rglob('*.pydict'): files.append(file) + for file in src_dir.rglob('*.pysty3'): + files.append(file) + for file in src_dir.rglob('*.pycls3'): + files.append(file) else: for file in src_dir.glob('*.pysty'): files.append(file) @@ -74,6 +78,10 @@ def build( files.append(file) for file in src_dir.glob('*.pydict'): files.append(file) + for file in src_dir.glob('*.pysty3'): + files.append(file) + for file in src_dir.glob('*.pycls3'): + files.append(file) sources_to_build = [] for file in files: diff --git a/build/utils/pytex_file.py b/build/utils/pytex_file.py index adf76f4..a2d7b23 100644 --- a/build/utils/pytex_file.py +++ b/build/utils/pytex_file.py @@ -84,17 +84,35 @@ class TexFileToFormat: self._header = new_header def __format(self) -> dict: - if '.pysty' in self.src_path.name: + if self.src_path.name.endswith('.pysty'): formatter = PackageFormatter( package_name=self.src_path.with_suffix('').name, author=self.current_build_info.author, - extra_header=self._header) - elif '.pycls' in self.src_path.name: + extra_header=self._header, + tex_version='LaTeX2e', + version=self.current_build_info.packages_version) + elif self.src_path.name.endswith('.pycls'): formatter = ClassFormatter( class_name=self.src_path.with_suffix('').name, author=self.current_build_info.author, - extra_header=self._header) - elif '.pydict' in self.src_path.name: + extra_header=self._header, + tex_version='LaTeX2e', + version=self.current_build_info.packages_version) + elif self.src_path.name.endswith('.pysty3'): + formatter = PackageFormatter( + package_name=self.src_path.with_suffix('').name, + author=self.current_build_info.author, + extra_header=self._header, + tex_version='LaTeX3', + version=self.current_build_info.packages_version) + elif self.src_path.name.endswith('.pycls3'): + formatter = ClassFormatter( + class_name=self.src_path.with_suffix('').name, + author=self.current_build_info.author, + extra_header=self._header, + tex_version='LaTeX3', + version=self.current_build_info.packages_version) + elif self.src_path.name.endswith('.pydict'): formatter = DictionaryFormatter( kind=self.src_path.with_suffix('').name, author=self.current_build_info.author, diff --git a/default_formatters/class_formatter.py b/default_formatters/class_formatter.py index 217c882..a446285 100644 --- a/default_formatters/class_formatter.py +++ b/default_formatters/class_formatter.py @@ -4,14 +4,18 @@ import PyTeX.macros class ClassFormatter(PyTeX.formatter.TexFormatter): - def __init__(self, class_name: str, author: str, extra_header: [str] = [], tex_version: str = 'LaTeX2e'): + def __init__(self, class_name: str, author: str, extra_header: [str] = [], tex_version: str = 'LaTeX2e', + version: str = '0.0.0'): PyTeX.formatter.TexFormatter.__init__( self, name=class_name, author=author, header=extra_header, file_extension='.cls', - tex_version=tex_version) + tex_version=tex_version, + version=version + ) + self.tex_version = tex_version def make_default_macros(self): - PyTeX.macros.make_default_macros(self, 'class') + PyTeX.macros.make_default_macros(self, 'class', tex_version=self.tex_version) diff --git a/default_formatters/package_formatter.py b/default_formatters/package_formatter.py index 5e8e94d..f4d99b0 100644 --- a/default_formatters/package_formatter.py +++ b/default_formatters/package_formatter.py @@ -4,15 +4,18 @@ import PyTeX.macros class PackageFormatter(PyTeX.formatter.TexFormatter): - def __init__(self, package_name: str, author: str, extra_header: [str] = [], tex_version: str = 'LaTeX2e'): + def __init__(self, package_name: str, author: str, extra_header: [str] = [], tex_version: str = 'LaTeX2e', + version: str = '0.0.0'): PyTeX.formatter.TexFormatter.__init__( self, name=package_name, author=author, header=extra_header, file_extension='.sty', - tex_version=tex_version + tex_version=tex_version, + version=version ) + self.tex_version = tex_version def make_default_macros(self): - PyTeX.macros.make_default_macros(self, 'package') + PyTeX.macros.make_default_macros(self, 'package', tex_version=self.tex_version)