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 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rTd dlmZ d dlmZ ej					ddddZG dd dZdS )     )annotationsN)Path)TYPE_CHECKING)Link)Config)PackageInfo)PackageInfoError)get_default_authenticator)download_file)get_file_hash)Git)Package)ArtifactCacheurlstrbranch
str | Nonetagrevsubdirectorysource_rootPath | Nonereturnr   c           
      C  sp   t j| ||||dd}t |}t|j}|r||}t|}	d|	_| |	_	|p.|p.|p.d|	_
||	_||	_|	S )NF)r   r   r   r   revisioncleangitHEAD)r   cloneget_revisionr   pathjoinpathDirectOriginget_package_from_directory_source_type_source_url_source_reference_source_resolved_reference_source_subdirectory)
r   r   r   r   r   r   sourcer   r   package r*   q/var/www/html/construction_image-detection-poc/venv/lib/python3.10/site-packages/poetry/packages/direct_origin.py_get_package_from_git   s&   	



r,   c                   @  s`   e Zd Zd!ddZed"d
dZed#ddZd$ddZd%ddZe						d&d'dd Z
dS )(r!   artifact_cacher   r   Nonec                 C  s(   || _ t }|dd| _t | _d S )Nzrequests.max-retriesr   )_artifact_cacher   createget_max_retriesr	   _authenticator)selfr-   configr*   r*   r+   __init__;   s   zDirectOrigin.__init__	file_pathr   r   c                 C  s8   zt j|dj|d}W |S  ty   td| w )Nr   root_dirz,Unable to determine package info from path: )r   	from_path
to_packager   RuntimeError)clsr7   r)   r*   r*   r+   get_package_from_fileA   s   z"DirectOrigin.get_package_from_file	directoryc                 C  s   t j|dj|dS )Nr8   r9   )r   from_directoryr<   )r>   r@   r*   r*   r+   r"   N   s   z'DirectOrigin.get_package_from_directoryr   r   destc                 C  s   t ||| j| jd d S )N)sessionmax_retries)r
   r3   r2   )r4   r   rB   r*   r*   r+   _download_fileR   s   
zDirectOrigin._download_filec                 C  sN   t |}| jj|d| jd}| |}|jdt| dg|_d|_||_	|S )NT)strictdownload_funczsha256:)filehashr   )
r   r/   get_cached_archive_for_linkrE   r?   filenamer   filesr#   r$   )r4   r   linkartifactr)   r*   r*   r+   get_package_from_urlW   s   
z!DirectOrigin.get_package_from_urlNvcsr   r   r   r   r   r   r   c                 C  s*   | dkrt d|  t||||||dS )Nr   zUnsupported VCS dependency )r   r   r   r   r   r   )
ValueErrorr,   )rP   r   r   r   r   r   r   r*   r*   r+   get_package_from_vcsg   s   
z!DirectOrigin.get_package_from_vcs)r-   r   r   r.   )r7   r   r   r   )r@   r   r   r   )r   r   rB   r   r   r.   )r   r   r   r   NNNNN)rP   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   )__name__
__module____qualname__r6   classmethodr?   r"   rE   rO   staticmethodrR   r*   r*   r*   r+   r!   :   s    


r!   rS   )r   r   r   r   r   r   r   r   r   r   r   r   r   r   )
__future__r   	functoolspathlibr   typingr   poetry.core.packages.utils.linkr   poetry.config.configr   poetry.inspection.infor   r   poetry.utils.authenticatorr	   poetry.utils.helpersr
   r   poetry.vcs.gitr   poetry.core.packages.packager   poetry.utils.cacher   cacher,   r!   r*   r*   r*   r+   <module>   s.     