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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dZejdddZdS )    )annotationsN)	Generator)IO)output)
FatalError)Store)cmd_output_b)force_bytesmsgstrret_codeintexcBaseException	formattedreturnNonec                 C  s  |  dt |j d t| }t| tdddd\}}}|jdd }t	 j
}tj|d}	t }
t|tjrPtd	|	  |
t|	d
}ntd|	  tjj}tjtj|d}tjtj|d}|d |  |d |dtj  |d|  |d tj D ]	}|d|  q|dtj  |dtj  |dtj   |d |  |d |  |d || |d |  |d ||  |d W d    t!|1 sw   Y  t!|)Nz: gitz	--versionF)checkbackslashreplace)errorszpre-commit.logzCheck the log at wbzFailed to write to log at )streamz### version informationz```zpre-commit version: zgit --version: zsys.version:z    zsys.executable: z	os.name: zsys.platform: z### error information)"type__name__encoder	   r   write_line_br   decoderstripr   	directoryospathjoin
contextlib	ExitStackaccessW_OK
write_lineenter_contextopensysstdoutbuffer	functoolspartialCVERSIONversion
splitlines
executablenameplatform
SystemExit)r
   r   r   r   	error_msg_git_version_bgit_versionstoredirlog_pathctxlog	_log_line_log_line_bline rB   L/home/ubuntu/.local/lib/python3.10/site-packages/pre_commit/error_handler.py_log_and_exit   sP   "



""rD   Generator[None]c               
   c  s|    zd V  W d S  t tfy= }  z(t| trd\}}nt| tr%d\}}nd\}}t||| t  W Y d } ~ d S d } ~ ww )N)zAn error has occurred   )zInterrupted (^C)   )z An unexpected error has occurred   )	ExceptionKeyboardInterrupt
isinstancer   rD   	traceback
format_exc)er
   r   rB   rB   rC   error_handlerF   s   



 rO   )
r
   r   r   r   r   r   r   r   r   r   )r   rE   )
__future__r   r#   r-   os.pathr    r*   rL   collections.abcr   typingr   pre_commit.constants	constantsr/   
pre_commitr   pre_commit.errorsr   pre_commit.storer   pre_commit.utilr   r	   rD   contextmanagerrO   rB   rB   rB   rC   <module>   s"    
3