refex.python.syntactic_template
¶
Syntax-aware Python substitution templates, as described in Python Patterns and Templates.
The core problem with lexical or textual substitution of Python code, as with
e.g. refex.formatting.ShTemplate
, is that the substitution can be
unintentionally wrong. For example:
If you replace f($x)
with $x
, what if $x
contains a newline?
If you replace $a
with $a * 2
, what if $a
is 1 + 2
?
The template classes here aim to make replacements that match the intended syntax – i.e. the structure of the template – and will parenthesize as necessary.
-
class
PythonExprTemplate
(template: str)¶ A template for a Python expression.
-
class
PythonStmtTemplate
(template: str)¶ A template for a single Python statement.