Coverage for src/pystencilssfg/composer/mixin.py: 80%
15 statements
« prev ^ index » next coverage.py v7.8.0, created at 2025-04-04 07:16 +0000
« prev ^ index » next coverage.py v7.8.0, created at 2025-04-04 07:16 +0000
1from __future__ import annotations
3from ..context import SfgContext, SfgCursor
4from .basic_composer import SfgBasicComposer
7class SfgComposerMixIn:
8 # type: ignore
9 def __new__(cls, *args, **kwargs):
10 if not issubclass(cls, SfgBasicComposer):
11 raise Exception(f"{cls} must be mixed-in with SfgBasicComposer.")
12 else:
13 return super().__new__(cls)
15 def __init__(self) -> None:
16 self._ctx: SfgContext
17 self._cursor: SfgCursor
19 @property
20 def _composer(self) -> SfgBasicComposer:
21 assert isinstance(self, SfgBasicComposer)
22 return self