gitscope
← marzneshin / v0.6.3 / app/templates/filters.py
https://dev.kronoz.win/r/marzneshin.git
app/templates/filters.py · Python
Blame Raw
 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}