o
    Wi	                     @  s   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dZdddZejd 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           	        s   t d| tdptd  d u rtdt t|d fdd	}t|H d
}tj	|rWt
|D ]}tj|\}}tj|\}}|dd|| q<n|s]td|rk||  W d    d S W d    d S 1 svw   Y  d S )Nr   cszbpre-commit requires system-installed "cs" or "coursier" executables in the application search pathoptsr   r   r   c                    s@    d usJ t  dg| R  t  ddg| R  d S )Nfetchinstallz--dir)r   	setup_cmd)r   r   envdirr    Q/home/ubuntu/.local/lib/python3.10/site-packages/pre_commit/languages/coursier.py_install(   s   z%install_environment.<locals>._installz.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   r   install_environment   s:   

"r.   
target_dirr   c                 C  s&   d| t jtdffdt j| dffS )NPATHCOURSIER_CACHEz	.cs-cache)r$   pathsepr   r#   join)r/   r   r   r   get_env_patchA   s   r4   Generator[None]c                 c  sH    t | t|}tt| d V  W d    d S 1 sw   Y  d S )N)r   r    r!   r   r4   )r   r   r   r   r   r   r"   H   s
   "r"   )r   r   r   r   r   r   r   r   )r/   r   r   r   )r   r   r   r   r   r5   )
__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_hookr.   r4   contextmanagerr"   r   r   r   r   <module>   s(    

*