Viewing File: /opt/hc_python/lib/python3.12/site-packages/pre_commit/languages/__pycache__/r.cpython-312.pyc

�

i0i���L�ddlmZddlZddlZddlZddlZddlZddlZddlm	Z	ddlm
Z
ddlmZddl
mZddl
mZddl
mZdd	lmZdd
lmZddlmZdZej.Zd
Zdd�													d!d�Zdd�											d"d�Zdd�											d"d�Zd#d�Zd#d�Z								d$d�Zd%d�Z ejBd&d��Z"d'd�Z#ejBd(d��Z$								d)d�Z%d*d�Z&d+d�Z'										d,d�Z(								d-d�Z)d.d�Z*																d/d �Z+y)0�)�annotationsN)�	Generator)�Sequence)�	lang_base)�
envcontext)�PatchesT)�UNSET)�Prefix)�
cmd_output)�win_exe�renv)z	--no-savez--no-restorez--no-site-filez--no-environ�)�argsc���t||�5t|�5}tt�g|�|�|��d|i�\}}}ddd�ddd�j	d�S#1swY�"xYw#1swY�&xYw)N�cwd�
)�in_env�_r_code_in_tempfiler�
_rscript_exec�rstrip)	�code�prefix�versionrr�cli_opts�f�_�outs	         �E/opt/hc_python/lib/python3.12/site-packages/pre_commit/languages/r.py�
_execute_rrsv��

���	 �"5�d�";�q���O�
�&�
�()�
�,0�
�69�
�	��3��#<�	 ��:�:�d���	#<�";��	 �	 �s!�A&� A�A&�A#	�A&�&A/c�,�t|||||t��S)N�rrrrrr)r�_RENV_ACTIVATED_OPTS�rrrrrs     r�_execute_r_in_renvr$(s���
�&�'��#�%���c�$�t|||||d��S)N)z	--vanillar!)rr#s     r�_execute_vanilla_rr'2s���
�&�'��#���r%c� �td|||��S)Nzcat(renv::settings$r.version())�rrr�r$��envdirrrs   r�_read_installed_versionr-<s���)��w���r%c� �td|||��S)Nz cat(as.character(getRversion()))r)r*r+s   r�_read_executable_versionr/Ds���*��w���r%c�"�td|||��y)Nz5renv::settings$r.version(as.character(getRversion()))r)r*r+s   r�_write_current_r_versionr1Ls���?��w��r%c��tj|t|�}t|||��}t	|||��}|dvrd|��S||k7rd|�d|��Sy)Nr+>��NULLzSHooks were installed with an unknown R version. R version for hook repo now set to z#Hooks were installed for R version z', but current R executable has version )r�environment_dir�ENVIRONMENT_DIRr-r/)rrr,�r_version_installation�r_version_current_executables     r�health_checkr9Vs���
�
&�
&�v���
H�F�4��f�g���$<��f�g�$� ���-�$�$@�#A�
C�	
�
 �#?�	?�1�2H�1I�J4�+�,�
.�	
�r%c	#�BK�tj�5}tjj	|d�}t|d�5}|j
ttj|���ddd�|��ddd�y#1swY�xYw#1swYyxYw�w)z�
    To avoid quoting and escaping issues, avoid `Rscript [options] -e {expr}`
    but use `Rscript [options] path/to/file_with_expr.R`
    zscript.R�wN)
�tempfile�TemporaryDirectory�os�path�join�open�write�_inline_r_setup�textwrap�dedent)r�tmpdir�fnamers    rrrnsq����
�	$�	$�	&�&������V�Z�0��
�%��
��
�G�G�O�H�O�O�D�$9�:�;����	
'�	&�
�
��
'�	&�s4�B�-B�.B�2B�>	B�B	�B�B�Bc�V�dtjj|d�fdtffS)N�R_PROFILE_USERz
activate.R�RENV_PROJECT)r>r?r@r	)�venvs r�
get_env_patchrL{s+��	�2�7�7�<�<��l�;�<�	����r%c#�K�tj|t|�}tt	|��5d��ddd�y#1swYyxYw�w)N)rr5r6rrL)rrr,s   rrr�s5����
�
&�
&�v���
H�F�	�M�&�)�	*�
�
+�	*�	*�s�0A�A�	A�A	�Ac�J�|ddk(s|r|ddS|j|d�fS)N��-e)r?)�entryr�is_locals   r�_prefix_if_file_entryrS�s4��
�Q�x�4��8��Q�R�y�����E�!�H�%�'�'r%c��tjjd�}|�ytjj	|dtd��S)N�R_HOME�Rscript�bin)r>�environ�getr?r@r)�r_homes rrr�s8��
�Z�Z�^�^�H�
%�F�
�~���w�w�|�|�F�E�7�9�+=�>�>r%c��|ddk7rtd��|ddk(rt|�dkDrtd��y
t|�dkDrtd	��y
)zK
    Allowed entries:
    # Rscript -e expr
    # Rscript path/to/file
    rrVz entry must start with `Rscript`.rOrP�z&You can supply at most one expression.�zLThe only valid syntax is `Rscript -e {expr}`or `Rscript path/to/hook/script`N)�
