| """ |
| Thin wrapper around the Playwright-based HTML renderer. |
| """ |
|
|
| from __future__ import annotations |
|
|
| from typing import Any, Callable, Optional |
|
|
| from ..pyppeteer_pdf_converter import get_pdf_converter |
|
|
|
|
| class HtmlRenderService: |
| def __init__( |
| self, |
| *, |
| converter: Optional[Any] = None, |
| converter_factory: Optional[Callable[[], Any]] = None, |
| ) -> None: |
| self._converter = converter |
| self._converter_factory = converter_factory or get_pdf_converter |
|
|
| @property |
| def converter(self) -> Any: |
| if self._converter is None: |
| self._converter = self._converter_factory() |
| return self._converter |
|
|
| def is_available(self) -> bool: |
| return self.converter.is_available() |
|
|
| async def screenshot_html(self, html_file_path: str, screenshot_path: str, **kwargs: Any) -> bool: |
| return await self.converter.screenshot_html(html_file_path, screenshot_path, **kwargs) |
|
|
| async def record_html_video(self, html_file_path: str, output_path: str, **kwargs: Any) -> bool: |
| return await self.converter.record_html_video(html_file_path, output_path, **kwargs) |
|
|