
    c                        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           | j                            d          }|                    ddd           |                    ddd           |                    dd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   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.)r   argparseArgumentParser_argument_parseradd_subparsers_subparsers
add_parseradd_argument
parse_argsconfig_get_packages_to_lint_from_jsonpackagesr   r   r	   r   )selfr   r   prepare_parser
run_parsercompare_parsercommand_classs          ?lib/python3.11/site-packages/pylint/testutils/_primer/primer.py__init__zPrimer.__init__   sq    0 ( 7_ M M M0??T @ 
 

 )44Y??##1,PU 	$ 	
 	
 	
 	##C	 	$ 	
 	
 	
 	##",	 	$ 	
 	
 	
 	##".	 	$ 	
 	
 	
 %0077
vtntBW 	  	
 	
 	

 )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    r/   r   z
Primer.run\   s    r1   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 r3   )int).0ns     r/   	<genexpr>z3Primer._minimum_python_supported.<locals>.<genexpr>d   s(       K KAQ K K K K K Kr1   .   )gettuplesplitsysversion_info)r4   min_python_strmin_python_tuples      r/   _minimum_python_supportedz Primer._minimum_python_supported_   sg    %))*:DAA 	4  K K1E1Ec1J1J K K KKK3#3BQB#777r1   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   rG   r   )r;   namer4   s      r/   
<dictcomp>z:Primer._get_packages_to_lint_from_json.<locals>.<dictcomp>j   sP       &D,33LAAm33l33  r1   )openjsonloaditems)r   fs     r/   r(   z&Primer._get_packages_to_lint_from_jsong   s    )f--- 	 *.)A,,*<*<*>*>  	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	s   0AAAN)r   r   r   r   r   r   )r   r   )r4   r5   r   r6   )r   r   r   rH   )	__name__
__module____qualname____doc__r0   r   staticmethodrG   r(   rM   r1   r/   r   r      s        33DX DX DX DXL    8 8 8 \8    \  r1   r   )
__future__r   r   rQ   rC   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   rM   r1   r/   <module>ra      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[ [ [ [ [ [ [ [ [ [r1   