
    5hR                         d Z ddlZddlmZ ddlmZ ddlmZ  ej        e	          5  ddl
ZddlZddlZddlZ G d dej        j                  Zddd           n# 1 swxY w Y    G d	 d
e          ZdS )zCdistutils.command.check

Implements the Distutils 'check' command.
    N)ClassVar   )Command)DistutilsSetupErrorc                   .     e Zd Z	 	 	 	 d fd	Zd Z xZS )SilentReporterNFasciireplacec           	      d    g | _         t                                          |||||||           d S N)messagessuper__init__)	selfsourcereport_level
halt_levelstreamdebugencodingerror_handler	__class__s	           Clib/python3.11/site-packages/setuptools/_distutils/command/check.pyr   zSilentReporter.__init__   sA     DMGGj&%=        c                     | j                             ||||f           t          j        j        |g|R || j        |         d|S )N)leveltype)r   appenddocutilsnodessystem_messagelevels)r   r   messagechildrenkwargss        r   r!   zSilentReporter.system_message"   sf    M  %(F!CDDD>0" */dk%6H LR  r   )NFr	   r
   )__name__
__module____qualname__r   r!   __classcell__)r   s   @r   r   r      sZ         #	 	 	 	 	 		 	 	 	 	 	 	r   r   c                       e Zd ZU dZdZg dZeeee	e	e	f                           e
d<   g dZeee	                  e
d<   d Zd Zd	 Zd
 Zd Zd Zd ZdS )checkz1This command checks the meta-data of the package.z"perform some checks on the package))metadatamzVerify meta-data)restructuredtextrzEChecks if long string meta-data syntax are reStructuredText-compliant)strictsz(Will exit with an error if a check failsuser_options)r,   r.   r0   boolean_optionsc                 >    d| _         d| _        d| _        d| _        dS )z Sets default values for options.F   r   N)r.   r,   r0   	_warningsr   s    r   initialize_optionszcheck.initialize_options9   s#     %r   c                     d S r    r7   s    r   finalize_optionszcheck.finalize_options@   s    r   c                 L    | xj         dz  c_         t          j        | |          S )z*Counts the number of warnings that occurs.r5   )r6   r   warn)r   msgs     r   r=   z
check.warnC   s$    !|D#&&&r   c                 d   | j         r|                                  | j        rjdt                      v rD	 |                                  nD# t
          $ r!}t          t          |                    d}~ww xY w| j        rt          d          | j        r| j	        dk    rt          d          dS dS )zRuns the command.r   NzThe docutils package is needed.r   zPlease correct your package.)
r,   check_metadatar.   globalscheck_restructuredtext	TypeErrorr   strr0   r6   )r   excs     r   runz	check.runH   s     = 	"!!!  	MWYY&&8//1111  8 8 8-c#hh7778 M)*KLLL ; 	F4>A--%&DEEE	F 	F--s   A	 	
A4A//A4c                     | j         j        fddD             }|r=|                     d                    d                    |                               dS dS )zEnsures that all required elements of meta-data are supplied.

        Required fields:
            name, version

        Warns if any are missing.
        c                 6    g | ]}t          |d           |S r   )getattr).0attrr,   s     r   
<listcomp>z(check.check_metadata.<locals>.<listcomp>e   s;     
 
 
$PT8U8U

 
 
r   )nameversionzmissing required meta-data: {}z, N)distributionr,   r=   formatjoin)r   missingr,   s     @r   r@   zcheck.check_metadata[   s     $-
 
 
 
0
 
 
  	SII6==dii>P>PQQRRRRR	S 	Sr   c                     | j                                         }|                     |          D ]K}|d                             d          }|	|d         }n|d          d| d}|                     |           LdS )z4Checks if the long string fields are reST-compliant.lineNr5   z (line ))rO   get_long_description_check_rst_datagetr=   )r   datawarningrU   s       r   rB   zcheck.check_restructuredtextl   s     5577++D11 	 	G2;??6**D|!!*$QZ77777IIg	 	r   c           	         | j         j        pd}t          j        j                                        }t          j                            t          j        j        j        f                                          }d|_	        d|_
        d|_        t          ||j        |j        |j        |j        |j        |j                  }t          j                            |||          }|                    |d           	 |                    ||           n@# t.          t0          f$ r,}|j                            dd| d	d
i f           Y d}~nd}~ww xY w|j        S )z8Returns warnings when the provided data doesn't compile.zsetup.py)
components   N)r   r   r   r   )r   rT   zCould not finish the parsing: . )rO   script_namer   parsersrstParserfrontendOptionParserget_default_values	tab_widthpep_referencesrfc_referencesr   r   r   warning_streamr   error_encodingerror_encoding_error_handlerr    documentnote_sourceparseAttributeErrorrC   r   r   )r   rZ   source_pathparsersettingsreporterrn   es           r   rX   zcheck._check_rst_dataw   s    '3Az!%,,..$11 (,35 2 
 




 	 "&"&!!*.,"?
 
 
 >**8Xk*RR["---	LLx((((	* 	 	 	$$5555	&        	   s   ;D E#"E

EN)r&   r'   r(   __doc__descriptionr2   r   listtuplerD   __annotations__r3   r8   r;   r=   rF   r@   rB   rX   r:   r   r   r+   r+   )   s         ;;6K: : :L(4c3m 456    ,V+U+UOXd3i(UUU    ' ' '
F F F&S S S"	 	 	!! !! !! !! !!r   r+   )rw   
contextlibtypingr   corer   errorsr   suppressImportErrordocutils.frontendr   docutils.nodesdocutils.parsers.rstdocutils.utilsutilsReporterr   r+   r:   r   r   <module>r      sX   
                 ( ( ( ( ( (Z%%      0                 :o! o! o! o! o!G o! o! o! o! o!s   )AA"%A"