From 42a8e9fde89de7ea89219da1ffdea2a8fd3dcebf Mon Sep 17 00:00:00 2001 From: lemon24 Date: Sun, 21 Jul 2024 16:06:33 +0300 Subject: [PATCH] Minor fixes after updating to mypy 1.11. --- src/reader/_storage/_entries.py | 2 +- src/reader/_storage/_search.py | 4 ++-- src/reader/_storage/_sqlite_utils.py | 3 ++- src/reader/_utils.py | 4 +++- 4 files changed, 8 insertions(+), 5 deletions(-) diff --git a/src/reader/_storage/_entries.py b/src/reader/_storage/_entries.py index 878d6582..05aad912 100644 --- a/src/reader/_storage/_entries.py +++ b/src/reader/_storage/_entries.py @@ -62,7 +62,7 @@ def get_entries( self.paginated_query, partial(get_entries_query, filter, sort), row_factory=entry_factory, - ) # type: ignore[var-annotated] + ) if sort != 'random': last = self.get_entry_last(sort, starting_after) if starting_after else None return paginated_query(limit, last) diff --git a/src/reader/_storage/_search.py b/src/reader/_storage/_search.py index c1c9fa65..d10a04ef 100644 --- a/src/reader/_storage/_search.py +++ b/src/reader/_storage/_search.py @@ -409,7 +409,7 @@ def make_query() -> tuple[Query, dict[str, Any]]: def pq( limit: int | None, last: tuple[Any, ...] | None = None ) -> Iterable[EntrySearchResult]: - with wrap_exceptions(ENABLED_EXC | QUERY_EXC): + with wrap_exceptions(ENABLED_EXC | QUERY_EXC): # type: ignore[operator] yield from paginated_query( self.get_db(), make_query, @@ -455,7 +455,7 @@ def search_entry_last(self, query: str, entry: tuple[str, str]) -> tuple[Any, .. lambda: EntryNotFoundError(feed_url, entry_id), ) - @wrap_exceptions(ENABLED_EXC | QUERY_EXC) + @wrap_exceptions(ENABLED_EXC | QUERY_EXC) # type: ignore[operator] def search_entry_counts( self, query: str, diff --git a/src/reader/_storage/_sqlite_utils.py b/src/reader/_storage/_sqlite_utils.py index 81609164..ce8dd11d 100644 --- a/src/reader/_storage/_sqlite_utils.py +++ b/src/reader/_storage/_sqlite_utils.py @@ -14,6 +14,7 @@ import weakref from collections.abc import Callable from collections.abc import Iterator +from collections.abc import Mapping from collections.abc import Sequence from contextlib import closing from contextlib import contextmanager @@ -85,7 +86,7 @@ def ddl_transaction(db: sqlite3.Connection) -> Iterator[sqlite3.Connection]: @contextmanager def wrap_exceptions( exc_type: Callable[[str], Exception], - op_exc_types: dict[str, Callable[[str], Exception]] = {}, # noqa: B006 + op_exc_types: Mapping[str, Callable[[str], Exception]] = {}, # noqa: B006 message: str = "unexpected error", ) -> Iterator[None]: """Wrap sqlite3 exceptions in a custom exception. diff --git a/src/reader/_utils.py b/src/reader/_utils.py index da9e0b3e..cdb65d66 100644 --- a/src/reader/_utils.py +++ b/src/reader/_utils.py @@ -89,8 +89,10 @@ def get_count() -> int: MapFunction = Callable[[Callable[[_T], _U], Iterable[_T]], Iterator[_U]] MapContextManager = AbstractContextManager[MapFunction[_T, _U]] +# type ignore because of https://github.com/python/mypy/issues/17551 -@contextmanager + +@contextmanager # type: ignore[arg-type] def make_pool_map(workers: int) -> Iterator[MapFunction[_T, _U]]: # We are using concurrent.futures instead of multiprocessing.dummy # because the latter doesn't work on some environments (e.g. AWS Lambda).