Kivy: Propiedades dentro de f-string no vinculadas

Creado en 11 may. 2019  ·  3Comentarios  ·  Fuente: kivy/kivy

Versiones

  • Pitón: 3.7.3
  • Sistema operativo: ArchLinux (núcleo 5.0.11)
  • Kivy: 1.10.1
  • Método de instalación de Kivy: Poesía (pip)

Descripción

Dentro de los archivos KV, la sintaxis "{}".format(object.property) se vincula correctamente, pero la sintaxis f"{object.property}" no.

En el siguiente ejemplo:

  • la primera etiqueta es solo una encuadernación sin procesar,
  • la segunda etiqueta usa la función format() ,
  • la tercera etiqueta usa f-string .

Código y registros

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()

image

Feature

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.

Todos 3 comentarios

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

¿Fue útil esta página
0 / 5 - 0 calificaciones