|
@@ -0,0 +1,49 @@
|
|
|
+# SPDX-License-Identifier: AGPL-3.0-or-later
|
|
|
+"""
|
|
|
+Typification of the *keyvalue* results. Results of this type are rendered in
|
|
|
+the :origin:`keyvalue.html <searx/templates/simple/result_templates/keyvalue.html>`
|
|
|
+template.
|
|
|
+
|
|
|
+----
|
|
|
+
|
|
|
+.. autoclass:: KeyValue
|
|
|
+ :members:
|
|
|
+ :show-inheritance:
|
|
|
+
|
|
|
+"""
|
|
|
+# pylint: disable=too-few-public-methods
|
|
|
+
|
|
|
+from __future__ import annotations
|
|
|
+
|
|
|
+__all__ = ["KeyValue"]
|
|
|
+
|
|
|
+import typing
|
|
|
+from collections import OrderedDict
|
|
|
+
|
|
|
+from ._base import MainResult
|
|
|
+
|
|
|
+
|
|
|
+class KeyValue(MainResult, kw_only=True):
|
|
|
+ """Simple table view which maps *key* names (first col) to *values*
|
|
|
+ (second col)."""
|
|
|
+
|
|
|
+ template: str = "keyvalue.html"
|
|
|
+
|
|
|
+ kvmap: dict[str, typing.Any] | OrderedDict[str, typing.Any]
|
|
|
+ """Dictionary with keys and values. To sort keys, use :py:obj:`OrderedDict`."""
|
|
|
+
|
|
|
+ caption: str = ""
|
|
|
+ """Optional caption for this result."""
|
|
|
+
|
|
|
+ key_title: str = ""
|
|
|
+ """Optional title for the *key column*."""
|
|
|
+
|
|
|
+ value_title: str = ""
|
|
|
+ """Optional title for the *value column*."""
|
|
|
+
|
|
|
+ def __hash__(self) -> int:
|
|
|
+ """The KeyValues objects are checked for object identity, even if all
|
|
|
+ fields of two results have the same values, they are different from each
|
|
|
+ other.
|
|
|
+ """
|
|
|
+ return id(self)
|