| FazBrowse GitHub Viewer | Trending | | Home |
| Tools: [Download Repo ZIP] [Original HTTPS Page] |
Documentation build overview10 files changed · ± 10 modified ± Modified |
Sorry, something went wrong.
|
What do you think of adding also a sanitize function which takes a callback? Example: import re
ILLEGAL_XML_CHARS_RE = re.compile(
'['
# Control characters; newline (\x0A and \x0D) and TAB (\x09) are legal
'\x00-\x08\x0B\x0C\x0E-\x1F'
# Surrogate characters
'\uD800-\uDFFF'
# Special Unicode characters
'\uFFFE'
'\uFFFF'
# Match multiple sequential invalid characters for better efficiency
']+')
def sanitize(text, replace_func):
def callback(regs):
return replace_func(regs[0])
return ILLEGAL_XML_CHARS_RE.sub(callback, text)
def escape(text):
return ''.join(f'\\x{ord(char):02x}' for char in text)
invalid = '\x00'
test = f'a{invalid}b'
print(sanitize(test, lambda text: '#' * len(text)))
print(sanitize(test, escape))It would be useful for sanitize_xml() of Lib/test/libregrtest/utils.py. |
Sorry, something went wrong.
Co-authored-by: Stan Ulbrych <stan@python.org> Co-authored-by: Serhiy Storchaka <storchaka@gmail.com>
I left it for a separate PR. I have similar function in a different branch. But it accepts also the name of the registered error handler ('strict', 'ignore', 'replace, 'backslashreplace', etc) and the callback has different interface. It needs a separate discussion. |
Sorry, something went wrong.
There was a problem hiding this comment.
LGTM
Sorry, something went wrong.
Ok, that makes sense. |
Sorry, something went wrong.
…8qqIM.rst Co-authored-by: Victor Stinner <vstinner@python.org>
| Back | FazBrowse Home | New Git URL |
Uh oh!
There was an error while loading. Please reload this page.
Sorry, something went wrong.
Uh oh!
There was an error while loading. Please reload this page.