Dentro de los archivos KV, la sintaxis "{}".format(object.property)
se vincula correctamente, pero la sintaxis f"{object.property}"
no.
En el siguiente ejemplo:
format()
,f-string
.from kivy.app import App
from kivy.lang import Builder
kv = r"""
BoxLayout:
orientation: 'vertical'
TextInput:
id: text_input
text: "foo"
Label:
text: text_input.text
Label:
text: "text input value using `format()`: {}".format(text_input.text)
Label:
text: f"text input value using f-string: {text_input.text}"
"""
class SandboxApp(App):
def build(self):
return Builder.load_string(kv)
def main():
SandboxApp().run()
if __name__ == '__main__':
main()
Eché un vistazo rápido y python ast tiene un nuevo nodo para f-strings (llamado FormattedValue
). Esto significa que deberíamos poder implementar usando el analizador ast.
Si tengo tiempo en el futuro, planeo actualizar la rama del compilador kv para eliminar la sintaxis de python y, en su lugar, seguir solo con la sintaxis kv tradicional e intentar introducirla en kivy. Entonces debería ser fácil agregar soporte para esto en el último paso de análisis.
¿Duplicado de #6108?
cerrando como duplicado de #6108
Comentario más útil
Eché un vistazo rápido y python ast tiene un nuevo nodo para f-strings (llamado
FormattedValue
). Esto significa que deberíamos poder implementar usando el analizador ast.Si tengo tiempo en el futuro, planeo actualizar la rama del compilador kv para eliminar la sintaxis de python y, en su lugar, seguir solo con la sintaxis kv tradicional e intentar introducirla en kivy. Entonces debería ser fácil agregar soporte para esto en el último paso de análisis.