From 0d0b63c2280b6d57b8e062ef30ce3c90ee2d57eb Mon Sep 17 00:00:00 2001 From: Eterance-PC Date: Thu, 25 May 2023 13:39:58 +0800 Subject: [PATCH] =?UTF-8?q?=E6=96=87=E6=A1=A3=EF=BC=9B=E4=BF=AE=E6=94=B9?= =?UTF-8?q?=E9=83=A8=E5=88=86=E6=A0=87=E8=AF=86=E7=AC=A6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- README.md | 16 ++-- ...tationTypeEnum\346\236\232\344\270\276.md" | 21 +++++ ...AnnotationType\346\250\241\345\235\227.md" | 27 +++++++ ...tationTypeEnum\346\236\232\344\270\276.md" | 29 +++++++ ...tationTypeEnum\346\236\232\344\270\276.md" | 32 ++++++++ "docs/zh-cn/Position\347\261\273.md" | 79 +++++++++++++++++++ .../Pymaidol_API\347\233\256\345\275\225.md" | 15 ++++ "docs/zh-cn/TemplateBase\347\261\273.md" | 73 +++++++++++++++++ "docs/zh-cn/TemplateRenderer\347\261\273.md" | 62 +++++++++++++++ examples/first_template/FirstTemplate.py | 11 ++- examples/template_renderer/renderer_demo.py | 29 +++++++ examples/template_renderer/template.pymd | 8 ++ pymaidol/Errors.py | 22 +++--- pymaidol/Positions.py | 4 +- pymaidol/TemplateBase.py | 2 +- pymaidol/TemplateRenderer.py | 4 +- pymaidol/__init__.py | 4 +- tests/test_everything.py | 2 +- 18 files changed, 414 insertions(+), 26 deletions(-) create mode 100644 "docs/zh-cn/AnnotationType/AnnotationTypeEnum\346\236\232\344\270\276.md" create mode 100644 "docs/zh-cn/AnnotationType/AnnotationType\346\250\241\345\235\227.md" create mode 100644 "docs/zh-cn/AnnotationType/MultiLineAnnotationTypeEnum\346\236\232\344\270\276.md" create mode 100644 "docs/zh-cn/AnnotationType/SingleLineAnnotationTypeEnum\346\236\232\344\270\276.md" create mode 100644 "docs/zh-cn/Position\347\261\273.md" create mode 100644 "docs/zh-cn/Pymaidol_API\347\233\256\345\275\225.md" create mode 100644 "docs/zh-cn/TemplateBase\347\261\273.md" create mode 100644 "docs/zh-cn/TemplateRenderer\347\261\273.md" create mode 100644 examples/template_renderer/renderer_demo.py create mode 100644 examples/template_renderer/template.pymd diff --git a/README.md b/README.md index 9f96e5e..9c4c551 100644 --- a/README.md +++ b/README.md @@ -38,11 +38,16 @@ Success: file "FirstTemplate.py" created 首先,用以下代码将 `FirstTemplate.pymd` 中的全部内容替换掉: ``` python -from pymaidol.TemplateBase import TemplateBase +from pymaidol import TemplateBase +from pymaidol.AnnotationType import FULL_ANNOTATION_TYPE, AnnotationTypeEnum class FirstTemplate(TemplateBase): - def __init__(self, package_name:str, template: str | None = None, template_file_path: str | None = None) -> None: - super().__init__(template, template_file_path) + def __init__(self, + package_name:str, + template: str | None = None, + template_file_path: str | None = None, + supported_annotation_types: list[AnnotationTypeEnum] = FULL_ANNOTATION_TYPE) -> None: + super().__init__(template, template_file_path, supported_annotation_types) self.package_name = package_name def main(): @@ -73,6 +78,7 @@ Now (@(time.ctime())), Say "@(says)" using @(self.package_name)! Now (Tue May 23 19:21:19 2023), Say "Hello World" using Pymaidol! ``` -## 语法参考 +## 另请参阅 -请参阅 [Pymaidol 语法参考](docs/zh-cn//%E8%AF%AD%E6%B3%95%E5%8F%82%E8%80%83.md) +- [Pymaidol 语法参考](docs/zh-cn/语法参考.md) +- [Pymaidol_API目录](docs/zh-cn/Pymaidol_API%E7%9B%AE%E5%BD%95.md) diff --git "a/docs/zh-cn/AnnotationType/AnnotationTypeEnum\346\236\232\344\270\276.md" "b/docs/zh-cn/AnnotationType/AnnotationTypeEnum\346\236\232\344\270\276.md" new file mode 100644 index 0000000..3a20497 --- /dev/null +++ "b/docs/zh-cn/AnnotationType/AnnotationTypeEnum\346\236\232\344\270\276.md" @@ -0,0 +1,21 @@ +# AnnotationTypeEnum 枚举 + +## 概述 + +`AnnotationTypeEnum` 枚举是所有注释种类枚举类的基类。内部无枚举值,只用于被继承。 + +模块:[pymaidol.AnnotationType](AnnotationType模块.md) + +继承自:`enum.Enum` + +## 导入 + +```python +from pymaidol import AnnotationTypeEnum +``` + +或 + +```python +from pymaidol.AnnotationType import AnnotationTypeEnum +``` diff --git "a/docs/zh-cn/AnnotationType/AnnotationType\346\250\241\345\235\227.md" "b/docs/zh-cn/AnnotationType/AnnotationType\346\250\241\345\235\227.md" new file mode 100644 index 0000000..6f6e14b --- /dev/null +++ "b/docs/zh-cn/AnnotationType/AnnotationType\346\250\241\345\235\227.md" @@ -0,0 +1,27 @@ +# AnnotationType 模块 + +## 概述 + +`AnnotationType` 模块提供了可在模板设计文件中`.pymd`使用的注释的枚举类型。 + +模块:`pymaidol` + +## 导入 + +```python +from pymaidol import AnnotationType +``` + +## 类 + +名称 | 描述 +--- | --- +[AnnotationTypeEnum 枚举](AnnotationTypeEnum枚举.md) | `AnnotationTypeEnum` 枚举是所有注释种类枚举类的基类。内部无枚举值,只用于被继承。 +[SingleLineAnnotationTypeEnum 枚举](SingleLineAnnotationTypeEnum枚举.md) | 包含了可在模板设计文件中`.pymd`使用的单行注释的类型。 +[MultiLineAnnotationTypeEnum 枚举](MultiLineAnnotationTypeEnum枚举.md) | 包含了可在模板设计文件中`.pymd`使用的多行注释的类型。 + +## 静态变量 + +名称 | 类型 | 描述 +--- | --- | --- +FULL_ANNOTATION_TYPE | `list[AnnotationTypeEnum]` | 包含了所有注释种类枚举类的枚举值的列表。 diff --git "a/docs/zh-cn/AnnotationType/MultiLineAnnotationTypeEnum\346\236\232\344\270\276.md" "b/docs/zh-cn/AnnotationType/MultiLineAnnotationTypeEnum\346\236\232\344\270\276.md" new file mode 100644 index 0000000..92c8c55 --- /dev/null +++ "b/docs/zh-cn/AnnotationType/MultiLineAnnotationTypeEnum\346\236\232\344\270\276.md" @@ -0,0 +1,29 @@ +# MultiLineAnnotationTypeEnum 枚举 + +## 概述 + +包含了可在模板设计文件中`.pymd`使用的多行注释的类型。 + +模块:[pymaidol.AnnotationType](AnnotationType模块.md) + +继承自:[pymaidol.AnnotationType.AnnotationTypeEnum](AnnotationTypeEnum枚举.md) + +## 导入 + +```python +from pymaidol import MultiLineAnnotationTypeEnum +``` + +或 + +```python +from pymaidol.AnnotationType import MultiLineAnnotationTypeEnum +``` + +## 枚举项 + +名称 | 值 | 描述 +--- | --- | --- +Python | ''' | Python 的多行注释,即以 `'''` 开头和结尾的注释。 +C | /\* | C 的多行注释,即以 `/\*` 开头和 `*/` 结尾的注释。 +HTML | \` 结尾的注释。 diff --git "a/docs/zh-cn/AnnotationType/SingleLineAnnotationTypeEnum\346\236\232\344\270\276.md" "b/docs/zh-cn/AnnotationType/SingleLineAnnotationTypeEnum\346\236\232\344\270\276.md" new file mode 100644 index 0000000..dfd00ec --- /dev/null +++ "b/docs/zh-cn/AnnotationType/SingleLineAnnotationTypeEnum\346\236\232\344\270\276.md" @@ -0,0 +1,32 @@ +# SingleLineAnnotationTypeEnum 枚举 + +## 概述 + +包含了可在模板设计文件中`.pymd`使用的单行注释的类型。 + +模块:[pymaidol.AnnotationType](AnnotationType模块.md) + +继承自:[pymaidol.AnnotationType.AnnotationTypeEnum](AnnotationTypeEnum枚举.md) + +## 导入 + +```python +from pymaidol import SingleLineAnnotationTypeEnum +``` + +或 + +```python +from pymaidol.AnnotationType import SingleLineAnnotationTypeEnum +``` + +## 枚举项 + +名称 | 值 | 描述 +--- | --- | --- +Python | # | Python 的单行注释,即以 `#` 开头的注释。 +C | // | C 的单行注释,即以 `//` 开头的注释。 + +## 另请参阅 + +[AnnotationTypeEnum 枚举](AnnotationTypeEnum枚举.md) diff --git "a/docs/zh-cn/Position\347\261\273.md" "b/docs/zh-cn/Position\347\261\273.md" new file mode 100644 index 0000000..79f14d4 --- /dev/null +++ "b/docs/zh-cn/Position\347\261\273.md" @@ -0,0 +1,79 @@ +# Position 类 + +## 概述 + +`Position` 类用于定位在原始模板字符串中的位置。 + +`Position` 的对象里的属性是只读的,初始化之后不允许被修改。 + +注意:当 `Position` 类用于结束位置时,是包括该位置的字符的。比如:如果 `start.total = 20`, `end.total = 30`,那么对原模板字符串的切片应该为 `template[20:31]`。 + +模块:pymaidol.Positions + +## 导入 + +```python +from pymaidol import Position +``` + +或 + +```python +from pymaidol.Positions import Position +``` + +## 构造函数 + +### `Position(line_index, char_index, total)` + +#### 参数 + +- `line_index` (int): 行索引。从 0 开始。 +- `char_index` (int): 当前行的字符索引。从 0 开始。 +- `total` (int): 字符索引。从 0 开始。 + +## 属性 + +### `line_index` (int,readonly) + +行索引。从 0 开始。 + +### `char_index` (int,readonly) + +当前行的字符索引。从 0 开始。 + +### `total` (int,readonly) + +字符索引。从 0 开始。 + +### `full_description` (str,readonly) + +完整的、人类可读的位置描述。 + +## 方法 + +### `Position.Default()` + +@ classmethod + +新建并返回一个默认的 `Position` 对象,其所有属性均为 0。 + +#### 参数 + +无。 + +#### 返回值 (`Position`) + +默认的 `Position` 对象。 + +### `Copy()` + +复制并返回一个新的 `Position` 对象。 + +#### 参数 + +无。 + +#### 返回值 (`Position`) + +新的 `Position` 对象,且其所有属性与原对象相同。 diff --git "a/docs/zh-cn/Pymaidol_API\347\233\256\345\275\225.md" "b/docs/zh-cn/Pymaidol_API\347\233\256\345\275\225.md" new file mode 100644 index 0000000..239fe88 --- /dev/null +++ "b/docs/zh-cn/Pymaidol_API\347\233\256\345\275\225.md" @@ -0,0 +1,15 @@ +# Pymaidol API 目录 + +## 模块 + +名称 | 描述 +--- | --- +[AnnotationType 模块](AnnotationType/AnnotationType模块.md) | 提供了可在模板设计文件中`.pymd`使用的注释的枚举类型。 + +## 类 + +名称 | 描述 +--- | --- +[Position 类](Position类.md) | 用于定位在原始模板字符串中的位置。 +[TemplateBase 类](TemplateBase类.md) | Pymaidol 模板的后台类,是所有 Pymaidol 模板类的基类。 +[TemplateRenderer 类](TemplateRenderer类.md) | 将模板字符串渲染为字符串的类。 diff --git "a/docs/zh-cn/TemplateBase\347\261\273.md" "b/docs/zh-cn/TemplateBase\347\261\273.md" new file mode 100644 index 0000000..e5d06bd --- /dev/null +++ "b/docs/zh-cn/TemplateBase\347\261\273.md" @@ -0,0 +1,73 @@ +# TemplateBase 类 + +## 概述 + +`TemplateBase` 类是 Pymaidol 模板的后台类,是所有 Pymaidol 模板类的基类。是不可实例化的抽象类,需要被继承使用。 + +模块:pymaidol.TemplateBase + +继承自:abc.ABC + +## 导入 + +```python +from pymaidol import TemplateBase +``` + +或 + +```python +from pymaidol.TemplateBase import TemplateBase +``` + +## 构造函数 + +### `TemplateBase(template, template_file_path, supported_annotation_types)` (virtual) + +#### 参数 + +- `template` (str, optional): 模板字符串。默认为 `None`。 +- `template_file_path` (str, optional): 模板文件路径。默认为 `None`。 +- `supported_annotation_types` (list[AnnotationTypeEnum], optional): 支持的注释类型列表。默认为所有注释类型(Python、C的单行与多行注释、HTML注释)。 + +当 `template` 与 `template_file_path` 都为 `None` 时,`TemplateBase` 类及其子类将试图读取在与其同一目录下、与其同名的模板文件 `.pymd`。如果两个都不为空,则优先使用 `template`。 + +## 属性 + +### `rendered`(str,readonly) + +渲染后的字符串。如果自初始化或调用 `HotReload()` 方法以来没有调用过 `Render()` 方法,则为 `None`。 + +### `template`(str,readonly) + +模板字符串。 + +## 方法 + +### `HotReload(template, template_file_path)` (final) + +重新加载模板。 + +#### 参数 + +- `template` (str, optional): 模板字符串。默认为 `None`。 +- `template_file_path` (str, optional): 模板文件路径。默认为 `None`。 + +当 `template` 与 `template_file_path` 都为 `None` 时,`TemplateBase` 类及其子类将试图读取在与其同一目录下、与其同名的模板文件 `.pymd`。如果两个都不为空,则优先使用 `template`。 + +#### 返回值 (`None`) + +无。 + + +### `Render(inject_kwargs)` (final) + +给与数据并渲染模板字符串。 + +#### 参数 + +- `inject_kwargs` (dict, Optional): 用于渲染模板字符串的外部注入变量。默认为 `None`。注入的变量将会作为局部变量。 + +#### 返回值 (`str`) + +渲染后的字符串。 diff --git "a/docs/zh-cn/TemplateRenderer\347\261\273.md" "b/docs/zh-cn/TemplateRenderer\347\261\273.md" new file mode 100644 index 0000000..aecc07f --- /dev/null +++ "b/docs/zh-cn/TemplateRenderer\347\261\273.md" @@ -0,0 +1,62 @@ +# TemplateRenderer 类 + +## 概述 + +将模板字符串渲染为字符串的类。 + +模块:pymaidol.TemplateRenderer + +## 导入 + +```python +from pymaidol import TemplateRenderer +``` + +或 + +```python +from pymaidol.TemplateRenderer import TemplateRenderer +``` + +## 构造函数 + +### `TemplateRenderer(template, supported_annotation_types)` + +#### 参数 + +- `template` (str): 模板字符串。 +- `supported_annotation_types` (list[AnnotationTypeEnum], optional): 支持的注释类型列表。默认为所有注释类型(Python、C的单行与多行注释、HTML注释)。 + +## 属性 + +### `template`(str,readonly) + +模板字符串。 + +## 方法 + +### `TemplateRenderer.ReadFromFile(template_file_path, supported_annotation_types)` (classmethod) + +给定模板文件路径,返回一个 `TemplateRenderer` 对象。 + +#### 参数 + +- `template_file_path` (str): 模板文件路径。 +- `supported_annotation_types` (list[AnnotationTypeEnum]): 支持的注释类型列表。 + +#### 返回值 + +`TemplateRenderer`: `TemplateRenderer` 对象。 + +### `Render(local_vars, global_vars)` (final) + +给与数据并渲染模板字符串。 + +#### 参数 + +- `local_vars` (dict): 用于渲染模板字符串的局部变量。 +- `global_vars` (dict,可选): 用于渲染模板字符串的全局变量。默认为 `None`。 + +#### 返回值 + +`str`: 渲染后的字符串。 \ No newline at end of file diff --git a/examples/first_template/FirstTemplate.py b/examples/first_template/FirstTemplate.py index 07d21b7..526a401 100644 --- a/examples/first_template/FirstTemplate.py +++ b/examples/first_template/FirstTemplate.py @@ -1,8 +1,13 @@ -from pymaidol.TemplateBase import TemplateBase +from pymaidol import TemplateBase +from pymaidol.AnnotationType import FULL_ANNOTATION_TYPE, AnnotationTypeEnum class FirstTemplate(TemplateBase): - def __init__(self, package_name:str, template: str | None = None, template_file_path: str | None = None) -> None: - super().__init__(template, template_file_path) + def __init__(self, + package_name:str, + template: str | None = None, + template_file_path: str | None = None, + supported_annotation_types: list[AnnotationTypeEnum] = FULL_ANNOTATION_TYPE) -> None: + super().__init__(template, template_file_path, supported_annotation_types) self.package_name = package_name def main(): diff --git a/examples/template_renderer/renderer_demo.py b/examples/template_renderer/renderer_demo.py new file mode 100644 index 0000000..2fa96e5 --- /dev/null +++ b/examples/template_renderer/renderer_demo.py @@ -0,0 +1,29 @@ +import os +import sys +ROOT_DIR = os.path.join(os.path.dirname(__file__), "../../") +sys.path.append(ROOT_DIR) +from pymaidol import TemplateRenderer +from pymaidol.AnnotationType import SingleLineAnnotationTypeEnum + +USELESS = "USELESS" + +def main(): + renderer = TemplateRenderer.ReadFromFile("examples\\template_renderer\\template.pymd", [SingleLineAnnotationTypeEnum.C]) + alpha = 42 + beta = 3.14 + print(renderer.Render( + { + "global_vars": + { + "USELESS": USELESS + }, + "local_vars": + { + "alpha": alpha, + "beta": beta + } + } + )) + +if __name__ == "__main__": + main() \ No newline at end of file diff --git a/examples/template_renderer/template.pymd b/examples/template_renderer/template.pymd new file mode 100644 index 0000000..1891e8c --- /dev/null +++ b/examples/template_renderer/template.pymd @@ -0,0 +1,8 @@ +@{import time} +### START +Current Time: @(time.ctime()) +---globals--- +@(global_vars) +---locals--- +@(local_vars) +### END \ No newline at end of file diff --git a/pymaidol/Errors.py b/pymaidol/Errors.py index 9174b92..dc6768a 100644 --- a/pymaidol/Errors.py +++ b/pymaidol/Errors.py @@ -9,7 +9,7 @@ def __init__(self, position:Position): @property def Message(self): - return f"{self.__class__.__name__} at {self.position.FullDescription}: Error Occur\n{self.extra_detail}" + return f"{self.__class__.__name__} at {self.position.full_description}: Error Occur\n{self.extra_detail}" def __repr__(self) -> str: return self.Message @@ -29,7 +29,7 @@ def Message(self): expected_string = f'"{self.expected[0]}"' else: expected_string = f'{self.expected}' - return f'{self.__class__.__name__} at {self.position.FullDescription}: Expected {expected_string}, but got {self.got}\n{self.extra_detail}' + return f'{self.__class__.__name__} at {self.position.full_description}: Expected {expected_string}, but got {self.got}\n{self.extra_detail}' # Only use/happen in dev. class ImpossibleError(Exception): @@ -38,7 +38,7 @@ class ImpossibleError(Exception): class MultiLineAnnotationFormatError(BaseException): @property def Message(self): - return f"{self.__class__.__name__} at {self.position.FullDescription}: When using multi-line annotation, the line where the terminator is located must not have any text other than the annotation." + return f"{self.__class__.__name__} at {self.position.full_description}: When using multi-line annotation, the line where the terminator is located must not have any text other than the annotation." class UnknownEmbedIdentifierError(BaseException): def __init__(self, position:Position, unknown_identifier:str): @@ -47,28 +47,28 @@ def __init__(self, position:Position, unknown_identifier:str): @property def Message(self): - return f'{self.__class__.__name__} at {self.position.FullDescription}: Unknown "@{self.unknown_identifier}". If you want to write "@" in template, use "@@" instead.' + return f'{self.__class__.__name__} at {self.position.full_description}: Unknown "@{self.unknown_identifier}". If you want to write "@" in template, use "@@" instead.' class LackingConditionError(BaseException): @property def Message(self): - return f'{self.__class__.__name__} at {self.position.FullDescription}: Need Condition' + return f'{self.__class__.__name__} at {self.position.full_description}: Need Condition' class ElseExtraConditionError(BaseException): @property def Message(self): - return f'{self.__class__.__name__} at {self.position.FullDescription}: "else" should not have any condition' + return f'{self.__class__.__name__} at {self.position.full_description}: "else" should not have any condition' class BranchError(BaseException): @property def Message(self): - return f'{self.__class__.__name__} at {self.position.FullDescription}: Lacking "if" statement' + return f'{self.__class__.__name__} at {self.position.full_description}: Lacking "if" statement' class WrongForStatement(BaseException): @property def Message(self): - return f'{self.__class__.__name__} at {self.position.FullDescription}: Wrong "for" statement' + return f'{self.__class__.__name__} at {self.position.full_description}: Wrong "for" statement' class PythonExecutionError(BaseException): def __init__(self, position: Position, error:Exception): @@ -77,7 +77,7 @@ def __init__(self, position: Position, error:Exception): @property def Message(self): - return f'{self.__class__.__name__} at {self.position.FullDescription}: \n{str(self.error)}' + return f'{self.__class__.__name__} at {self.position.full_description}: \n{str(self.error)}' class TypeException(BaseException): def __init__(self, position: Position, description:str): @@ -86,7 +86,7 @@ def __init__(self, position: Position, description:str): @property def Message(self): - return f'{self.__class__.__name__} at {self.position.FullDescription}: {self.description}' + return f'{self.__class__.__name__} at {self.position.full_description}: {self.description}' class NameException(BaseException): def __init__(self, position: Position, description:str): @@ -95,4 +95,4 @@ def __init__(self, position: Position, description:str): @property def Message(self): - return f'{self.__class__.__name__} at {self.position.FullDescription}: {self.description}' + return f'{self.__class__.__name__} at {self.position.full_description}: {self.description}' diff --git a/pymaidol/Positions.py b/pymaidol/Positions.py index c78ecbb..4ee2c8a 100644 --- a/pymaidol/Positions.py +++ b/pymaidol/Positions.py @@ -20,14 +20,14 @@ def total(self): def Default(cls): return cls(0, 0, 0) - def copy(self): + def Copy(self): return Position(self.__line_index, self.__char_index, self.__char_index_total) def __str__(self): return f"{self.line_index}:{self.char_index}({self.total})" @property - def FullDescription(self): + def full_description(self): return f"line {self.line_index} char {self.char_index} (total {self.total})" def __repr__(self): diff --git a/pymaidol/TemplateBase.py b/pymaidol/TemplateBase.py index 2b555f3..4d61248 100644 --- a/pymaidol/TemplateBase.py +++ b/pymaidol/TemplateBase.py @@ -64,7 +64,7 @@ def Render(self, inject_kwargs:Optional[dict[str, Any]] = None) -> str: local_vars = {"self": self} if inject_kwargs is not None: global_vars.update(inject_kwargs) - result = self._renderer.Render(global_vars, local_vars) + result = self._renderer.Render(local_vars, global_vars) self._rendered = result return result diff --git a/pymaidol/TemplateRenderer.py b/pymaidol/TemplateRenderer.py index ee28190..65682cf 100644 --- a/pymaidol/TemplateRenderer.py +++ b/pymaidol/TemplateRenderer.py @@ -35,7 +35,9 @@ def template(self): return self._template @final - def Render(self, global_vars:dict, local_vars:dict) -> str: + def Render(self, local_vars:dict, global_vars:Optional[dict]=None) -> str: + if global_vars is None: + global_vars = {} return self._executor.Execute(global_vars, local_vars) @final diff --git a/pymaidol/__init__.py b/pymaidol/__init__.py index 9692629..56ea553 100644 --- a/pymaidol/__init__.py +++ b/pymaidol/__init__.py @@ -2,6 +2,6 @@ from pymaidol import Errors from pymaidol.Positions import Position from pymaidol.TemplateRenderer import TemplateRenderer -from pymaidol import AnnotationType +from pymaidol.AnnotationType import AnnotationTypeEnum, SingleLineAnnotationTypeEnum, MultiLineAnnotationTypeEnum -__all__=['Errors', 'Position', 'TemplateBase', 'TemplateRenderer', 'AnnotationType'] \ No newline at end of file +__all__=['Errors', 'Position', 'TemplateBase', 'TemplateRenderer', 'AnnotationTypeEnum', 'SingleLineAnnotationTypeEnum', 'MultiLineAnnotationTypeEnum'] \ No newline at end of file diff --git a/tests/test_everything.py b/tests/test_everything.py index 8f01a1b..b9de485 100644 --- a/tests/test_everything.py +++ b/tests/test_everything.py @@ -10,7 +10,7 @@ sys.path.append(ROOT_DIR) sys.path.append(SRC_DIR) from pymaidol.TemplateBase import TemplateBase -from pymaidol.AnnotationTypeEnum import MultiLineAnnotationTypeEnum +from pymaidol.AnnotationType import MultiLineAnnotationTypeEnum from tests.harder_demo.CodeLangTemplate import CodeLangTemplate gol = 23