Allow < and > in string eval

This commit is contained in:
JonnyWong16 2021-05-24 13:22:19 -07:00
parent d9f702e7f2
commit 006cfd1ffa
No known key found for this signature in database
GPG key ID: B1F1F9807184697A

View file

@ -1896,18 +1896,21 @@ class CustomFormatter(Formatter):
suffix = None suffix = None
if real_format_string != format_string[1:-1]: if real_format_string != format_string[1:-1]:
prefix_split = real_format_string.split('<') matches = re.findall(r"`.*?`", real_format_string)
temp_format_string = re.sub(r"`.*`", "{}", real_format_string)
prefix_split = temp_format_string.split('<')
if len(prefix_split) == 2: if len(prefix_split) == 2:
prefix = prefix_split[0].replace('\\n', '\n') prefix = prefix_split[0].replace('\\n', '\n')
real_format_string = prefix_split[1] temp_format_string = prefix_split[1]
suffix_split = real_format_string.split('>') suffix_split = temp_format_string.split('>')
if len(suffix_split) == 2: if len(suffix_split) == 2:
suffix = suffix_split[1].replace('\\n', '\n') suffix = suffix_split[1].replace('\\n', '\n')
real_format_string = suffix_split[0] temp_format_string = suffix_split[0]
if prefix or suffix: if prefix or suffix:
real_format_string = '{' + real_format_string + '}' real_format_string = '{' + temp_format_string.format(*matches) + '}'
_, field_name, format_spec, conversion, _, _ = next(self.parse(real_format_string)) _, field_name, format_spec, conversion, _, _ = next(self.parse(real_format_string))
yield literal_text, field_name, format_spec, conversion, prefix, suffix yield literal_text, field_name, format_spec, conversion, prefix, suffix