From 5f398605762bf882e21c56b72a822b4aa57c3154 Mon Sep 17 00:00:00 2001 From: yyc12345 Date: Mon, 14 Sep 2026 10:00:34 +0800 Subject: [PATCH] refactor: introduce collective liquid filter declarations --- src/metaglot/__main__.py | 4 ++++ src/metaglot/filters.py | 34 ++++++++++++++++++++++++++++++++++ 2 files changed, 38 insertions(+) create mode 100644 src/metaglot/__main__.py create mode 100644 src/metaglot/filters.py diff --git a/src/metaglot/__main__.py b/src/metaglot/__main__.py new file mode 100644 index 0000000..c7c70d0 --- /dev/null +++ b/src/metaglot/__main__.py @@ -0,0 +1,4 @@ +from . import main + +if __name__ == '__main__': + main() diff --git a/src/metaglot/filters.py b/src/metaglot/filters.py new file mode 100644 index 0000000..81433e0 --- /dev/null +++ b/src/metaglot/filters.py @@ -0,0 +1,34 @@ +from liquid import Environment + + +def _is_integer(s: str) -> bool: + try: + int(s) + return True + except (TypeError, ValueError): + return False + + +def _is_float(s: str) -> bool: + try: + float(s) + return True + except (TypeError, ValueError): + return False + + +def register_general_filters(env: Environment) -> None: + env.add_filter("to_string", str) + env.add_filter("format", str.format) + env.add_filter("to_integer", int) + env.add_filter("to_float", float) + env.add_filter("is_integer", _is_integer) + env.add_filter("is_float", _is_float) + + +def _rc_escape(value: str) -> str: + return value.replace("\\", "\\\\").replace('"', '\\"') + + +def register_rc_specific_filters(env: Environment) -> None: + env.add_filter("rc_escape", _rc_escape)