[Python-Dev] ast changes for "debug" f-strings
Eric V. Smith
eric at trueblade.com
Mon May 20 13:20:12 EDT 2019
On 5/20/2019 10:32 AM, Batuhan Taskaya wrote:
> > This strictly speaking isn't necessary. I could have added another
> Constant node for "x=" and left FormattedValue alone. I didn't for three
> reasons: it was expedient; it didn't require a lot of surgery to
> f-string parsing, which the extra Constant node would require; and it
> allowed the Python/ast_unparse.c code to produce a string that was more
> consistent with input string.
>
> Agreed.
>
> > Does anyone care that f'{x=}' would become f'x={x!r}' if I removed
> expr_text from the FormattedValue node?
>
> Yes, when i was implementing f-string debugging support to Berker's
> astor project
> the roundtrip tests i wrote is failing because of it adds an extra `!r`
> to end. Then
> i realized you added a new field (expr_text) for that.
>
> > I'm not sure how much we care about all of this, but let me know if you
> have a strong feeling about it.
>
> I don't think we should complicate this. The current version is very
> simple and understandable.
I think the salient question is: does the lack of expr_text make
anything more difficult for anyone? As Serhiy said in the other email,
lots of things are lost while round-tripping, this would just be another
one. Anyone really interested in high-fidelity round trips already can't
use the ast module to unparse from.
Eric
More information about the Python-Dev
mailing list