§
    dŠtj.  ã                  óØ   — d dl mZ 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  G d„ de¦  «        Z ed	d	¬
¦  «         G d„ d¦  «        ¦   «         Zej        dd„¦   «         Zdd„ZdS )é    )ÚannotationsN)ÚCallable)Ú	dataclass)Úload_nvidia_dynamic_lib)Ú
IS_WINDOWSc                  ó   — e Zd ZdZdS )ÚQueryDriverCudaVersionErrorzURaised when ``query_driver_cuda_version()`` cannot determine the CUDA driver version.N)Ú__name__Ú
__module__Ú__qualname__Ú__doc__© ó    ú`/var/www/html/CA-Chatbot/venv/lib/python3.11/site-packages/cuda/pathfinder/_utils/driver_info.pyr	   r	      s   € € € € € Ø_Ð_Ð_Ð_r   r	   T)ÚfrozenÚslotsc                  ó2   — e Zd ZU dZded<   ded<   ded<   dS )ÚDriverCudaVersiona¤  
    CUDA-facing driver version reported by ``cuDriverGetVersion()``.

    The name ``DriverCudaVersion`` is intentionally specific: this dataclass
    models the version shown as ``CUDA Version`` in ``nvidia-smi``, not the
    graphics driver release shown as ``Driver Version``. More specifically,
    it reflects the CUDA user-mode driver (UMD) interface version reported by
    ``cuDriverGetVersion()``, not the kernel-mode driver (KMD) package
    version.

    Example ``nvidia-smi`` output::

        +---------------------------------------------------------------------+
        | NVIDIA-SMI 595.58.03  Driver Version: 595.58.03  CUDA Version: 13.2 |
        +---------------------------------------------------------------------+

    For the example above, ``DriverCudaVersion(encoded=13020, major=13,
    minor=2)`` corresponds to ``CUDA Version: 13.2``. It does not correspond
    to ``Driver Version: 595.58.03``.
    ÚintÚencodedÚmajorÚminorN)r
   r   r   r   Ú__annotations__r   r   r   r   r      s7   € € € € € € ðð ð* €L€L�LØ€J€J�JØ€J€J�J€J€Jr   r   Úreturnc                 óš   — 	 t          ¦   «         } t          | | dz  | dz  dz  ¬¦  «        S # t          $ r}t          d¦  «        |‚d}~ww xY w)zFReturn the CUDA driver version parsed into its major/minor components.iè  é
   )r   r   r   z(Failed to query the CUDA driver version.N)Ú_query_driver_cuda_version_intr   Ú	Exceptionr	   )r   Úexcs     r   Úquery_driver_cuda_versionr    1   sw   € ð_Ý0Ñ2Ô2ˆÝ ØØ˜T‘/Ø˜T‘> bÑ(ð
ñ 
ô 
ð 	
øõ
 ð _ð _ð _Ý)Ð*TÑUÔUÐ[^Ð^øøøøð_øøøs   ‚(+ «
A
µAÁA
r   c                 ó˜  — t          d¦  «        } t          rt          j        }nt          j        } || j        ¦  «        }|j        }t          j        t          j        ¦  «        g|_	        t          j        |_
        t          j        ¦   «         } |t          j        |¦  «        ¦  «        }|dk    rt          d|› d�¦  «        ‚|j        S )zEReturn the encoded CUDA driver version from ``cuDriverGetVersion()``.Úcudar   zEFailed to query CUDA driver version via cuDriverGetVersion() (status=z).)Ú_load_nvidia_dynamic_libr   ÚctypesÚWinDLLÚCDLLÚabs_pathÚcuDriverGetVersionÚPOINTERÚc_intÚargtypesÚrestypeÚbyrefÚRuntimeErrorÚvalue)Úloaded_cudaÚ
loader_clsÚ
driver_libÚcu_driver_get_versionÚversionÚstatuss         r   r   r   ?   s¸   € å*¨6Ñ2Ô2€KÝð !õ 4:´=ˆ
ˆ
å”[ˆ
Ø�˜KÔ0Ñ1Ô1€JØ&Ô9ÐÝ&,¤nµV´\Ñ&BÔ&BÐ%CÐÔ"Ý$*¤LÐÔ!ÝŒl‰nŒn€GØ"Ð"¥6¤<°Ñ#8Ô#8Ñ9Ô9€FØ�‚{€{ÝÐmÐciÐmÐmÐmÑnÔnÐnØŒ=Ðr   )r   r   )r   r   )Ú
__future__r   r$   Ú	functoolsÚcollections.abcr   Údataclassesr   Ú5cuda.pathfinder._dynamic_libs.load_nvidia_dynamic_libr   r#   Ú%cuda.pathfinder._utils.platform_awarer   r.   r	   r   Úcacher    r   r   r   r   ú<module>r=      s>  ðð #Ð "Ð "Ð "Ð "Ð "à €€€Ø Ð Ð Ð Ø $Ð $Ð $Ð $Ð $Ð $Ø !Ð !Ð !Ð !Ð !Ð !ðð ð ð ð ð ð =Ð <Ð <Ð <Ð <Ð <ð`ð `ð `ð `ð ` ,ñ `ô `ð `ð €�$˜dÐ#Ñ#Ô#ðð ð ð ð ñ ô ñ $Ô#ðð6 „ð
_ð 
_ð 
_ñ „ð
_ðð ð ð ð ð r   