
    e                        d dl m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mZ d dlmZ d d	lmZmZmZ d
ZdZ G d de      Zy)    )annotationsN)StringIO)Repo)Run)Message)JSONReporterOldJsonExport)PackageToLint)PackageDataPackageMessagesPrimerCommandz/home/runner/.cachezThere is a pre-filled templatec                  T    e Zd ZddZe	 	 	 	 dd       Zedd       Z	 	 	 	 	 	 d	dZy)

RunCommandc                   i }g }| j                   j                  | j                  j                         nPt	        | j                  j                               | j                   j
                  d | j                   j                     }|D ]b  \  }}| j                  ||      \  }}||z  }t        |j                        j                  j                  j                  }t        ||      ||<   d | j                  ddj                  d t        j                   d d D               d| j                   j"                   | j                   j                  rd| j                   j
                   dnd	z   z  }	t%        d
|	        t'        |	dd      5 }
t)        j*                  ||
       d d d        | j                   j"                  dk(  r,t-        |      dkD  rdnd	}|rJ dt-        |       d| d       y y # 1 sw Y   OxY w)N)commitmessagesoutput_.c              3  2   K   | ]  }t        |        y w)N)str).0is     M/usr/lib/python3/dist-packages/pylint/testutils/_primer/primer_run_command.py	<genexpr>z!RunCommand.run.<locals>.<genexpr>-   s     D!s1vDs      __batchz.txt zWriting result in wzutf-8)encodingpr   szWe encountered z fatal error messagez (see log).)configbatchespackagesitemslistbatchIdx_lint_packager   clone_directoryheadobjecthexshar   primer_directoryjoinsysversion_infotypeprintopenjsondumplen)selfr&   
fatal_msgspackage_data_iterpackagedatar   p_fatal_msgslocal_commitpathfplurals               r   runzRunCommand.run   s   $&$&
 {{""* MM!dmm))+,$$;(;(;; 	 / 	TMGT%)%7%7%F"Hl,&J 4 45::AAHHL +<( SHW		T
 $$chhDs/?/?/CDDEQt{{GWGWFXY6:kk6I6I,,-T2rS
 	"4&)*$g. 	#!IIh"	# ;;t#
Oa/SRFZ Z 11EfX[YZJ $	# 	#s   G11G:c                    g }| D ]q  }t        j                  |      }|j                  dk(  s(t        |j                  v r'|j                  j                  t              d   |_        |j                  |       s |S )z:Separate fatal errors so we can report them independently.fatalr   )r   deserializecategoryGITHUB_CRASH_TEMPLATE_LOCATIONmsgrsplitCRASH_TEMPLATE_INTROappend)r   r:   raw_messagemessages       r   _filter_fatal_errorszRunCommand._filter_fatal_errors:   sv    
 %'
# 	+K"..{;G7*1W[[@ #*++"4"45I"J1"MGK!!'*	+     c                2    dj                  d | D              S )N
c              3  L   K   | ]  }d t        j                  |         yw)z- N)r   	serialize)r   ms     r   r   z)RunCommand._print_msgs.<locals>.<genexpr>L   s#     Ha2l44Q789Hs   "$)r0   )msgss    r   _print_msgszRunCommand._print_msgsJ   s    yyH4HHHrP   c                (   ddg}dg}dg}|j                   |z   |z   |z   }t               }t        |      }t        ddj	                  |       d       d}		 t        ||	       |j                         }t        j                  |      }g }|	d
z  dk(  rt        d| d       ||fS | j                  |      }|r-t        j                  d| d| j                  |       dd
       ||fS # t        $ r}
t        |
j                        }	Y d }
~
d }
~
ww xY w)Nz--enable-all-extensionsz--enable=allz&--disable=duplicate-code,cyclic-importz--clear-cache-post-run=yzRunning 'pylint z, ')reporter   r   zSuccessfully primed r   z'Encountered fatal errors while priming z !
z

)
stacklevel)pylint_argsr   r   r4   r0   r   
SystemExitintcodegetvaluer6   loadsrO   warningswarnrW   )r9   package_namer=   enablesdisables
additional	argumentsoutputr[   pylint_exit_codeereadable_messagesr   r:   s                 r   r*   zRunCommand._lint_packageN   s=    -n= ==01
$$w.9JF	' 9!5 6a89	+	H- "(!2(,

3D(E$&
a1$(a89 ## 228<J=l^4''
34D: 
 ##  	+"166{	+s   C) )	D2DDN)returnNone)r   zlist[OldJsonExport]ro   list[Message])rV   rq   ro   r   )rf   r   r=   r
   ro   z)tuple[list[OldJsonExport], list[Message]])__name__
__module____qualname__rC   staticmethodrO   rW   r*    rP   r   r   r      s_    Z: %	  I I$$'4$	2$rP   r   )
__future__r   r6   r1   rd   ior   git.repor   pylint.lintr   pylint.messager   pylint.reporters.json_reporterr   r	   (pylint.testutils._primer.package_to_lintr
   'pylint.testutils._primer.primer_commandr   r   r   rH   rK   r   rv   rP   r   <module>r      sK   
 #  
     " F B  "7 7 Q$ Q$rP   