
    wi                    |   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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 dlmZ  ed          Z ed          Zd/dZd0d1dZd/dZd2dZ G d de          Z	 d0d3d!Z ej!        d4d$            Z"d%d& e            d'd5d.Z#dS )6    )annotationsN)Callable)	Generator)Iterable)MutableMapping)Sequence)Any)TypeVar)parse_shebang)cmd_output_b)cmd_output_pTArgTRetreturnintc                     	 t          t          j        d                    S # t          $ r Y nw xY w	 t	          j                    S # t          $ r Y dS w xY w)Nr      )lenossched_getaffinityAttributeErrormultiprocessing	cpu_countNotImplementedError     `/root/.openclaw/workspace/chatterbox_venv_py311/lib/python3.11/site-packages/pre_commit/xargs.pyr   r      sx     2'**+++   (***   qqs    # 
00A 
AA_envMutableMapping[str, str] | Nonec                    | | nt          t          dt          j                  }dt          |          z  }|                                D ]*\  }}|t          |          t          |          z   dz   z  }+|S )Nenvironb      )getattrr   environr   items)r   r%   sizekvs        r   _environ_sizer*   )   so    &ddGB
BJ,O,OGs7||D $ $1AQ!##Kr   c                     t           j        dk    rFt          j        d          dz
  t                      z
  } t	          t          | d          d          } | S t           j        dk    rdS dS )Nposix
SC_ARG_MAXi   i   i   nti x  )r   namesysconfr*   maxmin)maximums    r   _get_platform_max_lengthr4   1   sa    	w'*\**T1MOOCc'7++W55	D~ wr   cmdstrc                     d                     |           }t          j        dk    r%t          |                    d                    dz  S t          |                    t          j                                        S )N win32zutf-16ler#   )joinsysplatformr   encodegetfilesystemencoding)r5   full_cmds     r   _command_lengthr@   =   sb    xx}}H |w8??:..//1448??3#<#>#>??@@@r   c                      e Zd ZdS )ArgumentTooLongErrorN)__name__
__module____qualname__r   r   r   rB   rB   H   s        Dr   rB   Sequence[str]varargstarget_concurrency_max_length
int | Nonetuple[tuple[str, ...], ...]c                   |pt                      }t          dt          j        t	          |          |z                      }t          |           } g }g }t          t          |                    }t          |  dz   }|r|	                                }t          |          dz   }	||	z   |k    r.t	          |          |k     r|
                    |           ||	z  }nY|st          |          |
                    | t          |          z              g }t          |  dz   }|
                    |           ||
                    | t          |          z              t          |          S )N   r   )r4   r1   mathceilr   tuplelistreversedr@   popappendrB   )
r5   rG   rH   rI   max_argsretret_cmdtotal_lengtharg
arg_lengths
             r   	partitionr[   L   sk    ;!9!;!;K 1diG/A ABBCCH
**C
CG8G$$%%G"C(1,L
  kkmm$S))A-
z)[88Gx''NN3J&LL 	 &s+++ JJsU7^^+,,,G*C014LNN3#   & JJsU7^^#$$$::r   maxsizeNGenerator[Callable[[Callable[[TArg], TRet], Iterable[TArg]], Iterable[TRet]],]c              #     K   | dk    rt           V  d S t          j                            |           5 }|j         V  d d d            d S # 1 swxY w Y   d S )Nr   )map
concurrentfuturesThreadPoolExecutor)r\   exs     r   _thread_mapperrd   x   s       !||					227;; 	r&LLL	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	s   
A

AAFr   )colorrH   rI   tuple[str, ...]re   boolkwargsr	   tuple[int, bytes]c                  |rt           nt          d}d}	 t          j        |           } n8# t          j        $ r&}|                                dd         cY d}~S d}~ww xY wt          j        dk    rf| d                                         	                    d          r9t          j
        d          }	dt          |	          z
  t          d	          z
  d
z
  }t          | |||          }
dfd}t          t          |
          |          }t          |          5 } |||
          }|D ]-\  }}}t          |          t          |          k    r|}||z  }.	 ddd           n# 1 swxY w Y   ||fS )zA simplified implementation of xargs.

    color: Make a pty if on a platform that supports it
    target_concurrency: Target number of partitions to run concurrently
    r   r   Nr#   r9   )z.batz.cmdzcmd.exei    z /c i   run_cmdrf   r   tuple[int, bytes, bytes | None]c                .     | dt           j        dS )NF)checkstderr)
subprocessSTDOUT)rk   cmd_fnrh   s    r   run_cmd_partitionz xargs.<locals>.run_cmd_partition   s0     vE**;
 
?E
 
 	
r   )rk   rf   r   rl   )r   r   r   normalize_cmdExecutableNotFoundError	to_outputr;   r<   lowerendswithfind_executabler   r[   r2   rd   abs)r5   rG   re   rH   rI   rh   retcodestdoutecmd_exe
partitionsrs   threads
thread_mapresultsproc_retcodeproc_out_rr   s        `            @r   xargsr      s    #4\\FGF!)#..0 ! ! !{{}}RaR       !
 LG##FLLNN##$455 $
  /	:: S\\)CKK7$>3);[IIJ
 
 
 
 
 
 
 #j//#566G		 	  J*.
;;)0 	 	%L(A<  3w<<//&hFF	               F?s,   - A"AA"A" =E**E.1E.)r   r   )N)r   r   r   r   )r5   r6   r   r   )
r5   rF   rG   rF   rH   r   rI   rJ   r   rK   )r\   r   r   r]   )r5   rf   rG   rF   re   rg   rH   r   rI   r   rh   r	   r   ri   )$
__future__r   concurrent.futuresr`   
contextlibrN   r   r   rp   r;   collections.abcr   r   r   r   r   typingr	   r
   
pre_commitr   pre_commit.utilr   r   r   r   r   r*   r4   r@   RuntimeErrorrB   r[   contextmanagerrd   r   r   r   r   <module>r      s2   " " " " " "              				     



 $ $ $ $ $ $ % % % % % % $ $ $ $ $ $ * * * * * * $ $ $ $ $ $             $ $ $ $ $ $ ( ( ( ( ( ( ( ( ( ( ( (wvwv       	 	 	 	A A A A	 	 	 	 	< 	 	 	 #'	) ) ) ) )X     "#33555 5 5 5 5 5 5 5r   