bazarr/libs/dynaconf/strategies/filtering.py

20 lines
560 B
Python

from __future__ import annotations
from dynaconf.utils import upperfy
class PrefixFilter:
def __init__(self, prefix):
if not isinstance(prefix, str):
raise TypeError("`SETTINGS_FILE_PREFIX` must be str")
self.prefix = f"{upperfy(prefix)}_"
def __call__(self, data):
"""Filter incoming data by prefix"""
len_prefix = len(self.prefix)
return {
upperfy(key[len_prefix:]): value
for key, value in data.items()
if upperfy(key[:len_prefix]) == self.prefix
}