o
    Vh                     @  sb   d dl mZ d dlZd dlZ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 )	    )annotationsN)TYPE_CHECKING)find_git_command)Path)Anyc                   @  sF   e Zd ZedddZeddddZedddZedddZd	S )	SystemGit
repositorystrdestr   returnNonec                 C  s$   |  | | ddd|t| d S )Nclonez--recurse-submodulesz--)_check_parameterrunr	   )clsr   r
    r   i/var/www/html/construction_image-detection-poc/venv/lib/python3.10/site-packages/poetry/vcs/git/system.pyr      s   
zSystemGit.cloneNrevtargetPath | Nonec                 C  s   |  | | jd||d d S )Ncheckout)folder)r   r   )r   r   r   r   r   r   r      s   
zSystemGit.checkoutargsr   kwargsc                  O  sh   | dd }|rd|d  d| g| R } t }tj }d|d< tj|t|  d|dddd	 d S )
Nr   z	--git-dirz.gitz--work-tree0GIT_TERMINAL_PROMPTTzutf-8)capture_outputenvtextencodingcheck)	popas_posixr   osenvironcopy
subprocessr   list)r   r   r   git_commandr   r   r   r   r      s(   



zSystemGit.run	parameterc                 C  s    |   drtd|  dS )zJ
        Checks a git parameter to avoid unwanted code execution.
        -zInvalid Git parameter: N)strip
startswithRuntimeError)r)   r   r   r   r   5   s   zSystemGit._check_parameter)r   r	   r
   r   r   r   )N)r   r	   r   r   r   r   )r   r   r   r   r   r   )r)   r	   r   r   )	__name__
__module____qualname__classmethodr   r   staticmethodr   r   r   r   r   r   r      s    r   )
__future__r   r#   r&   typingr   dulwich.clientr   pathlibr   r   r   r   r   r   r   <module>   s    