-
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathprocessors.py
More file actions
51 lines (35 loc) · 1.35 KB
/
Copy pathprocessors.py
File metadata and controls
51 lines (35 loc) · 1.35 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
"""Subset of ``structlog.processors`` used by the FixOps codebase."""
from __future__ import annotations
import datetime as _dt
import json
from typing import Any, Dict
class TimeStamper:
def __init__(self, fmt: str = "iso") -> None:
self.fmt = fmt
def __call__(self, logger, method_name: str, event_dict: Dict[str, Any]) -> Dict[str, Any]:
timestamp = _dt.datetime.utcnow()
if self.fmt == "iso":
event_dict.setdefault("timestamp", timestamp.isoformat())
else:
event_dict.setdefault("timestamp", str(timestamp))
return event_dict
class StackInfoRenderer:
def __call__(self, logger, method_name: str, event_dict: Dict[str, Any]) -> Dict[str, Any]:
return event_dict
def format_exc_info(logger, method_name: str, event_dict: Dict[str, Any]) -> Dict[str, Any]:
return event_dict
class UnicodeDecoder:
def __call__(self, logger, method_name: str, event_dict: Dict[str, Any]) -> Dict[str, Any]:
return event_dict
class JSONRenderer:
def __init__(self, **kwargs: Any) -> None:
self.kwargs = kwargs
def __call__(self, logger, method_name: str, event_dict: Dict[str, Any]) -> str:
return json.dumps(event_dict, **self.kwargs)
__all__ = [
"TimeStamper",
"StackInfoRenderer",
"format_exc_info",
"UnicodeDecoder",
"JSONRenderer",
]