
    9j'                         d dl Z d dlZ d dlZd dlmZ d dlmZ edefd       Z	de
eeef      ddez  fdZdedej                  dz  fd	Zedefd
       Zy)    N)cache)versionreturnc                  F    t        t        j                  dd            dk(  S )zx
    Single point to check if native DSL ops are disabled globally,
    checked via:
    TORCH_DISABLE_NATIVE_JIT=1
    TORCH_DISABLE_NATIVE_JITr      intosgetenv     Z/media/conek/DATA/Code/OCR/venv/lib/python3.12/site-packages/torch/_native/common_utils.pycheck_native_jit_disabledr   	   s      ryy3Q78A==r   depsc                 l    | D ]/  \  }}t         j                  j                  |      &d| d| dc S  y)z
    Check availability of required packages - cuteDSL & deps,
    informing user what (if anything) is missing

    NOTE: Doesn't actually import anything.
    Nzmissing optional dependency `z` (importlib.util.find_spec(z	) failed))	importlibutil	find_spec)r   package_namemodule_names      r   _unavailable_reasonr      sP     &* !k>>##K08/~ >--9N)E r   packagec                     	 t         j                  j                  |       }	 t	        j
                  |      }|S # t         j                  j                  $ r Y yw xY w# t        j                  $ r Y yw xY w)z
    Get the installed version of a package as (major, minor, patch).

    Handles pre-release suffixes like "0.7.0rc1" or "3.1.0.post1" by
    stripping non-numeric tails from each component. Returns None on
    parse failure.
    N)r   metadatar   PackageNotFoundError_packaging_versionparseInvalidVersion)r   r   vs      r   _available_versionr!   $   sr    $$,,W5$$W- H 22 
 ,, s    9 A AAA21A2c                  F    t        t        j                  dd            dk(  S )z
    Single point to check if native DSL version gating should be skipped,
    checked via:
    TORCH_NATIVE_SKIP_VERSION_CHECK=1
    TORCH_NATIVE_SKIP_VERSION_CHECKr   r   r	   r   r   r   check_native_version_skipr$   9   s      ryy:A>?1DDr   )r   importlib.metadatar   	functoolsr   torch._vendor.packagingr   r   boolr   listtuplestrr   Versionr!   r$   r   r   r   <module>r-      s      	  A >4 > >d5c?3 s
 " (:(B(BT(I * E4 E Er   