]> git.scottworley.com Git - paperdoorknob/blame - spec.py
Allow many Spec fields
[paperdoorknob] / spec.py
CommitLineData
23f31879
SW
1# paperdoorknob: Print glowfic
2#
3# This program is free software: you can redistribute it and/or modify it
4# under the terms of the GNU General Public License as published by the
5# Free Software Foundation, version 3.
6
7
8from dataclasses import dataclass
9
929db576 10from typing import Callable, IO
23f31879 11
8be20b9d
SW
12from bs4.element import Tag
13
23f31879
SW
14from fetch import Fetcher
15from texify import Texifier
16
17
432bb83b 18# pylint: disable=too-many-instance-attributes
23f31879
SW
19@dataclass(frozen=True)
20class Spec:
21 url: str
22 fetcher: Fetcher
929db576 23 htmlfilter: Callable[[bytes], bytes]
8be20b9d 24 domfilter: Callable[[Tag], None]
23f31879 25 texifier: Texifier
e10b5b6f 26 geometry: str | None
23f31879 27 texout: IO[bytes]