code: def expand_requested_device_ids(requested_device_ids: List[int]) -> List[int]:
      
      num_gpus_available = get_num_gpus()
      if "CUDA_VISIBLE_DEVICES" in os.environ:
          logger.warning("Sockeye currently does not respect CUDA_VISIBLE_DEVICE settings when locking GPU devices.")
      return _expand_requested_device_ids(requested_device_ids, num_gpus_available)
docs: Transform a list of device id requests to concrete device ids. For example on a host with 8 GPUs when requesting
      [-4, 3, 5] you will get [0, 1, 2, 3, 4, 5]. Namely you will get device 3 and 5, as well as 3 other available
      device ids (starting to fill up from low to high device ids).
  
      :param requested_device_ids: The requested device ids, each number is either negative indicating the number of GPUs
       that will be allocated, or positive indicating we want to acquire a specific device id.
      :return: A list of device ids.