8000 Support = for self documenting values in format strings · lezer-parser/python@b87c3d8 · GitHub
[go: up one dir, main page]

Skip to content

Commit b87c3d8

Browse files
committed
Support = for self documenting values in format strings
FIX: Support the `=` flag to values in format strings. Closes #21
1 parent cb6d6cc commit b87c3d8

File tree

2 files changed

+12
-2
lines changed

2 files changed

+12
-2
lines changed

src/python.grammar

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -273,7 +273,13 @@ skw<term> { @extend[@name={term}]<identifier, term> }
273273
}
274274
}
275275

276-
FormatReplacement[isolate]<start> { start (YieldExpression | commaSep<"*"? test>) FormatConversion? (formatStringSpec | "}") }
276+
FormatReplacement[isolate]<start> {
277+
start
278+
(YieldExpression | commaSep<"*"? test>)
279+
FormatSelfDoc {"="}?
280+
FormatConversion?
281+
(formatStringSpec | "}")
282+
}
277283

278284
@context trackIndent from "./tokens.js"
279285

test/expression.txt

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -51,6 +51,7 @@ f"""big long format
5151
{string :foo}"""
5252
f'''well {{ \x }} {2 :{bar}}'''
5353
f"""one"{two}"three"""
54+
f'{user=!s} {delta.days=:,d}'
5455

5556
==>
5657

@@ -59,7 +60,10 @@ Script(ExpressionStatement(FormatString(FormatReplacement(Number),
5960
ExpressionStatement(FormatString(FormatReplacement(VariableName, FormatConversion))),
6061
ExpressionStatement(FormatString(FormatReplacement(VariableName, FormatSpec))),
6162
ExpressionStatement(FormatString(FormatReplacement(Number, FormatSpec(FormatReplacement(VariableName))))),
62-
ExpressionStatement(FormatString(FormatReplacement(VariableName))))
63+
ExpressionStatement(FormatString(FormatReplacement(VariableName))),
64+
ExpressionStatement(FormatString(
65+
FormatReplacement(VariableName,FormatSelfDoc,FormatConversion),
66+
FormatReplacement(MemberExpression(VariableName,PropertyName),FormatSelfDoc,FormatSpec))))
6367

6468
# Lambda
6569

0 commit comments

Comments
 (0)
0