o
    Vh                     @  s   d dl mZ d dlZd dlmZ d dlmZ d dlmZ d dl	m
Z
 d dlmZ erNd dlmZ d d	lmZ d d
lmZ d dlmZ d dlmZ d dlmZ G dd de
ZdS )    )annotationsN)TYPE_CHECKING)canonicalize_name)Version)AbstractRepository)PackageNotFoundError)Sequence)NormalizedName)VersionConstraint)
Dependency)Package)Linkc                      s   e Zd Zd0d1 fdd	Zed2ddZd3ddZd4ddZd5ddZd6ddZ	d7dd Z
d8d9d$d%Zd:d'd(Zd;d*d+Zd<d.d/Z  ZS )=
RepositoryNnamestrpackagesSequence[Package] | NonereturnNonec                   s.   t  | g | _|pg D ]}| | qd S N)super__init__	_packagesadd_package)selfr   r   package	__class__ r/var/www/html/construction_image-detection-poc/venv/lib/python3.10/site-packages/poetry/repositories/repository.pyr      s
   zRepository.__init__list[Package]c                 C  s   | j S r   r   r   r   r   r   r       s   zRepository.packages
dependencyr   c                 C  s   g }g }|j }| }| |j|D ] }|jrt|tsq| r-|s-| s-|	| q|	| q| j
t| d|j d|dd |du rK|S |pN|S )Nz packages found for  debug)levelF)
constraintallows_prereleases_find_packagesr   yanked
isinstancer   is_prereleaseis_direct_originappend_loglen)r   r#   r   ignored_pre_release_packagesr'   allow_prereleasesr   r   r   r   find_packages$   s.   
zRepository.find_packagesr   r   boolc                   s   |j  t fdd| jD S )Nc                 3  s    | ]} |j kV  qd S r   )unique_name).0repo_package
package_idr   r   	<genexpr>E   s    

z)Repository.has_package.<locals>.<genexpr>)r5   anyr   r   r   r   r8   r   has_packageC   s   zRepository.has_packagec                 C  s   | j | d S r   )r   r.   r<   r   r   r   r   I   s   zRepository.add_packagequerystr | list[str]c                   sH   g }t |tr	|n|g}| jD ] t fdd|D r!|  q|S )Nc                 3  s    | ]}| j v V  qd S r   )r   )r6   tokenr   r   r   r:   Q   s    z$Repository.search.<locals>.<genexpr>)r+   listr   r;   r.   )r   r>   resultstokensr   rA   r   searchL   s   

zRepository.searchr	   r'   r
   c                   s    fdd| j D S )Nc                   s&   g | ]}|j kr |jr|qS r   )r   allowsversion)r6   r   r'   r   r   r   
<listcomp>Y   s
    z-Repository._find_packages.<locals>.<listcomp>r!   )r   r   r'   r   rH   r   r)   V   s   zRepository._find_packagesinfomsgr&   c                 C  s8   t t d| jj }t||d| j d|  d S )N.z<c1>Source (z):</c1> )logging	getLogger__name__r   getattrr   )r   rK   r&   loggerr   r   r   r/   _   s    zRepository._logintc                 C  s
   t | jS r   )r0   r   r"   r   r   r   __len__c   s   
zRepository.__len__
list[Link]c                 C  s   g S r   r   r<   r   r   r   find_links_for_packagef   s   z!Repository.find_links_for_packagerG   r   c                 C  sF   t |}| jD ]}||jkr|j|kr|  S qtd| d| d)NzPackage z (z) not found.)r   r   r   rG   r   )r   r   rG   canonicalized_namer   r   r   r   r   i   s   
zRepository.packager   )r   r   r   r   r   r   )r   r    )r#   r   r   r    )r   r   r   r4   )r   r   r   r   )r>   r?   r   r    )r   r	   r'   r
   r   r    )rJ   )rK   r   r&   r   r   r   )r   rR   )r   r   r   rT   )r   r   rG   r   r   r   )rO   
__module____qualname__r   propertyr   r3   r=   r   rE   r)   r/   rS   rU   r   __classcell__r   r   r   r   r      s    





	

r   )
__future__r   rM   typingr   packaging.utilsr   poetry.core.constraints.versionr   'poetry.repositories.abstract_repositoryr   poetry.repositories.exceptionsr   collections.abcr   r	   r
   poetry.core.packages.dependencyr   poetry.core.packages.packager   poetry.core.packages.utils.linkr   r   r   r   r   r   <module>   s    