o
    ÉÙ¾i'  ã                   @   s2   d Z ddlmZ ddlZddlZddd„ZdZdS )	zLibrary information.é    )Úabsolute_importNFc           
         sl  t j t j t j t¡¡¡}t j |ddd¡}t j |dddd¡}g }t j dd¡r2| 	t jd ¡ t
j d¡rPt j dd¡rP| dd„ t jd  d¡D ƒ¡ nt
j d	¡rmt j d
d¡rm| dd„ t jd
  d¡D ƒ¡ | 	t j |d¡¡ | 	t j |dd¡¡ | 	t j |d¡¡ | 	t j |dd¡¡ | 	t j |d¡¡ | 	|¡ | 	|d ¡ dd„ |D ƒ}|durÆ|tu rÁ|| }n| 	|¡ ˆdurìtˆtƒrâg }ˆD ]‰ |‡ fdd„|D ƒ7 }qÓn6‡fdd„|D ƒ}n,t
j d¡rdd„ |D ƒdd„ |D ƒ }nt
j d	¡rdd„ |D ƒ}ndd„ |D ƒ}dd„ |D ƒ}|s4dtd |¡ƒ }	|s2t|	ƒ‚dS |S )zÞFind dynamic library files.

    Parameters
    ----------
    name : list of str
        List of names to be found.

    Returns
    -------
    lib_path : list(string)
        List of all found path to the libraries
    z..ÚDECORD_LIBRARY_PATHNÚlinuxÚLD_LIBRARY_PATHc                 S   ó   g | ]}|  ¡ ‘qS © ©Ústrip©Ú.0Úpr   r   úG/home/ubuntu/.local/lib/python3.10/site-packages/decord/_ffi/libinfo.pyÚ
<listcomp>$   ó    z!find_lib_path.<locals>.<listcomp>ú:ÚdarwinÚDYLD_LIBRARY_PATHc                 S   r   r   r   r
   r   r   r   r   &   r   ÚbuildÚReleaseÚlibz	/../buildc                 S   s   g | ]}t j |¡‘qS r   )ÚosÚpathÚabspath)r   Úxr   r   r   r   4   s    c                    ó   g | ]	}t j |ˆ ¡‘qS r   ©r   r   Újoinr
   )Únr   r   r   >   ó    c                    r   r   r   r
   )Únamer   r   r   @   r   Úwin32c                 S   ó   g | ]	}t j |d ¡‘qS )zlibdecord.dllr   r
   r   r   r   r   C   r   c                 S   r!   )z
decord.dllr   r
   r   r   r   r   D   r   c                 S   r!   )zlibdecord.dylibr   r
   r   r   r   r   F   r   c                 S   r!   )zlibdecord.sor   r
   r   r   r   r   H   r   c                 S   s(   g | ]}t j |¡rt j |¡r|‘qS r   )r   r   ÚexistsÚisfiler
   r   r   r   r   K   s   ( z+Cannot find the files.
List of candidates:
Ú
)r   r   Údirnamer   Ú
expanduserÚ__file__r   ÚenvironÚgetÚappendÚsysÚplatformÚ
startswithÚextendÚsplitÚlistÚ
isinstanceÚstrÚRuntimeError)
r   Úsearch_pathÚoptionalÚffi_dirÚ
source_dirÚinstall_lib_dirÚdll_pathÚlib_dll_pathÚ	lib_foundÚmessager   )r   r   r   Úfind_lib_path   sZ   " 



ÿÿþr=   z3.0.0)NNF)Ú__doc__Ú
__future__r   r+   r   r=   Ú__version__r   r   r   r   Ú<module>   s    
U