https://dev.kronoz.win/r/marzneshin.git
1import os
2from datetime import datetime
3
4import yaml
5
6from app.utils.system import readable_size
7
8
9def to_yaml(obj):
10 if not obj:
11 return ""
12
13 return yaml.dump(obj, allow_unicode=True, indent=2)
14
15
16def exclude_keys(obj, *target_keys):
17 return {key: val for key, val in obj.items() if key not in target_keys}
18
19
20def only_keys(obj, *target_keys):
21 return {key: val for key, val in obj.items() if key in target_keys}
22
23
24def datetimeformat(dt):
25 if isinstance(dt, int):
26 dt = datetime.fromtimestamp(dt)
27 formatted_datetime = dt.strftime("%Y-%m-%d %H:%M:%S")
28 return formatted_datetime
29
30
31def env_override(value, key):
32 return os.getenv(key, value)
33
34
35CUSTOM_FILTERS = {
36 "yaml": to_yaml,
37 "except": exclude_keys,
38 "only": only_keys,
39 "datetime": datetimeformat,
40 "bytesformat": readable_size,
41}