
    -Ph                        d dl mZ d dlmZ d dlZd dlZd dlZddlm	Z	m
Z
 ddlmZmZ ddlmZmZ ej        rdd	lmZ  G d
 d          ZddZdS )    )annotations)defaultdictN   )run_tool_on_targetsrun_with_buffered_output   )buildmlog)MachineChoice
PerMachine)RustCompilerc                  &    e Zd ZddZdd	ZddZdS )ClippyDriverr	   build.Buildtempdirstrc                .   t          g g           | _        t          d           | _        || _        t
          D ][}|j        j        j        |         }d|v r>t          j
        d|d                   }|                    d|j                  | j        |<   \d S )Nc                     dS )NF r       Y/var/www/html/test/jupyter/venv/lib/python3.11/site-packages/mesonbuild/scripts/clippy.py<lambda>z'ClippyDriver.__init__.<locals>.<lambda>   s    E r   rustr   zclippy-driver)r   toolsr   warnedr   r   environmentcoredata	compilersTcastget_rust_tool)selfr	   r   machiner   compilers         r   __init__zClippyDriver.__init__   s    .8R.@.@
0;MM0J0J$ 	a 	aG)2<WEI""6.)F2CDD&.&<&<_eN_&`&`
7#		a 	ar   r#   returnNonec                h    | j         |         rd S t          j        d| d           d| j         |<   d S )Nzclippy-driver not found for z machineT)r   r
   warning)r"   r#   s     r   warn_missing_clippyz ClippyDriver.warn_missing_clippy   sD    ;w 	FEGEEEFFF#Gr   targetT.Dict[str, T.Any](T.Iterable[T.Coroutine[None, None, int]]c              #    K   |d         D ];}d|v r3|d         dk    r&t          | j        |d                   }|s|                     |d                    Nt          |          }d }d }|d         D ]C}|dk    r|                    |           |}d }n|rd }'|dv r|}.|                    |           D|d	k    r d S |                    |d
                    |                    d           |                    d           |                    d           |                    | j                   t          |          V  =d S )Ntarget_sourcesr$   languager   r#   
parameters--cap-lints>   --emit	--out-dirr2   allowsourcesr3   metadatar4   )getattrr   r*   listappendextendr   r   )r"   r+   	src_blockclippycmdlistprev	lints_capargs           r   __call__zClippyDriver.__call__"   s      01 #	8 #	8IY&&9Z+@F+J+J Yy-ABB ,,Yy-ABBBv,, 	$\2 , ,C},,t,,,$'	# !# DDD"s++++ ''EEy3444 x(((z***{+++t|,,,.w77777G#	8 #	8r   N)r	   r   r   r   )r#   r   r&   r'   )r+   r,   r&   r-   )__name__
__module____qualname__r%   r*   rB   r   r   r   r   r      sT        a a a a$ $ $ $$8 $8 $8 $8 $8 $8r   r   argsT.List[str]r&   intc                   t          j        | d                    t          j        t          j                              }t          j                    5 }t          t          ||                    cd d d            S # 1 swxY w Y   d S )Nr   )	oschdirr	   loadgetcwdtempfileTemporaryDirectoryr   r   )rF   
build_datads      r   runrR   H   s    HT!WBIKK((J		$	&	& @!"<
A#>#>??@ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @s   A==BB)rF   rG   r&   rH   )
__future__r   collectionsr   rJ   rN   typingr   run_toolr   r    r	   r
   mesonlibr   r   TYPE_CHECKINGcompilers.rustr   r   rR   r   r   r   <module>r[      s    # " " " " " # # # # # # 				      C C C C C C C C         0 0 0 0 0 0 0 0? .------58 58 58 58 58 58 58 58n@ @ @ @ @ @r   