aboutsummaryrefslogtreecommitdiffstats
path: root/filter_plugins
diff options
context:
space:
mode:
authorRomain Gonçalves <me@rgoncalves.se>2024-02-08 13:25:51 +0100
committerRomain Gonçalves <me@rgoncalves.se>2024-02-08 13:25:51 +0100
commitb860b2f7ed1cd2f1ca66a95f3c063c4fc0f35a41 (patch)
treed21fe72e82cc5413665b9906838bf96b8f21a8a8 /filter_plugins
parent4d79c91d02ea5e3a9df23e6d95be9646c39e5cc3 (diff)
downloadrules-b860b2f7ed1cd2f1ca66a95f3c063c4fc0f35a41.tar.gz
feat(filter_plugins): normalize special character to ascii characters
Diffstat (limited to 'filter_plugins')
-rw-r--r--filter_plugins/core.py19
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
+ }
remember that computers suck.