
     f                         d Z ddl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   )Command)DistutilsSetupErrorc                   .     e Zd Z	 	 	 	 d fd	Zd Z xZS )SilentReporterNr   asciireplacec           	      d    g | _         t                                          |||||||           d S N)messagessuper__init__)	selfsourcereport_level
halt_levelstreamdebugencodingerror_handler	__class__s	           f/var/www/api.educacionweb.es/myenv/lib/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@H $4;u+= LR  r   )Nr   r   r	   )__name__
__module____qualname__r   r    __classcell__)r   s   @r   r   r      sZ         #	 	 	 	 	 		 	 	 	 	 	 	r   r   c                   P    e Zd ZdZdZg dZg dZ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)r+   r-   r/   c                 >    d| _         d| _        d| _        d| _        dS )z Sets default values for options.r      N)r-   r+   r/   	_warningsr   s    r   initialize_optionszcheck.initialize_options:   s#     !r   c                     d S r    r4   s    r   finalize_optionszcheck.finalize_optionsA   s    r   c                 L    | xj         dz  c_         t          j        | |          S )z*Counts the number of warnings that occurs.r2   )r3   r   warn)r   msgs     r   r:   z
check.warnD   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   strr/   r3   )r   excs     r   runz	check.runI   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        }g }dD ](}t          ||d          s|                    |           )|r-|                     dd                    |          z             dS dS )zEnsures that all required elements of meta-data are supplied.

        Required fields:
            name, version

        Warns if any are missing.
        )nameversionNzmissing required meta-data: %sz, )distributionr+   getattrr   r:   join)r   r+   missingattrs       r   r=   zcheck.check_metadata\   s     $-% 	% 	%D8T400 %t$$$ 	MII679K9KKLLLLL	M 	Mr   c                    | j                                         }|                     |          D ]Y}|d                             d          }|	|d         }nd                    |d         |          }|                     |           ZdS )z4Checks if the long string fields are reST-compliant.lineNr2   z{} (line {}))rG   get_long_description_check_rst_datagetformatr:   )r   datawarningrN   s       r   r?   zcheck.check_restructuredtextn   s     5577++D11 	 	G2;??6**D|!!*(//
DAA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           	 |                    ||           n8# t.          $ r+}|j                            dd|z  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   rM   z!Could not finish the parsing: %s. )rG   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AttributeErrorr   r   )r   rS   source_pathparsersettingsreporterrf   es           r   rP   zcheck._check_rst_datay   sz    '3Az!%,,..$11 (,35 2 
 




 	 "&"&!!*.,"?
 
 
 >**8Xk*RR["---	LLx(((( 	 	 	$$81<b"E       	
   s   ;D 
E!EEN)r%   r&   r'   __doc__descriptionuser_optionsboolean_optionsr5   r8   r:   rC   r=   r?   rP   r7   r   r   r*   r*   '   s        ;;6K  L A@@O    ' ' '
F F F&M M M$	 	 	! ! ! ! !r   r*   )ro   
contextlibcorer   errorsr   suppressImportErrordocutils.utilsr   docutils.parsers.rstdocutils.frontenddocutils.nodesutilsReporterr   r*   r7   r   r   <module>r~      sF              ( ( ( ( ( (Z%%      0                 :p! p! p! p! p!G p! p! p! p! p!s   )AAA