o
    i                     @   s<   d dl Z d dlZdededefddZdedB fddZdS )	    Nabreturnc                 C   s   t jt j| }t jt j|}||krdS zt j| r0t j|r3t j| | W S W dS W dS  ty?   Y dS w )a  
    Return True if paths are observably different.

    Strategy:
    1) Compare os.path.normcase(os.path.normpath(...)) for quick, robust textual equality.
       - Handles trailing slashes and case-insensitivity on Windows.
    2) If still different AND both exist, use os.path.samefile to resolve symlinks/junctions.
    3) Otherwise (nonexistent paths or samefile unavailable), treat as different.
    FT)ospathnormcasenormpathexistssamefileOSError)r   r   norm_anorm_b r   \/home/ubuntu/veenaModal/venv/lib/python3.10/site-packages/cuda/pathfinder/_utils/env_vars.py_paths_differ   s   
r   c                  C   sX   t jd} t jd}| r$|r$t| |r$tjd|  d| dtdd | d ur*| S |S )N	CUDA_HOME	CUDA_PATHz=Both CUDA_HOME and CUDA_PATH are set but differ:
  CUDA_HOME=z
  CUDA_PATH=z#
Using CUDA_HOME (higher priority).   )
stacklevel)r   environgetr   warningswarnUserWarning)	cuda_home	cuda_pathr   r   r   get_cuda_home_or_path#   s   	r   )r   r   strboolr   r   r   r   r   r   <module>   s   