| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192 |
- import json
- import logging
- from collections import namedtuple
- # For compatibility under py2 to consider unicode as str
- from typing import Optional
- from ray.tune.error import TuneError
- from ray.tune.execution.placement_groups import (
- PlacementGroupFactory,
- resource_dict_to_pg_factory,
- )
- from ray.tune.utils.resource_updater import _Resources
- from ray.util.annotations import Deprecated, DeveloperAPI
- logger = logging.getLogger(__name__)
- @Deprecated
- class Resources(
- namedtuple(
- "Resources",
- [
- "cpu",
- "gpu",
- "memory",
- "object_store_memory",
- "extra_cpu",
- "extra_gpu",
- "extra_memory",
- "extra_object_store_memory",
- "custom_resources",
- "extra_custom_resources",
- "has_placement_group",
- ],
- )
- ):
- __slots__ = ()
- def __new__(
- cls,
- cpu: float,
- gpu: float,
- memory: float = 0,
- object_store_memory: float = 0.0,
- extra_cpu: float = 0.0,
- extra_gpu: float = 0.0,
- extra_memory: float = 0.0,
- extra_object_store_memory: float = 0.0,
- custom_resources: Optional[dict] = None,
- extra_custom_resources: Optional[dict] = None,
- has_placement_group: bool = False,
- ):
- raise DeprecationWarning(
- "tune.Resources is depracted. Use tune.PlacementGroupFactory instead."
- )
- @DeveloperAPI
- def json_to_resources(data: Optional[str]) -> Optional[PlacementGroupFactory]:
- if data is None or data == "null":
- return None
- if isinstance(data, str):
- data = json.loads(data)
- for k in data:
- if k in ["driver_cpu_limit", "driver_gpu_limit"]:
- raise TuneError(
- "The field `{}` is no longer supported. Use `extra_cpu` "
- "or `extra_gpu` instead.".format(k)
- )
- if k not in _Resources._fields:
- raise ValueError(
- "Unknown resource field {}, must be one of {}".format(
- k, Resources._fields
- )
- )
- resource_dict_to_pg_factory(
- dict(
- cpu=data.get("cpu", 1),
- gpu=data.get("gpu", 0),
- memory=data.get("memory", 0),
- custom_resources=data.get("custom_resources"),
- )
- )
- @Deprecated
- def resources_to_json(*args, **kwargs):
- raise DeprecationWarning(
- "tune.Resources is depracted. Use tune.PlacementGroupFactory instead."
- )
|