"""
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)