CtrlK
BlogDocsLog inGet started
Tessl Logo

tessl/pypi-asciimatics

A cross-platform package to replace curses (mouse/keyboard input & text colours/positioning) and create ASCII animations

81

1.32x
Overview
Eval results
Files

rubric.jsonevals/scenario-5/

{
  "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-asciimatics

tile.json