diff options
author | Romain Gonçalves <me@rgoncalves.se> | 2024-02-08 13:25:51 +0100 |
---|---|---|
committer | Romain Gonçalves <me@rgoncalves.se> | 2024-02-08 13:25:51 +0100 |
commit | b860b2f7ed1cd2f1ca66a95f3c063c4fc0f35a41 (patch) | |
tree | d21fe72e82cc5413665b9906838bf96b8f21a8a8 /filter_plugins | |
parent | 4d79c91d02ea5e3a9df23e6d95be9646c39e5cc3 (diff) | |
download | rules-b860b2f7ed1cd2f1ca66a95f3c063c4fc0f35a41.tar.gz |
feat(filter_plugins): normalize special character to ascii characters
Diffstat (limited to 'filter_plugins')
-rw-r--r-- | filter_plugins/core.py | 19 |
1 files changed, 19 insertions, 0 deletions
diff --git a/filter_plugins/core.py b/filter_plugins/core.py new file mode 100644 index 0000000..74d6a72 --- /dev/null +++ b/filter_plugins/core.py @@ -0,0 +1,19 @@ +import unicodedata +from typing import Callable + + +def normalize_unicode_to_ansii(data: str) -> str: + """Returns an UTF-8 normalized string without unicode characters.""" + return ( + unicodedata.normalize("NFD", data) + .encode("ascii", errors="ignore") + .decode("utf-8") + ) + + +class FilterModule(object): + + def filters(self) -> dict[str, Callable]: + return { + "normalize_unicode_to_ansii": normalize_unicode_to_ansii + } |