docstr: Args:
      runnable_class : The runnable class to be run.
      resource_request : The resource request of the runnable.
      worker_index : The index of the worker, start from 0.
docstr_tok: ["Args",":","runnable_class",":","The","runnable","class","to","be","run",".","resource_request",":","The","resource","request","of","the","runnable",".","worker_index",":","The","index","of","the","worker",",","start","from","0","."]
code: def get_worker_env(
      cls,
      runnable_class: t.Type[Runnable],
      resource_request: dict[str, t.Any] | None,
      workers_per_resource: int | float,
      worker_index: int,
  ) -> dict[str, t.Any]:
      """
      Args:
          runnable_class : The runnable class to be run.
          resource_request : The resource request of the runnable.
          worker_index : The index of the worker, start from 0.
      """
      ...
  
file_path: BentoML/src/bentoml/_internal/runner/strategy.py
imports: from __future__ import annotations
  import abc
  import logging
  import math
  import typing
  from ..resource import get_resource
  from ..resource import system_resources
  from .runnable import Runnable
label_desc: Use image node_id 2 for calling the Strategy obj's underlying member method code with example usage: obj.get_worker_env(cls, runnable_class, resource_request, workers_per_resource, worker_index) without return types