
    wi	                        d dl m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 dZe	j        Ze	j        Ze	j        ZddZddZej        dd            ZdS )    )annotationsN)	Generator)Sequence)	lang_base)
envcontext)PatchesT)Var)
FatalError)find_executable)Prefixcoursierprefixr   versionstradditional_dependenciesSequence[str]returnNonec                   	
 t          j        d|           t          d          pt          d          		t          d          t          j         t
          |          
d	
 fd}t           |          5                       d	          }t          j        	                    |          rjt          j
        |          D ]T}t          j                            |          \  }}t          j                            |          \  }} |d
d||           Un|st          d          |r ||  d d d            d S # 1 swxY w Y   d S )Nr   cszbpre-commit requires system-installed "cs" or "coursier" executables in the application search pathoptsr   r   r   c                 |    J t          j        dg| R            t          j        ddg| R            d S )Nfetchinstallz--dir)r   	setup_cmd)r   r   envdirr   s    m/root/.openclaw/workspace/chatterbox_venv_py311/lib/python3.11/site-packages/pre_commit/languages/coursier.py_installz%install_environment.<locals>._install(   sV    ~~~FR$84$8$8999FRGV$Kd$K$KLLLLL    z.pre-commit-channelz--default-channels=falsez	--channelz;expected .pre-commit-channel dir or additional_dependencies)r   r   r   r   )r   assert_version_defaultr   AssertionErrorenvironment_dirENVIRONMENT_DIRin_envpathosisdirlistdirsplitsplitextr
   )r   r   r   r   channelapp_descriptor_app_fileappr   r   s   `        @@r   install_environmentr0      s   
 $Z999 
			=/*"="=B	z9
 
 	

 &vHHFM M M M M M M M
 
	 	  / /++3447==!! 	"$*W"5"5   gmmN;;8))(33Q.    ) 	M   # 	/H-..#/ / / / / / / / / / / / / / / / / /s   ;B7D??EE
target_dirr   c                    d| t           j        t          d          ffdt           j                            | d          ffS )NPATHCOURSIER_CACHEz	.cs-cache)r&   pathsepr	   r%   join)r1   s    r   get_env_patchr7   A   s;    	*bj#f++67	27<<
K@@A r   Generator[None]c              #     K   t          j        | t          |          }t          t	          |                    5  d V  d d d            d S # 1 swxY w Y   d S )N)r   r"   r#   r   r7   )r   r   r   s      r   r$   r$   H   s      &vHHF	M&))	*	*                   s   AAA)r   r   r   r   r   r   r   r   )r1   r   r   r   )r   r   r   r   r   r8   )
__future__r   
contextlibos.pathr&   collections.abcr   r   
pre_commitr   pre_commit.envcontextr   r   r	   pre_commit.errorsr
   pre_commit.parse_shebangr   pre_commit.prefixr   r#   basic_get_default_versionget_default_versionbasic_health_checkhealth_checkbasic_run_hookrun_hookr0   r7   contextmanagerr$    r   r   <module>rK      sC   " " " " " "      % % % % % % $ $ $ $ $ $             , , , , , , * * * * * * % % % % % % ( ( ( ( ( ( 4 4 4 4 4 4 $ $ $ $ $ $9 +#'/ '/ '/ '/T         r   