
    3Ki{
              	          S SK r S SKr\ R                  S\4S j5       r\ R                  S\4S j5       r\ R                  SS\\\\4   S\\\\4   4S jj5       r\ R                  S\4S j5       r	\ R                  S\4S j5       r
\ R                  S\4S	 j5       r\ R                  S\4S
 j5       r\ R                  S\4S j5       r\ R                  S\4S j5       rg)    Nreturnc                  .     SSK n g! [         a     gf = f)zCheck if JAX is installed.r   NTF)jaxImportError)r   s    U/var/www/html/dynamic-report/venv/lib/python3.13/site-packages/torch/utils/_pallas.pyhas_jax_packager      s     s    
c                  R    [        5       (       d  g SSKJn   g! [         a     gf = f)z0Check if Pallas (JAX experimental) is available.Fr   )pallasT)r   jax.experimentalr
   r   )pls    r   has_pallas_packager      s1     	
  s    
&&fallbackc                      SSK nUR                  R                  S5      nS USS  5       u  p4nX4U4$ ! [        [        [
        4 a    U s $ f = f)z/Get JAX version as (major, minor, patch) tuple.r   N.c              3   8   #    U  H  n[        U5      v   M     g 7f)N)int).0vs     r   	<genexpr>"get_jax_version.<locals>.<genexpr>'   s     A/@!s1vv/@s      )r   __version__splitr   
ValueErrorAttributeError)r   r   version_partsmajorminorpatchs         r   get_jax_versionr        sZ    --c2A}Ra/@Aee$$^4 s   14 AAc                      [        5       (       d  g SSKn U R                  S5      n[        U5      S:  $ ! [         a     gf = f)z&Check if JAX has CUDA backend support.Fr   Ngpur   r   deviceslen	Exceptionr   r$   s     r   has_jax_cuda_backendr(   -   I      ++e$7|a    "5 
AAc                      [        5       (       d  g SSKn U R                  S5      n[        U5      S:  $ ! [         a     gf = f)z%Check if JAX has TPU backend support.Fr   Ntpur#   r'   s     r   has_jax_tpu_backendr-   <   r)   r*   c                      [        5       $ )z,Checks for a full Pallas-on-CPU environment.)r        r   has_cpu_pallasr1   K   s     r0   c                      [        5       =(       a/    [        R                  R                  5       =(       a
    [	        5       $ )z-Checks for a full Pallas-on-CUDA environment.)r   torchcudais_availabler(   r/   r0   r   has_cuda_pallasr6   Q   s(     XEJJ$;$;$=XBVBXXr0   c                  8    [        5       =(       a
    [        5       $ )z,Checks for a full Pallas-on-TPU environment.)r   r-   r/   r0   r   has_tpu_pallasr8   W   s     9$7$99r0   c                  Z    [        5       =(       d    [        5       =(       d
    [        5       $ )z
Check if Pallas backend is fully available for use.

Requirements:
- JAX package installed
- Pallas (jax.experimental.pallas) available
- A compatible backend (CUDA or TPU) is available in both PyTorch and JAX.
)r1   r6   r8   r/   r0   r   
has_pallasr:   ]   s     D0DN4DDr0   ))r   r   r   )	functoolsr3   cacheboolr   r   tupler   r    r(   r-   r1   r6   r8   r:   r/   r0   r   <module>r?      sF        D   	eCcM2 	5cSVCW 	 	 d   T        
 Y Y Y
 : : :
 	ED 	E 	Er0   