From 57b9673efb1b4fd18a3ac15e26da642201e2cd33 Mon Sep 17 00:00:00 2001 From: Markus Heiser Date: Fri, 22 Aug 2025 17:17:51 +0200 Subject: [mod] addition of various type hints / tbc - pyright configuration [1]_ - stub files: types-lxml [2]_ - addition of various type hints - enable use of new type system features on older Python versions [3]_ - ``.tool-versions`` - set python to lowest version we support (3.10.18) [4]_: Older versions typically lack some typing features found in newer Python versions. Therefore, for local type checking (before commit), it is necessary to use the older Python interpreter. .. [1] https://docs.basedpyright.com/v1.20.0/configuration/config-files/ .. [2] https://pypi.org/project/types-lxml/ .. [3] https://typing-extensions.readthedocs.io/en/latest/# .. [4] https://mise.jdx.dev/configuration.html#tool-versions Signed-off-by: Markus Heiser Format: reST --- searx/plugins/_core.py | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) (limited to 'searx/plugins/_core.py') diff --git a/searx/plugins/_core.py b/searx/plugins/_core.py index bb1f813d3..9b194a9eb 100644 --- a/searx/plugins/_core.py +++ b/searx/plugins/_core.py @@ -11,6 +11,7 @@ import inspect import logging import re import typing +from collections.abc import Sequence from dataclasses import dataclass, field @@ -89,7 +90,7 @@ class Plugin(abc.ABC): fqn: str = "" - def __init__(self, plg_cfg: PluginCfg) -> None: + def __init__(self, plg_cfg: "PluginCfg") -> None: super().__init__() if not self.fqn: self.fqn = self.__class__.__mro__[0].__module__ @@ -120,7 +121,7 @@ class Plugin(abc.ABC): return id(self) - def __eq__(self, other): + def __eq__(self, other: typing.Any): """py:obj:`Plugin` objects are equal if the hash values of the two objects are equal.""" @@ -166,7 +167,7 @@ class Plugin(abc.ABC): """ return True - def post_search(self, request: SXNG_Request, search: "SearchWithPlugins") -> None | typing.Sequence[Result]: + def post_search(self, request: SXNG_Request, search: "SearchWithPlugins") -> None | Sequence[Result]: """Runs AFTER the search request. Can return a list of :py:obj:`Result ` objects to be added to the final result list.""" @@ -207,7 +208,7 @@ class PluginStorage: return [p.info for p in self.plugin_list] - def load_settings(self, cfg: dict[str, dict]): + def load_settings(self, cfg: dict[str, dict[str, typing.Any]]): """Load plugins configured in SearXNG's settings :ref:`settings plugins`.""" -- cgit v1.2.3