A cross-platform package to replace curses (mouse/keyboard input & text colours/positioning) and create ASCII animations
81
{
"context": "This criteria evaluates how well an engineer uses asciimatics' Text widget and form system to build a validated registration form. It focuses on proper usage of Text widget parameters, Form/Layout structure, validation mechanisms, and event handling.",
"type": "weighted_checklist",
"checklist": [
{
"name": "Text widget creation",
"description": "Uses the Text widget class from asciimatics.widgets to create all four input fields (username, email, password, confirm password)",
"max_score": 20
},
{
"name": "Label parameters",
"description": "Properly uses the 'label' parameter when creating Text widgets to display field labels",
"max_score": 10
},
{
"name": "Widget names",
"description": "Uses the 'name' parameter on Text widgets to uniquely identify each field for data retrieval",
"max_score": 10
},
{
"name": "Regex validation",
"description": "Uses the 'validator' parameter on Text widgets with appropriate regex patterns for username and email validation",
"max_score": 15
},
{
"name": "Password hiding",
"description": "Uses the 'hide_char' parameter on password Text widgets to hide password input (e.g., hide_char='*')",
"max_score": 20
},
{
"name": "Frame initialization",
"description": "Creates a Frame subclass and properly initializes it with super().__init__() passing screen and dimensions",
"max_score": 5
},
{
"name": "Layout usage",
"description": "Creates and adds Layout instances to the Frame using add_layout() method",
"max_score": 5
},
{
"name": "Widget placement",
"description": "Adds Text widgets and Buttons to layouts using the layout.add_widget() method",
"max_score": 5
},
{
"name": "InvalidFields exception",
"description": "Uses InvalidFields exception from asciimatics.exceptions to handle validation failures",
"max_score": 5
},
{
"name": "Data access",
"description": "Accesses form data using the Frame's 'data' property to retrieve field values for validation",
"max_score": 5
}
]
}Install with Tessl CLI
npx tessl i tessl/pypi-asciimaticsdocs
evals
scenario-1
scenario-2
scenario-3
scenario-4
scenario-5
scenario-6
scenario-7
scenario-8
scenario-9
scenario-10