
    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 d dlmZ  G d	 d
          ZdS )    )annotationsN)Path)PackageToLint)PrimerCommand)CompareCommand)PrepareCommand)
RunCommandc                  R    e Zd ZdZddZddZedd            Zedd            ZdS )Primerz)Main class to handle priming of packages.primer_directoryr   	json_pathreturnNonec                   || _         t          j        d          | _        | j                            dd          | _        | j                            d          }|                    ddd	d
           |                    ddd	d
           |                    ddd	d
           |                    ddd	d
           | j                            d          }|                    dddgdd           |                    dd
t          d           |                    dd
t          d           | j                            d          }|                    ddd            |                    d!dd"            |                    d#dd$            |                    dd
t          d%           | j        	                                | _
        |                     |          | _        	 | j
        j        dk    rt          }n/| j
        j        dk    rt          }n| j
        j        dk    rt           } || j         | j        | j
                  | _        d S )&NzPylint Primer)progcommandT)destrequiredpreparez--clonezClone all packages.
store_trueF)helpactiondefaultz--checkz0Check consistencies and commits of all packages.z--make-commit-stringzGet latest commit string.z--read-commit-stringzPrint latest commit string.runz--typemainprzType of primer run.)choicesr   r   z	--batcheszNumber of batches)r   typer   z
--batchIdxz"Portion of primer packages to run.comparez--base-filez(Location of output file of the base run.)r   r   z
--new-filez'Location of output file of the new run.z--commitz+Commit hash of the PR commit being checked.zLNumber of batches (filepaths with the placeholder BATCHIDX will be numbered))r   argparseArgumentParser_argument_parseradd_subparsers_subparsers
add_parseradd_argumentint
parse_argsconfig_get_packages_to_lint_from_jsonpackagesr   r   r	   r   )selfr   r   prepare_parser
run_parsercompare_parsercommand_classs          S/var/www/piapp/venv/lib/python3.11/site-packages/pylint/testutils/_primer/primer.py__init__zPrimer.__init__   s    0 ( 7_ M M M0??T @ 
 

 )44Y??##1,PU 	$ 	
 	
 	
 	##C	 	$ 	
 	
 	
 	##",	 	$ 	
 	
 	
 	##".	 	$ 	
 	
 	
 %0077
vtntBW 	  	
 	
 	
 	$	 	  	
 	
 	
 	5	 	  	
 	
 	
 )44Y??##; 	$ 	
 	
 	

 	##: 	$ 	
 	
 	

 	##> 	$ 	
 	
 	

 	##_	 	$ 	
 	
 	
 +6688<<YGG$;)++1?MM[ E))&MM[ I--*M$}T%:DM4;WW    c                8    | j                                          d S N)r   r   )r,   s    r1   r   z
Primer.runn   s    r3   package_datadict[str, str]boolc                    |                      dd           }|sdS t          d |                    d          D                       }|t          j        d d         k    S )Nminimum_pythonTc              3  4   K   | ]}t          |          V  d S r5   )r'   ).0ns     r1   	<genexpr>z3Primer._minimum_python_supported.<locals>.<genexpr>v   s(       K KAQ K K K K K Kr3   .   )gettuplesplitsysversion_info)r6   min_python_strmin_python_tuples      r1   _minimum_python_supportedz Primer._minimum_python_supportedq   sg    %))*:DAA 	4  K K1E1Ec1J1J K K KKK3#3BQB#777r3   dict[str, PackageToLint]c                    t          | d          5 }d t          j        |                                          D             cd d d            S # 1 swxY w Y   d S )Nutf8)encodingc                b    i | ],\  }}t                               |          |t          d i |-S ) )r   rH   r   )r<   namer6   s      r1   
<dictcomp>z:Primer._get_packages_to_lint_from_json.<locals>.<dictcomp>|   sP       &D,33LAAm33l33  r3   )openjsonloaditems)r   fs     r1   r*   z&Primer._get_packages_to_lint_from_jsony   s    )f--- 	 *.)A,,*<*<*>*>  	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	s   0AAAN)r   r   r   r   r   r   )r   r   )r6   r7   r   r8   )r   r   r   rI   )	__name__
__module____qualname____doc__r2   r   staticmethodrH   r*   rN   r3   r1   r   r      s        33VX VX VX VXp    8 8 8 \8    \  r3   r   )
__future__r   r    rR   rD   pathlibr   pylint.testutils._primerr   'pylint.testutils._primer.primer_commandr   /pylint.testutils._primer.primer_compare_commandr   /pylint.testutils._primer.primer_prepare_commandr   +pylint.testutils._primer.primer_run_commandr	   r   rN   r3   r1   <module>rb      s   
 # " " " " "   



       2 2 2 2 2 2 A A A A A A J J J J J J J J J J J J B B B B B Bm m m m m m m m m mr3   