tessl install tessl/pypi-tox-pyenv@1.1.0tox plugin that makes tox use `pyenv which` to find python executables
Agent Success
Agent success rate when using this tile
98%
Improvement
Agent success rate improvement when using this tile compared to baseline
1.03x
Baseline
Agent success rate without this tile
95%
{
"context": "This criteria evaluates how well the engineer designs and implements a custom exception hierarchy in Python, specifically assessing proper inheritance structure, exception usage patterns, and error context preservation as demonstrated in the tox-pyenv package.",
"type": "weighted_checklist",
"checklist": [
{
"name": "Base Exception Class",
"description": "Defines a custom base exception class that inherits from Python's Exception class to serve as the parent for all module-specific exceptions",
"max_score": 15
},
{
"name": "Executable Not Found Exception",
"description": "Implements a specific exception class that inherits from the base exception and is raised when an executable cannot be found on the system (typically catching OSError or similar)",
"max_score": 20
},
{
"name": "Execution Failed Exception",
"description": "Implements a specific exception class that inherits from the base exception and is raised when a command executes but returns a non-zero exit code",
"max_score": 20
},
{
"name": "Exception Hierarchy Structure",
"description": "All custom exceptions properly inherit from the base exception class, creating a clear inheritance hierarchy where isinstance checks work correctly",
"max_score": 15
},
{
"name": "Error Context Preservation",
"description": "Exceptions capture and preserve error context information (such as stderr output, exit codes, or error messages) either through exception arguments, custom attributes, or the exception message itself",
"max_score": 20
},
{
"name": "Appropriate Exception Raising",
"description": "The run_command function correctly identifies different failure scenarios (missing executable vs execution failure) and raises the appropriate custom exception type for each case using subprocess module or similar",
"max_score": 10
}
]
}