
    a,j'                         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dS )    N)cache)versionreturnc                  N    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/var/www/html/banglarbhumi/venv/lib/python3.11/site-packages/torch/_native/common_utils.pycheck_native_jit_disabledr   	   s$     ry3Q7788A==r   depsc                 j    | D ]/\  }}t           j                            |          d| d| dc S 0dS )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      sr     &*  !k>##K008E E E-9E E E   9
 4r   packagec                     	 t           j                            |           }n# t           j        j        $ r Y dS w xY w	 t	          j        |          }n# t          j        $ r Y dS w xY w|S )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!   $   s    $,,W552   tt$W--,   tt Hs   " ::A A&%A&c                  N    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$     ry: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 A A A A A >4 > > > >d5c?3 s
    " (:(BT(I    * E4 E E E E E Er   