MCPcopy Create free account
hub / github.com/hynek/structlog / KeyValueRenderer

Class KeyValueRenderer

src/structlog/processors.py:68–118  ·  view source on GitHub ↗

Render ``event_dict`` as a list of ``Key=repr(Value)`` pairs. Args: sort_keys: Whether to sort keys when formatting. key_order: List of keys that should be rendered in this exact order. Missing keys will be rendered as ``None``, extra keys dependin

Source from the content-addressed store, hash-verified

66
67
68class KeyValueRenderer:
69 """
70 Render ``event_dict`` as a list of ``Key=repr(Value)`` pairs.
71
72 Args:
73 sort_keys: Whether to sort keys when formatting.
74
75 key_order:
76 List of keys that should be rendered in this exact order. Missing
77 keys will be rendered as ``None``, extra keys depending on
78 *sort_keys* and the dict class.
79
80 drop_missing:
81 When ``True``, extra keys in *key_order* will be dropped rather
82 than rendered as ``None``.
83
84 repr_native_str:
85 When ``True``, :func:`repr()` is also applied to native strings.
86
87 .. versionadded:: 0.2.0 *key_order*
88 .. versionadded:: 16.1.0 *drop_missing*
89 .. versionadded:: 17.1.0 *repr_native_str*
90 """
91
92 def __init__(
93 self,
94 sort_keys: bool = False,
95 key_order: Sequence[str] | None = None,
96 drop_missing: bool = False,
97 repr_native_str: bool = True,
98 ):
99 self._ordered_items = _items_sorter(sort_keys, key_order, drop_missing)
100
101 if repr_native_str is True:
102 self._repr = repr
103 else:
104
105 def _repr(inst: Any) -> str:
106 if isinstance(inst, str):
107 return inst
108
109 return repr(inst)
110
111 self._repr = _repr
112
113 def __call__(
114 self, _: WrappedLogger, __: str, event_dict: EventDict
115 ) -> str:
116 return " ".join(
117 k + "=" + self._repr(v) for k, v in self._ordered_items(event_dict)
118 )
119
120
121class LogfmtRenderer:

Callers 13

build_blFunction · 0.90
test_errWithFailureMethod · 0.90
test_sort_keysMethod · 0.90
test_order_completeMethod · 0.90
test_order_missingMethod · 0.90
test_order_extraMethod · 0.90
test_random_orderMethod · 0.90

Calls

no outgoing calls

Tested by 13

build_blFunction · 0.72
test_errWithFailureMethod · 0.72
test_sort_keysMethod · 0.72
test_order_completeMethod · 0.72
test_order_missingMethod · 0.72
test_order_extraMethod · 0.72
test_random_orderMethod · 0.72

Used in the wild real call sites across dependent graphs

searching dependent graphs…