or run

tessl search
Log in

Version

Workspace
tessl
Visibility
Public
Created
Last updated
Describes
pypipkg:pypi/rodi@2.0.x
tile.json

tessl/pypi-rodi

tessl install tessl/pypi-rodi@2.0.0

Implementation of dependency injection for Python 3

Agent Success

Agent success rate when using this tile

92%

Improvement

Agent success rate improvement when using this tile compared to baseline

1.06x

Baseline

Agent success rate without this tile

87%

rubric.jsonevals/scenario-10/

{
  "context": "This criteria evaluates how well the engineer uses rodi's intelligent attribute filtering capability, which automatically ignores ClassVar annotations and attributes with default values during dependency injection. The focus is on correctly using class annotations, ClassVar, and initialized attributes to separate class-level configuration from injected dependencies.",
  "type": "weighted_checklist",
  "checklist": [
    {
      "name": "Container Setup",
      "description": "Creates a Container instance and registers all service classes (Logger, ConfigService, DatabaseManager, RequestHandler) using appropriate registration methods like register() or add_singleton()",
      "max_score": 15
    },
    {
      "name": "ClassVar Usage",
      "description": "Uses typing.ClassVar annotation correctly in ConfigService.app_config and DatabaseManager.max_pool_size to mark class-level variables that should not be injected",
      "max_score": 20
    },
    {
      "name": "Initialized Attributes",
      "description": "Defines attributes with default values (ConfigService.default_timeout, ConfigService.max_retries, DatabaseManager.connection_timeout, RequestHandler.rate_limit, RequestHandler.time_window) that should not be overridden by the container",
      "max_score": 20
    },
    {
      "name": "Class Annotations",
      "description": "Uses class-level type annotations (not in __init__) for dependencies that should be injected: ConfigService.logger, DatabaseManager.config, DatabaseManager.logger, and RequestHandler.db",
      "max_score": 20
    },
    {
      "name": "Service Resolution",
      "description": "Uses the container's build_provider() or resolve() methods to obtain service instances, demonstrating that rodi automatically injects only the annotated dependencies while preserving ClassVar and initialized attributes",
      "max_score": 15
    },
    {
      "name": "Verification",
      "description": "Implementation correctly demonstrates that ClassVar and initialized attributes retain their default values while annotated dependencies are properly injected, showing understanding of rodi's intelligent filtering",
      "max_score": 10
    }
  ]
}