Failure to parse f-strings when field has `=` at the end
Ark-kun opened this issue · 0 comments
Ark-kun commented
Fails when f-string field has =
at the end:
f"aaaa {sys.version_info=} bbb"
File "pasta/base/annotate.py", line 1537, in visit_FormattedValue
self.attr(
File "pasta/base/annotate.py", line 1864, in attr
attr_parts.append(self.token(attr_val))
^^^^^^^^^^^^^^^^^^^^
File "pasta/base/annotate.py", line 1774, in token
raise AnnotationError(
pasta.base.annotate.AnnotationError: Expected '!' but found '='
line 1: sys_version=} is inconsistent with {sys.version_info=}. "
https://docs.python.org/3/reference/lexical_analysis.html#formatted-string-literals
When the equal sign '=' is provided, the output will have the expression text, the '=' and the evaluated value. Spaces after the opening brace '{', within the expression and after the '=' are all retained in the output. By default, the '=' causes the repr() of the expression to be provided, unless there is a format specified. When a format is specified it defaults to the str() of the expression unless a conversion '!r' is declared.
Added in version 3.8: The equal sign '='.