from dataclasses import dataclass
-from typing import IO
+from typing import Callable, IO
+
+from bs4.element import Tag
from fetch import Fetcher
+from glowfic import Layout
+from images import ImageStore
from texify import Texifier
+# pylint: disable=too-many-instance-attributes
@dataclass(frozen=True)
class Spec:
url: str
fetcher: Fetcher
+ images: ImageStore
+ htmlfilter: Callable[[bytes], bytes]
+ domfilter: Callable[[Tag], None]
texifier: Texifier
+ texfilter: Callable[[bytes], bytes]
+ icon_size: float
+ layout: Layout
+ geometry: str | None
texout: IO[bytes]
+ log: Callable[[str], None]