Declarative user interfaces for Python