ValueError�len)rQs r�_entry_validater`�sf��
�Q�x�9���;�<�<��Q�x�4���u�:��>��E�F�F��	�U��a���
/�
�	
�
r%c��tj|�}t|�t|||��}|dgt�|�|��S)N�rRr)�shlex�splitr`rSr")rrQrrR�cmd�cmd_parts      r�_cmd_from_hookrg�sE���+�+�e�
�C��C��$�S�&�8�D�H���F�<�)�<�H�<�t�<�<r%c���tjd|�tj|t|�}t	j
|d��t
j|jd�|�t
j|jd�tjj|d��d|j�d�}t||||��t|||�	�|rd
}t|||||��yy)N�rT)�exist_okz	renv.lockr
z        prefix_dir <- a3
        options(
            repos = c(CRAN = "https://cran.rstudio.com"),
            renv.consent = TRUE
        )
        source("renv/activate.R")
        renv::restore()
        activate_statement <- paste0(
          'suppressWarnings({',
          'old <- setwd("', getwd(), '"); ',
          'source("renv/activate.R"); ',
          'setwd(old); ',
          'renv::load("', getwd(), '");})'
        )
        writeLines(activate_statement, 'activate.R')
        is_package <- tryCatch(
          {
              path_desc <- file.path(prefix_dir, 'DESCRIPTION')
              suppressWarnings(desc <- read.dcf(path_desc))
              "Package" %in% colnames(desc)
          },
          error = function(...) FALSE
        )
        if (is_package) {
            renv::install(prefix_dir)
        }
        r)r+z/renv::install(commandArgs(trailingOnly = TRUE))r#)r�assert_version_defaultr5r6r>�makedirs�shutil�copyr?�copytreer@�
prefix_dirr'r1r$)rr�additional_dependencies�env_dir�r_code_inst_environment�r_code_inst_adds      r�install_environmentru�s���
�$�$�S�'�2��'�'����I�G��K�K��$�'�
�K�K����K�(�'�2�
�O�O�F�K�K��'������g�v�)F�G�#��(�(�+�,	���8���w�G��
�G�F�G�L��K��� ���(��	
�r%c�R�tjd�|g}dj|�S)z�
    Some behaviour of R cannot be configured via env variables, but can
    only be configured via R options once R has started. These are set here.
    z~        options(
            install.packages.compile.from.source = "never",
            pkgType = "binary"
        )
        r)rDrEr@)r�with_options  rrCrC�s2��	����	
�	
��K��9�9�[�!�!r%c�R�t||||��}tj||||��S)Nrb)�require_serial�color)rgr�	run_xargs)rrQr�	file_argsrRryrzres        r�run_hookr}s3������x�
@�C������%��	�r%)r�strrr
rr~r�
Sequence[str]rr~rr�returnr~)rr~rr
rr~rrrr~r�r~)r,r~rr
rr~r�r~)r,r~rr
rr~r��None)rr
rr~r�z
str | None)rr~r�zGenerator[str])rKr~r�r)rr
rr~r�zGenerator[None])rQ�	list[str]rr
rR�boolr�r)r�r~)rQr�r�r�)
rr
rQr~rrrRr�r�ztuple[str, ...])rr
rr~rqrr�r�)rr~r�r~)rr
rQr~rrr|rrRr�ryr�rzr�r�ztuple[int, bytes]),�
__future__r�
contextlibr>rcrmr<rD�collections.abcrr�
pre_commitr�pre_commit.envcontextrrr	�pre_commit.prefixr
�pre_commit.utilrrr6�basic_get_default_version�get_default_versionr"rr$r'r-r/r1r9�contextmanagerrrLrrSrr`rgrurCr}rr%r�<module>r�s_��"��	��
���%�$� �,�*�'�$�&�#����9�9����=?�	��	��	�!$�	�,9�	�EH�	� �	�	�		�=?������!$��,9��EH��	��=?������!$��,9��EH��	�������#��.1��	���0���	��	��������	(��	(��	(��		(�
�	(�?�
�&=��=��=��=�
�=��
=�4
��4
��4
�"/�4
�
�	4
�n"�"�������!�	��
������r%
Back to Directory File Manager