U
    ½mœdû  ã                   @   sd   d Z ddlZddlZddlZddlmZ ddlZddlZddlm	Z	 ddl
mZ dd„ Zdd	„ ZdS )
zCTests for the minimum dependencies in README.rst and pyproject.tomlé    N)ÚPath)Údependent_packages)Úparse_versionc            	   	   C   sÚ   t  ¡ dkrt d¡ t d¡} ttjd ƒj	d }|d }t
j |¡sRt d¡ | d¡�t}|D ]h}|  |¡}|svqb| d¡| d	¡ }}| ¡ }|tkrbt|ƒ}tt| d ƒ}||ksbt|› d
�ƒ‚qbW 5 Q R X d S )NÚPyPyz0PyPy does not always share the same minimum depszN(\.\. \|)(([A-Za-z]+\-?)+)(MinVersion\| replace::)( [0-9]+\.[0-9]+(\.[0-9]+)?)r   z
README.rstz%The README.rst file is not available.Úré   é   ú has a mismatched version)ÚplatformÚpython_implementationÚpytestÚskipÚreÚcompiler   ÚsklearnÚ__path__ÚparentsÚosÚpathÚexistsÚopenÚmatchÚgroupÚlowerr   r   ÚAssertionError)	ÚpatternZreadme_pathZreadme_fileÚfÚlineZmatchedÚpackageÚversionÚmin_version© r!   úc/home/sam/Atlas/atlas_env/lib/python3.8/site-packages/sklearn/tests/test_min_dependencies_readme.pyÚtest_min_dependencies_readme   s(    
ÿ

r#   c               	   C   sð   t  d¡} ttjd ƒj}|d }| ¡ s4t  d¡ | d¡�}|  	|¡}W 5 Q R X |d d }i }|D ]*}d|krh| 
d¡\}}	| ¡ }|	||< qhtd	d
gƒt|ƒks¬t‚| ¡ D ]6\}}	t|	ƒ}	tt| d ƒ}
|	|
ks´t|› d�ƒ‚q´dS )zFCheck versions in pyproject.toml is consistent with _min_dependencies.Útomllibr   zpyproject.tomlz pyproject.toml is not available.Úrbzbuild-systemÚrequiresz>=ZscipyÚcythonr	   N)r   Zimportorskipr   r   r   Úparentr   r   r   ÚloadÚsplitr   Úsetr   Úitemsr   r   )r$   Zroot_directoryÚpyproject_toml_pathr   Úpyproject_tomlZbuild_requirementsZpyproject_build_min_versionsÚrequirementr   r   Zexpected_min_versionr!   r!   r"   Ú$test_min_dependencies_pyproject_toml7   s&    


r0   )Ú__doc__r   r   r
   Úpathlibr   r   r   Zsklearn._min_dependenciesr   Zsklearn.utils.fixesr   r#   r0   r!   r!   r!   r"   Ú<module>   s   (