o
    Wi
                     @  s   d dl mZ d dlZd dlZd dl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 eeZdddZdddZdS )    )annotationsN)git)output)load_manifest)run)Store)cmd_output_b)xargs)	yaml_dumptmpdirstrreporef
str | Nonereturntuple[str, str]c                 C  s   |d ur||fS t |}tj|rst jd|drstd tj| d}t	dd|| t	dd|dd	|d
 t j
d|d}t j
d|d}ttj||d}t j|d
}|r]td|||d t	ddd||d t j|d |t |fS ||fS )NHEAD)r   z3Creating temporary repo with uncommitted changes...zshadow-repor   clonecheckoutz-b_pc_tmp)cwdindexobjects)GIT_INDEX_FILEGIT_OBJECT_DIRECTORY)r   addz--)r   envr   z-u)r   head_revospathexistshas_diffloggerwarningjoinr   git_pathdictenvironget_staged_filesr	   commit)r   r   r   shadowidxobjsr   staged_files r.   P/home/ubuntu/.local/lib/python3.10/site-packages/pre_commit/commands/try_repo.py	_repo_ref   s$   

r0   argsargparse.Namespaceintc              	   C  s6  t  }t|| j| j\}}t|}| jrd| jig}n|||}tt	j
|tj}t|dd d}dd |D }d|||dgi}t|}	t	j
|tj}
t|
d	}||	 W d    n1 sfw   Y  td
 td td
 t|	 td
 t|
|| W  d    S 1 sw   Y  d S )Nidc                 S  s   | d S )Nr4   r.   )hookr.   r.   r/   <lambda>=   s    ztry_repo.<locals>.<lambda>)keyc                 S  s   g | ]}d |d  iqS )r4   r.   ).0r5   r.   r.   r/   
<listcomp>>   s    ztry_repo.<locals>.<listcomp>repos)r   revhookswzO===============================================================================zUsing config:)tempfileTemporaryDirectoryr0   r   r   r   r5   r   r   r   r   r$   CMANIFEST_FILEsortedr
   CONFIG_FILEopenwriter   
write_liner   )r1   tempdirr   r   storer<   	repo_pathmanifestconfigconfig_sconfig_filenamecfgr.   r.   r/   try_repo3   s,   






$rO   )r   r   r   r   r   r   r   r   )r1   r2   r   r3   )
__future__r   argparseloggingos.pathr   r>   pre_commit.constants	constantsr@   
pre_commitr   r   pre_commit.clientlibr   pre_commit.commands.runr   pre_commit.storer   pre_commit.utilr   pre_commit.xargsr	   pre_commit.yamlr
   	getLogger__name__r"   r0   rO   r.   r.   r.   r/   <module>   s"    

