o
    $i	                     @   s   d dl Z d dlZd dlmZ d dlmZ d dlmZ d dlm	Z	m
Z
 d dlmZ d dlmZmZ eeZeG dd	 d	ed	g d
Zedee dee	 fddZedd ZdS )    N)
namedtuple)Optional)	TuneError)PlacementGroupFactoryresource_dict_to_pg_factory)
_Resources)
DeprecatedDeveloperAPIc                   @   sb   e Zd ZdZ									ddededed	ed
ededededee dee defddZdS )	Resources r           NFcpugpumemoryobject_store_memory	extra_cpu	extra_gpuextra_memoryextra_object_store_memorycustom_resourcesextra_custom_resourceshas_placement_groupc                 C      t dNzDtune.Resources is depracted. Use tune.PlacementGroupFactory instead.DeprecationWarning)clsr   r   r   r   r   r   r   r   r   r   r   r   r   O/home/ubuntu/veenaModal/venv/lib/python3.10/site-packages/ray/tune/resources.py__new__(   s   zResources.__new__)	r   r   r   r   r   r   NNF)	__name__
__module____qualname__	__slots__floatr   dictboolr   r   r   r   r   r
      sD    	
r
   )r   r   r   r   r   r   r   r   r   r   r   datareturnc                 C   s   | d u s| dkr
d S t | trt| } | D ]}|dv r#td||tjvr1td|t	jqt
t| dd| dd| d	d| d
d d S )Nnull)driver_cpu_limitdriver_gpu_limitzNThe field `{}` is no longer supported. Use `extra_cpu` or `extra_gpu` instead.z,Unknown resource field {}, must be one of {}r      r   r   r   r   )r   r   r   r   )
isinstancestrjsonloadsr   formatr   _fields
ValueErrorr
   r   r$   get)r&   kr   r   r   json_to_resources;   s2   





r5   c                  O   r   r   r   )argskwargsr   r   r   resources_to_jsonX   s   r8   )r.   loggingcollectionsr   typingr   ray.tune.errorr   #ray.tune.execution.placement_groupsr   r   ray.tune.utils.resource_updaterr   ray.util.annotationsr   r	   	getLoggerr   loggerr
   r-   r5   r8   r   r   r   r   <module>   s(    

'