tessl install tessl/pypi-textual@6.1.0Modern Text User Interface framework for building cross-platform terminal and web applications with Python
Agent Success
Agent success rate when using this tile
93%
Improvement
Agent success rate improvement when using this tile compared to baseline
1.18x
Baseline
Agent success rate without this tile
79%
{
"context": "This evaluation assesses how well the engineer uses Textual's event system and message passing capabilities to implement inter-widget communication, including custom message definitions, event handlers, event bubbling control, and mouse interaction events.",
"type": "weighted_checklist",
"checklist": [
{
"name": "Custom Message Classes",
"description": "Defines at least two custom message classes that inherit from textual.message.Message for inter-widget communication (e.g., one for button clicks, one for hover events).",
"max_score": 20
},
{
"name": "Message Posting",
"description": "Uses self.post_message() or similar methods to send custom messages from widgets when appropriate events occur (button click, mouse enter/leave).",
"max_score": 15
},
{
"name": "Event Handler Methods",
"description": "Implements event handler methods using the on_<event> naming convention (e.g., on_button_pressed, on_enter, on_leave) or uses the @on decorator to handle both built-in and custom messages.",
"max_score": 20
},
{
"name": "Event Bubbling",
"description": "Demonstrates understanding of event bubbling by allowing custom messages to propagate from child widgets to parent widgets or the app level, enabling multiple widgets to respond to the same message.",
"max_score": 15
},
{
"name": "Stop Propagation",
"description": "Uses message.stop() or event.stop() in the LogPanel key handler to prevent the 'c' key event from bubbling up to the app level, demonstrating control over event propagation.",
"max_score": 15
},
{
"name": "Mouse Events",
"description": "Handles Mouse.Enter and Mouse.Leave events (or uses on_enter/on_leave methods) in the ControlPanel widget to detect hover interactions and post appropriate custom messages.",
"max_score": 10
},
{
"name": "Key Bindings",
"description": "Implements key bindings using the BINDINGS class variable or action methods, including the 'c' key for clearing logs at the widget level and 'q' key for quitting at the app level.",
"max_score": 5
}
]
}