o
    Vh+                     @  sF   d dl mZ d dlmZ erd dlmZ d dlmZ G dd dZdS )    )annotations)TYPE_CHECKING)Package)RepositoryPoolc                   @  s(   e Zd ZdddZ			ddddZdS )VersionSelectorpoolr   returnNonec                 C  s
   || _ d S N)_pool)selfr    r   s/var/www/html/construction_image-detection-poc/venv/lib/python3.10/site-packages/poetry/version/version_selector.py__init__   s   
zVersionSelector.__init__Npackage_namestrtarget_package_version
str | Noneallow_prereleasesbool | NonesourcePackage | Nonec                 C  s   ddl m} |||pd||d}| j|}tdd |D }|s%dS d}	|D ]}
|
 r6| s6|s6q)|	du s@|	j|
jk rB|
}	q)|	S )zl
        Given a package name and optional version,
        returns the latest Package that matches
        r   )Factory*)versionzallow-prereleasesr   c                 s  s    | ]}|j  V  qd S r
   )r   is_unstable).0cr   r   r   	<genexpr>&   s    z6VersionSelector.find_best_candidate.<locals>.<genexpr>N)	poetry.factoryr   create_dependencyr   find_packagesallis_prereleaseallows_prereleasesr   )r   r   r   r   r   r   
dependency
candidatesonly_prereleasespackage	candidater   r   r   find_best_candidate   s2   z#VersionSelector.find_best_candidate)r   r   r   r	   )NNN)
r   r   r   r   r   r   r   r   r   r   )__name__
__module____qualname__r   r*   r   r   r   r   r      s    
r   N)	
__future__r   typingr   poetry.core.packages.packager   poetry.repositoriesr   r   r   r   r   r   <module>   s    