Modern Text User Interface framework for building cross-platform terminal and web applications with Python
Overall
score
93%
{
"context": "This criteria evaluates how well the engineer uses Textual's content and text processing capabilities to build a text formatter widget. The focus is on proper usage of the Content class for markup parsing, text wrapping/folding, alignment, and overflow handling features.",
"type": "weighted_checklist",
"checklist": [
{
"name": "Content class usage",
"description": "Uses the Content class from textual.content (or Text from rich.text) to handle text content. Should create Content/Text objects with appropriate parameters for markup parsing.",
"max_score": 25
},
{
"name": "Markup parsing",
"description": "Correctly implements markup handling using Content.from_markup() or Text.from_markup() when markup=True, and uses plain text creation when markup=False.",
"max_score": 15
},
{
"name": "Text wrapping",
"description": "Implements text wrapping functionality using Content.wrap() or similar methods to fit text within the widget's width. Should handle the fold overflow mode by wrapping text at word boundaries.",
"max_score": 20
},
{
"name": "Text alignment",
"description": "Implements text alignment (left, center, right) using Content's alignment capabilities or Strip's text_align() method. Should support all three alignment modes specified in the requirements.",
"max_score": 15
},
{
"name": "Overflow handling",
"description": "Implements both overflow modes: ellipsis (using overflow parameter or similar) to truncate with '...' and fold mode for wrapping. Should correctly apply the specified overflow mode.",
"max_score": 15
},
{
"name": "Widget render method",
"description": "Properly overrides the render() method to return a renderable (Content, Text, or similar). The method should return the formatted content object with all styling and processing applied.",
"max_score": 10
}
]
}Install with Tessl CLI
npx tessl i tessl/pypi-textualevals
scenario-1
scenario-2
scenario-3
scenario-4
scenario-5
scenario-6
scenario-7
scenario-8
scenario-9
scenario-10