
    3j'                         S SK r S SKr S SKrS SKJr  S SKJr  \S\4S j5       r	S\
\\\4      SS\-  4S jrS\S\R                  S-  4S	 jr\S\4S
 j5       rg)    N)cache)versionreturnc                  H    [        [        R                  " SS5      5      S:H  $ )zh
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     T/home/wildlama/miniconda3/lib/python3.13/site-packages/torch/_native/common_utils.pycheck_native_jit_disabledr   	   s      ryy3Q78A==r   depsc                 p    U  H0  u  p[         R                  R                  U5      b  M'  SU SU S3s  $    g)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      sI     &*!>>##K08/~ >--9N)E &* r   packagec                      [         R                  R                  U 5      n [        R
                  " U5      nU$ ! [         R                  R                   a     gf = f! [        R                   a     gf = f)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    : A AAA54A5c                  H    [        [        R                  " SS5      5      S:H  $ )zv
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   