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 dZejZejZejZdddZejdddZd ddZ dS )!    )annotationsN)	Generator)Sequence)	lang_base)
envcontext)PatchesT)Var)Prefix)win_exe)	yaml_loaddartenvvenvstrreturnr   c                 C  s    dt j| dt jtdfffS )NPATHbin)ospathjoinpathsepr   )r    r   M/home/ubuntu/.local/lib/python3.10/site-packages/pre_commit/languages/dart.pyget_env_patch   s   r   prefixr	   versionGenerator[None]c                 c  sH    t | t|}tt| d V  W d    d S 1 sw   Y  d S )N)r   environment_dirENVIRONMENT_DIRr   r   )r   r   envdirr   r   r   in_env   s
   "r   additional_dependenciesSequence[str]Nonec                   sz  t d| t | t|}tj|d d fd	d
}t  t	 }|| | W d    n1 s4w   Y  |D ]}t	 q}|
d\}}	}|rR|d|f}
n|f}
t j| ddddg|
R i tjd|id t|D ]3\}}	}d|v rt	 }tj|d}t|| |t|| W d    n1 sw   Y   nqptd| W d    n1 sw   Y  q;d S )Ndartr   prefix_pr	   	pub_cacher   r   r"   c                   s   i t jd|i}t| d}t|}W d    n1 sw   Y  tj| d|d |d D ]}tj| dddd	t j t|| d
| df|d q0d S )N	PUB_CACHEpubspec.yaml)r#   pubgetenvexecutablesr#   compileexez--outputr   z.dart)	r   environopenr   r   r   	setup_cmdr   r
   )r$   r%   dart_envfpubspec_contents
executablebin_dirr   r   _install_dir0   s   
z)install_environment.<locals>._install_dir:z	--versionr(   cacheaddr&   r*   r'   pkgz could not find pubspec.yaml for )r$   r	   r%   r   r   r"   )r   assert_version_defaultr   r   r   r   r   makedirstempfileTemporaryDirectory	partitionr1   r/   walkshutilcopytreer	   AssertionError)r   r   r    r   r8   tmpdep_sdep_tmpdep_dep_cmdroot	filenamescopiedr<   r   r6   r   install_environment&   sF   



rO   )r   r   r   r   )r   r	   r   r   r   r   )r   r	   r   r   r    r!   r   r"   )!
__future__r   
contextlibos.pathr   rC   r?   collections.abcr   r   
pre_commitr   pre_commit.envcontextr   r   r   pre_commit.prefixr	   pre_commit.utilr
   pre_commit.yamlr   r   basic_get_default_versionget_default_versionbasic_health_checkhealth_checkbasic_run_hookrun_hookr   contextmanagerr   rO   r   r   r   r   <module>   s,    
