U
    KQh6  ã                   @   s   d d„ Z dd„ Zdd„ ZdS )c                 C   s^   i }i }| D ]H}d|j |jf }tt|| ƒƒ}|r:|||< tt|| ƒƒ}|r|||< q||fS )Nz%s==%s)Úproject_nameÚversionÚlistÚget_missing_reqsÚget_incompatible_reqs)Úinstalled_distsÚmissing_reqs_dictÚincompatible_reqs_dictÚdistÚkeyÚmissing_reqsÚincompatible_reqs© r   ú3/tmp/pip-build-tlro1kwj/pip/pip/operations/check.pyÚcheck_requirements   s     ÿ
r   c                 c   sH   t dd„ |D ƒƒ}t ƒ }|  ¡ D ]"}|j ¡ |kr | |¡ |V  q dS )z\Return all of the requirements of `dist` that aren't present in
    `installed_dists`.

    c                 s   s   | ]}|j  ¡ V  qd S )N)r   Úlower)Ú.0Údr   r   r   Ú	<genexpr>   s     z#get_missing_reqs.<locals>.<genexpr>N)ÚsetÚrequiresr   r   Úadd)r	   r   Úinstalled_namesÚmissing_requirementsÚrequirementr   r   r   r      s    
r   c                 c   sL   i }|D ]}|||j < q|  ¡ D ]&}| |j ¡}|r ||kr ||fV  q dS )zyReturn all of the requirements of `dist` that are present in
    `installed_dists`, but have incompatible versions.

    N)r   r   Úget)r	   r   Úinstalled_dists_by_nameÚinstalled_distr   Úpresent_distr   r   r   r   $   s    r   N)r   r   r   r   r   r   r   Ú<module>   s   