o
    Ďi                     @   sr   d dl Zd dlmZ ddedefddZdd	 Zd
efddZdd Z	ddedefddZ
ddedefddZdS )    N)loggerTpackage_nameverbosec                 C   s   t | }|rDzddlm} || }W n ttfy2   zt| j}W n ty/   d}Y nw Y nw |r@t	
|  d| d ||fS d}||fS )zIReturns the package version as a string and the package name as a string.r   Nunknownz	 version z is available.zN/A)is_availableimportlib.metadatametadataversionModuleNotFoundErrorAttributeError	importlibimport_module__version__r   pkg_info)r   r   _is_available_importlib_metadata_version r   S/home/jeff/fluffinator/venv/lib/python3.10/site-packages/sahi/utils/import_utils.pyget_package_info   s$   r   c                   C   st   t d t d t d t d t d t d t d t d t d	 t d
 t d t d t d t d d S )Ntorchtorchvision
tensorflowztensorflow-hubultralyticsyolov5mmdetmmcv
detectron2transformerstimmfiftyonepillowzopencv-python)r   r   r   r   r   print_environment_info   s   r"   module_namec                 C   s   t j| d uS )N)r   util	find_spec)r#   r   r   r   r   /   s   r   c                 c   sF    g }| D ]}t j|du r|| q|rtd| dV  dS )z'Raise error if module is not installed.Nz8The following packages are required to use this module: )r   r$   r%   appendImportError)package_namesmissing_packagesr   r   r   r   check_requirements3   s   

r*   Fminimum_versionc                 C   s`   ddl m} t| |d\}}|r.|dkr"td|  d| d d	S ||||k r.dS d	S )
0Raise error if module version is not compatible.r   r	   r   r   Could not determine version of . Assuming version  is compatible.FT)	packagingr	   r   r   warningparser   r+   r   r	   r   r   r   r   r   check_package_minimum_version>   s   r6   c                 c   sx    ddl m} t| |d\}}|r7|dkr"td|  d| d n||||k r7td|  d	| d
dV  dS )r,   r   r-   r.   r   r/   r0   r1   zPlease upgrade z to version z or higher to use this module.N)r2   r	   r   r   r3   r4   r'   r5   r   r   r   ensure_package_minimum_versionN   s   
r7   )T)F)importlib.utilr   sahi.loggerr   strboolr   r"   r   r*   r6   r7   r   r   r   r   <module>   s    