o 0i @ s d Z ddlmZ ddlmZ z$ddlmZ ddlmZ ddl m Z ddl mZ G dd d eZd Z W n ey= dZ Y nw G dd d eZdS )zCdistutils.command.check Implements the Distutils 'check' command. )Command)DistutilsSetupError)Reporter)Parser)frontend)nodesc @ s" e Zd Z d ddZdd ZdS ) SilentReporterNr asciireplacec C s" g | _ t| ||||||| d S N)messagesr __init__)selfsourcereport_level halt_levelstreamdebugencoding error_handler r >/opt/alt/python310/lib64/python3.10/distutils/command/check.pyr s zSilentReporter.__init__c O s8 | j ||||f tj|g|R || j| d|S )N)leveltype)r appendr system_messageZlevels)r r messagechildrenkwargsr r r r s zSilentReporter.system_message)Nr r r )__name__ __module____qualname__r r r r r r r s r TFc @ s\ e Zd ZdZdZg dZg dZdd Zdd Zd d Z dd Z d d Zdd Zdd Z dS )checkz6This command checks the meta-data of the package. z"perform some checks on the package))metadatamzVerify meta-data)restructuredtextrzEChecks if long string meta-data syntax are reStructuredText-compliant)strictsz(Will exit with an error if a check fails)r# r% r' c C s d| _ d| _d| _d| _dS )z Sets default values for options.r N)r% r# r' _warningsr r r r initialize_options0 s zcheck.initialize_optionsc C s d S r r r+ r r r finalize_options7 s zcheck.finalize_optionsc C s | j d7 _ t| |S )z*Counts the number of warnings that occurs.r) )r* r warn)r msgr r r r. : s z check.warnc C sP | j r| | jrtr| n| jrtd| jr$| jdkr&tddS dS )zRuns the command.zThe docutils package is needed.r zPlease correct your package.N)r# check_metadatar% HAS_DOCUTILScheck_restructuredtextr' r r* r+ r r r run? s z check.runc C s | j j}g }dD ]}t||rt||s|| q|r&| dd| |jr5|js3| d dS dS |j rD|j sB| d dS dS | d dS )a Ensures that all required elements of meta-data are supplied. Required fields: name, version, URL Recommended fields: (author and author_email) or (maintainer and maintainer_email) Warns if any are missing. )nameversionZurlzmissing required meta-data: %sz, zNmissing meta-data: if 'author' supplied, 'author_email' should be supplied toozVmissing meta-data: if 'maintainer' supplied, 'maintainer_email' should be supplied toozkmissing meta-data: either (author and author_email) or (maintainer and maintainer_email) should be suppliedN)distributionr# hasattrgetattrr r. joinZauthorZauthor_emailZ maintainerZmaintainer_email)r r# Zmissingattrr r r r0 O s" zcheck.check_metadatac C sX | j }| |D ]}|d d}|du r|d }nd|d |f }| | q dS )z4Checks if the long string fields are reST-compliant.lineNr) z%s (line %s))r6 Zget_long_description_check_rst_datagetr. )r dataZwarningr<