
    yIf                        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dS )    )annotationsN)StringIO)Repo)Run)Message)JSONReporterOldJsonExport)PackageToLint)PackageDataPackageMessagesPrimerCommandz/home/runner/.cachezThere is a pre-filled templatec                  N    e Zd ZddZedd            Zedd
            ZddZdS )
RunCommandreturnNonec                   i }g }| j         j        | j                                        nBt	          | j                                                  | j         j        d | j         j                 }|D ]Z\  }}|                     ||          \  }}||z  }t          |j                  j	        j
        j        }t          ||          ||<   [| j        dd                    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            n# 1 swxY w Y   | j         j        dk    r7t-          |          dk    rdnd	}|r J dt-          |           d| d            d S d S )N)commitmessagesoutput_.c              3  4   K   | ]}t          |          V  d S )N)str).0is     _/var/www/piapp/venv/lib/python3.11/site-packages/pylint/testutils/_primer/primer_run_command.py	<genexpr>z!RunCommand.run.<locals>.<genexpr>-   s(      DD!s1vvDDDDDD       __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   sX   $&$&
 {"* M!!!dm))++,,$;(;; 	 / 	T 	TMGT%)%7%7%F%F"Hl,&J 455:AHL +<( S S SHW$YchhDDs/?/CDDDDDYYt{GWYY6:k6IQ2,2222rS
 	)4))***$g... 	#!Ih"""	# 	# 	# 	# 	# 	# 	# 	# 	# 	# 	# 	# 	# 	# 	# ;t##
OOa//SSRFZ ZYZYYfYYYZ Z Z $#Z Zs   E88E<?E<r   list[OldJsonExport]list[Message]c                    g }| D ]n}t          j        |          }|j        dk    rMt          |j        v r*|j                            t                    d         |_        |                    |           o|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:   s}    
 %'
# 	+ 	+K".{;;G7**1W[@@ #*+"4"45I"J"J1"MGK!!'***r   msgsr   c                @    d                     d | D                       S )N
c              3  D   K   | ]}d t          j        |           V  dS )z- N)r   	serialize)r   ms     r   r   z)RunCommand._print_msgs.<locals>.<genexpr>L   s6      HHa9l4Q7799HHHHHHr   )r3   )rU   s    r   _print_msgszRunCommand._print_msgsJ   s#    yyHH4HHHHHHr   package_namer@   r
   )tuple[list[OldJsonExport], list[Message]]c                `   ddg}dg}dg}|j         |z   |z   |z   }t                      }t          |          }t          dd                    |           d           d}		 t          ||	           n+# t          $ r}
t          |
j                  }	Y d }
~
nd }
~
ww xY w|	                                }t          j        |          }g }|	d
z  dk    rt          d| d           nG|                     |          }|r0t          j        d| d|                     |           dd
           ||fS )Nz--enable-all-extensionsz--enable=allz&--disable=duplicate-code,cyclic-importz--clear-cache-post-run=yzRunning 'pylint z, ')reporterr   r   zSuccessfully primed r   z'Encountered fatal errors while priming z !
z

)
stacklevel)pylint_argsr   r   r7   r3   r   
SystemExitintcodegetvaluer9   loadsrT   warningswarnr[   )r<   r\   r@   enablesdisables
additional	argumentsoutputra   pylint_exit_codeereadable_messagesr   r=   s                 r   r-   zRunCommand._lint_packageN   s    -n= ==01
$w.9JF	''89!5!5888999	+	H----- 	+ 	+ 	+"16{{	+!'!2!2(,
3D(E(E$&
a1$$88889999228<<J :l : :''
33: : :    
 ##s   !A3 3
B=BBN)r   r   )r   rG   r   rH   )rU   rH   r   r   )r\   r   r@   r
   r   r]   )__name__
__module____qualname__rF   staticmethodrT   r[   r-    r   r   r   r      s        Z Z Z Z:    \ I I I \I$ $ $ $ $ $r   r   )
__future__r   r9   r4   ri   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   rM   rP   r   rw   r   r   <module>r      s$  
 # " " " " "  



                    " " " " " " F F F F F F F F B B B B B B          "7 7 Q$ Q$ Q$ Q$ Q$ Q$ Q$ Q$ Q$ Q$r   