or run

tessl search
Log in

Version

Workspace
tessl
Visibility
Public
Created
Last updated
Describes
pypipkg:pypi/textual@6.1.x
tile.json

tessl/pypi-textual

tessl install tessl/pypi-textual@6.1.0

Modern 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%

rubric.jsonevals/scenario-5/

{
  "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
    }
  ]
}