Skip to content

Commit 277f48d

Browse files
alexfiklinducer
authored andcommitted
feat: make _TextTemplate subclasses into dataclasses
1 parent eea9471 commit 277f48d

File tree

1 file changed

+12
-7
lines changed

1 file changed

+12
-7
lines changed

pyopencl/tools.py

Lines changed: 12 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -131,7 +131,7 @@
131131
import atexit
132132
import re
133133
from abc import ABC, abstractmethod
134-
from dataclasses import dataclass
134+
from dataclasses import dataclass, field
135135
from sys import intern
136136
from typing import (
137137
TYPE_CHECKING,
@@ -164,6 +164,7 @@
164164
if TYPE_CHECKING:
165165
from collections.abc import Callable, Hashable, Iterator, Mapping, Sequence
166166

167+
from mako.template import Template
167168
from numpy.typing import DTypeLike, NDArray
168169
from pytest import Metafunc
169170

@@ -1301,29 +1302,33 @@ def render(self, context: dict[str, Any]) -> str:
13011302
pass
13021303

13031304

1305+
@dataclass(frozen=True)
13041306
class _SimpleTextTemplate(_TextTemplate):
1305-
def __init__(self, txt: str) -> None:
1306-
self.txt: str = txt
1307+
txt: str
13071308

13081309
@override
13091310
def render(self, context: dict[str, Any]) -> str:
13101311
return self.txt
13111312

13121313

1314+
@dataclass(frozen=True)
13131315
class _PrintfTextTemplate(_TextTemplate):
1314-
def __init__(self, txt: str) -> None:
1315-
self.txt: str = txt
1316+
txt: str
13161317

13171318
@override
13181319
def render(self, context: dict[str, Any]) -> str:
13191320
return self.txt % context
13201321

13211322

1323+
@dataclass(frozen=True)
13221324
class _MakoTextTemplate(_TextTemplate):
1323-
def __init__(self, txt: str) -> None:
1325+
txt: str
1326+
template: Template = field(init=False)
1327+
1328+
def __post_init__(self) -> None:
13241329
from mako.template import Template
13251330

1326-
self.template: Template = Template(txt, strict_undefined=True)
1331+
object.__setattr__(self, "template", Template(self.txt, strict_undefined=True))
13271332

13281333
@override
13291334
def render(self, context: dict[str, Any]) -> str:

0 commit comments

Comments
 (0)