mirror of
https://github.com/searxng/searxng.git
synced 2024-06-02 13:29:22 +00:00
WIP
Signed-off-by: Markus Heiser <markus.heiser@darmarit.de>
This commit is contained in:
parent
df531e4197
commit
6e9ea25e47
|
@ -14,7 +14,7 @@ from __future__ import annotations
|
|||
import json
|
||||
import dataclasses
|
||||
import types
|
||||
from typing import Dict, Literal, Iterable, Union, Callable, TypeVar, Optional, TYPE_CHECKING
|
||||
from typing import Dict, Literal, Iterable, Union, Callable, Optional, TYPE_CHECKING
|
||||
|
||||
from searx import locales
|
||||
from searx.data import data_dir, ENGINE_TRAITS
|
||||
|
@ -23,9 +23,6 @@ if TYPE_CHECKING:
|
|||
from . import Engine
|
||||
|
||||
|
||||
Self = TypeVar("Self", bound="EngineTraits") # Python 3.11, to replace by typing.Self
|
||||
|
||||
|
||||
class EngineTraitsEncoder(json.JSONEncoder):
|
||||
"""Encodes :class:`EngineTraits` to a serializable object, see
|
||||
:class:`json.JSONEncoder`."""
|
||||
|
@ -138,7 +135,7 @@ class EngineTraits:
|
|||
return EngineTraits(**dataclasses.asdict(self))
|
||||
|
||||
@classmethod
|
||||
def fetch_traits(cls, engine: Engine) -> Union[Self, None]:
|
||||
def fetch_traits(cls, engine: Engine) -> Union['EngineTraits', None]:
|
||||
"""Call a function ``fetch_traits(engine_traits)`` from engines namespace to fetch
|
||||
and set properties from the origin engine in the object ``engine_traits``. If
|
||||
function does not exists, ``None`` is returned.
|
||||
|
@ -206,7 +203,7 @@ class EngineTraitsMap(Dict[str, EngineTraits]):
|
|||
json.dump(self, f, indent=2, sort_keys=True, cls=EngineTraitsEncoder)
|
||||
|
||||
@classmethod
|
||||
def from_data(cls) -> Self:
|
||||
def from_data(cls) -> 'EngineTraitsMap':
|
||||
"""Instantiate :class:`EngineTraitsMap` object from :py:obj:`ENGINE_TRAITS`"""
|
||||
obj = cls()
|
||||
for k, v in ENGINE_TRAITS.items():
|
||||
|
@ -214,7 +211,7 @@ class EngineTraitsMap(Dict[str, EngineTraits]):
|
|||
return obj
|
||||
|
||||
@classmethod
|
||||
def fetch_traits(cls, log: Callable) -> Self:
|
||||
def fetch_traits(cls, log: Callable) -> 'EngineTraitsMap':
|
||||
from searx import engines # pylint: disable=cyclic-import, import-outside-toplevel
|
||||
|
||||
names = list(engines.engines)
|
||||
|
|
Loading…
Reference in a new issue