# paperdoorknob: Print glowfic # # This program is free software: you can redistribute it and/or modify it # under the terms of the GNU General Public License as published by the # Free Software Foundation, version 3. from dataclasses import dataclass 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]