diff --git a/src/linkahead/utils/escape.py b/src/linkahead/utils/escape.py new file mode 100644 index 0000000000000000000000000000000000000000..b42c0b1ff02c4416bff8ec6b1d94b41623d473e8 --- /dev/null +++ b/src/linkahead/utils/escape.py @@ -0,0 +1,39 @@ +# -*- coding: utf-8 -*- +# +# This file is a part of the LinkAhead Project. +# +# Copyright (C) 2024 Henrik tom Wörden <h.tomwoerden@indiscale.com> +# Copyright (C) 2024 IndiScale GmbH <info@indiscale.com> +# +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU Affero General Public License as +# published by the Free Software Foundation, either version 3 of the +# License, or (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU Affero General Public License for more details. +# +# You should have received a copy of the GNU Affero General Public License +# along with this program. If not, see <https://www.gnu.org/licenses/>. +# + + +def escape_quoted_text(text: str) -> str: + """The characters `\` and `*` need to be escaped if used in quoted expressions in the query + language. + + This function return the given string where the characters `\` and `*` are escaped by a `\`. + + Parameters + ---------- + text : str + The text to be escaped + + Returns + ------- + str + The escaped text + """ + return text.replace('\\', r'\\').replace('*', r'\*')