From bb5d0f765dbdb96d2f120070c4d26f04e26df54a Mon Sep 17 00:00:00 2001 From: Dima Gerasimov Date: Wed, 9 Oct 2019 23:31:21 +0100 Subject: [PATCH] move stuff from kobuddy --- my/books/kobo.py | 24 ++++++++++++++++++++++++ 1 file changed, 24 insertions(+) diff --git a/my/books/kobo.py b/my/books/kobo.py index 7d2dd74..ea3a609 100644 --- a/my/books/kobo.py +++ b/my/books/kobo.py @@ -1,8 +1,32 @@ +from typing import Callable, Union, List + from my_configuration import paths from my_configuration.repos.kobuddy.src.kobuddy import * set_databases(paths.kobuddy.export_dir) +# TODO maybe type over T? +_Predicate = Callable[[str], bool] +Predicatish = Union[str, _Predicate] +def from_predicatish(p: Predicatish) -> _Predicate: + if isinstance(p, str): + def ff(s): + return s == p + return ff + else: + return p + + +def by_annotation(predicatish: Predicatish, **kwargs) -> List[Highlight]: + pred = from_predicatish(predicatish) + + res: List[Highlight] = [] + for h in get_highlights(**kwargs): + if pred(h.annotation): + res.append(h) + return res + + def get_todos(): def with_todo(ann): if ann is None: