§
    �Štj7  ã            	       óB   — d dl mZ d dlZd dlmZ 	 d
dedededefd	„ZdS )é    )ÚAnyN)Ú_get_device_indexFÚdeviceÚoptionalÚ	allow_cpuÚreturnc                 óÖ  — t          | t          ¦  «        r| S t          | t          ¦  «        rt          j        | ¦  «        } t          | t          j        ¦  «        r;|r| j        dvrt          d| › �¦  «        ‚n| j        dk    rt          d| › �¦  «        ‚t          j                             ¦   «         s&t          | t          j	        j        ¦  «        r| j
        S t          | ||¦  «        S )a°  Get the device index from :attr:`device`, which can be a torch.device
    object, a Python integer, or ``None``.

    If :attr:`device` is a torch.device object, returns the device index if it
    is a XPU device. Note that for a XPU device without a specified index,
    i.e., ``torch.device('xpu')``, this will return the current default XPU
    device if :attr:`optional` is ``True``. If :attr:`allow_cpu` is ``True``,
    CPU devices will be accepted and ``-1`` will be returned in this case.

    If :attr:`device` is a Python integer, it is returned as is.

    If :attr:`device` is ``None``, this will return the current default XPU
    device if :attr:`optional` is ``True``.
    )ÚxpuÚcpuz'Expected a xpu or cpu device, but got: r
   z Expected a xpu device, but got: )Ú
isinstanceÚintÚstrÚtorchr   ÚtypeÚ
ValueErrorÚjitÚis_scriptingr
   ÚidxÚ_torch_get_device_index)r   r   r   s      úN/var/www/html/CA-Chatbot/venv/lib/python3.11/site-packages/torch/xpu/_utils.pyr   r   	   sî   € õ" �&�#ÑÔð ØˆÝ�&�#ÑÔð &Ý”˜fÑ%Ô%ˆÝ�&�%œ,Ñ'Ô'ð JØð 	JØŒ{ .Ð0Ð0Ý Ð!SÈ6Ð!SÐ!SÑTÔTÐTð 1àŒ[˜EÒ!Ð!ÝÐHÀÐHÐHÑIÔIÐIÝŒ9×!Ò!Ñ#Ô#ð Ý�f�eœiÔ.Ñ/Ô/ð 	Ø”:ÐÝ" 6¨8°YÑ?Ô?Ð?ó    )FF)Útypingr   r   Útorch._utilsr   r   Úboolr   © r   r   ú<module>r      s‰   ðØ Ð Ð Ð Ð Ð à €€€ð FÐ EÐ EÐ EÐ EÐ Eð <Að@ð @Øð@Øð@Ø48ð@àð@ð @ð @ð @ð @ð @r   