def _fstring_FormattedValue(self, node, write): write("{") expr = StringIO() unparser = type(self)( py_ver_consistent=self._py_ver_consistent, _avoid_backslashes=True, ) unparser.set_precedence(pnext(_Precedence.TEST), node.value) unparser.visit(node.value, expr) expr = expr.getvalue().rstrip("\n") if expr.startswith("{"): write(" ") # Separate pair of opening brackets as "{ {" if "\\" in expr: raise ValueError("Unable to avoid backslash in f-string expression part") write(expr) if node.conversion != -1: conversion = chr(node.conversion) assert conversion in "sra" write("!{conversion}".format(conversion=conversion)) if node.format_spec: write(":") meth = getattr(self, "_fstring_" + type(node.format_spec).__name__) meth(node.format_spec, write) write("}")
def _fstring_FormattedValue(self, t, write): write("{") expr = StringIO() Unparser(t.value, expr) expr = expr.getvalue().rstrip("\n") if expr.startswith("{"): write(" ") # Separate pair of opening brackets as "{ {" write(expr) if t.conversion != -1: conversion = chr(t.conversion) assert conversion in "sra" write("!{conversion}".format(conversion=conversion)) if t.format_spec: write(":") meth = getattr(self, "_fstring_" + type(t.format_spec).__name__) meth(t.format_spec, write) write("}")