CtrlK
BlogDocsLog inGet started
Tessl Logo

tessl/pypi-py-cord

A modern, async-ready Python API wrapper for Discord with comprehensive bot development features

Overall
score

93%

Overview
Eval results
Files

rubric.jsonevals/scenario-7/

{
  "context": "This criteria evaluates how well the engineer uses py-cord's error handling and exponential backoff capabilities to build a robust command error handler. The focus is on proper exception handling, retry logic implementation, and appropriate use of py-cord's error classes and retry mechanisms.",
  "type": "weighted_checklist",
  "checklist": [
    {
      "name": "HTTPException Handling",
      "description": "Uses discord.HTTPException or its subclasses (e.g., Forbidden, NotFound) to catch HTTP errors from the Discord API and provides appropriate user feedback through ctx.send() or similar methods.",
      "max_score": 20
    },
    {
      "name": "RateLimitError Handling",
      "description": "Specifically catches and handles discord.RateLimitError (or uses retry_after attribute from HTTPException) to implement retry logic when rate limits are encountered.",
      "max_score": 15
    },
    {
      "name": "Command Error Types",
      "description": "Handles command-specific errors from discord.ext.commands such as BadArgument, MissingPermissions, CommandNotFound, or similar command errors with appropriate user messages.",
      "max_score": 15
    },
    {
      "name": "Exponential Backoff",
      "description": "Implements exponential backoff for retries by doubling the delay after each attempt (1s, 2s, 4s, 8s, 16s) using asyncio.sleep() with calculated delays.",
      "max_score": 20
    },
    {
      "name": "Retry Limit",
      "description": "Enforces a maximum retry limit (5 attempts as specified) and stops retrying after reaching this limit, notifying the user when maximum retries are exceeded.",
      "max_score": 15
    },
    {
      "name": "Context Usage",
      "description": "Uses commands.Context (ctx) to send error messages to the appropriate channel via ctx.send(), ctx.reply(), or similar context methods.",
      "max_score": 10
    },
    {
      "name": "Error Handler Setup",
      "description": "Properly registers the error handler with the bot using @bot.event decorator for on_command_error or bot.add_listener(), or integrates with the bot's error handling system.",
      "max_score": 5
    }
  ]
}

Install with Tessl CLI

npx tessl i tessl/pypi-py-cord

tile.json