|
1 | 1 | import os
|
2 | 2 | from collections.abc import Iterable
|
3 |
| -from typing import TYPE_CHECKING, TypedDict |
| 3 | +from typing import TypedDict |
| 4 | + |
| 5 | +from jinja2 import Template |
4 | 6 |
|
5 | 7 | from commitizen import defaults
|
6 | 8 | from commitizen.config import BaseConfig
|
7 | 9 | from commitizen.cz.base import BaseCommitizen
|
8 | 10 | from commitizen.cz.utils import multiple_line_breaker, required_validator
|
9 | 11 | from commitizen.question import CzQuestion
|
10 | 12 |
|
11 |
| -if TYPE_CHECKING: |
12 |
| - from jinja2 import Template |
13 |
| -else: |
14 |
| - try: |
15 |
| - from jinja2 import Template |
16 |
| - except ImportError: |
17 |
| - from string import Template |
18 |
| - |
19 | 13 | __all__ = ["ConventionalCommitsCz"]
|
20 | 14 |
|
21 | 15 |
|
@@ -181,10 +175,7 @@ def questions(self) -> Iterable[CzQuestion]:
|
181 | 175 |
|
182 | 176 | def message(self, answers: ConventionalCommitsAnswers) -> str: # type: ignore[override]
|
183 | 177 | if _message_template := self.custom_settings.get("message_template"):
|
184 |
| - message_template = Template(_message_template) |
185 |
| - if getattr(Template, "substitute", None): |
186 |
| - return message_template.substitute(**answers) # type: ignore[attr-defined,no-any-return] # pragma: no cover # TODO: check if we can fix this |
187 |
| - return message_template.render(**answers) |
| 178 | + return Template(_message_template).render(**answers) |
188 | 179 |
|
189 | 180 | prefix = answers["prefix"]
|
190 | 181 | scope = answers["scope"]
|
|
0 commit comments