B 11b@sdZddlmZddlmZyTddlmZddlmZddl m Z ddl m Z ddl m Z Gd d d eZd ZWnek rd ZYnXGd ddeZdS)zCdistutils.command.check Implements the Distutils 'check' command. )Command)DistutilsSetupError)Reporter)Parser)frontend)nodes)StringIOc@seZdZd ddZddZdS) SilentReporterNrasciireplacec Cs"g|_t||||||||dS)N)messagesr__init__)selfsource report_level halt_levelstreamdebugencoding error_handlerr:/opt/alt/python37/lib/python3.7/distutils/command/check.pyr szSilentReporter.__init__cOs6|j||||ftj|f|||j|d|S)N)leveltype)r appendrsystem_messageZlevels)rrmessageZchildrenkwargsrrrrszSilentReporter.system_message)Nrr r )__name__ __module__ __qualname__r rrrrrr s r TFc@s`eZdZdZdZdddgZdddgZd d Zd d Zd dZ ddZ ddZ ddZ ddZ 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 failsr"r$r&cCsd|_d|_d|_d|_dS)z Sets default values for options.rN)r$r"r& _warnings)rrrrinitialize_options1szcheck.initialize_optionscCsdS)Nr)rrrrfinalize_options8szcheck.finalize_optionscCs|jd7_t||S)z*Counts the number of warnings that occurs.r()r)rwarn)rmsgrrrr,;sz check.warncCsL|jr||jr0tr"|n|jr0td|jrH|jdkrHtddS)zRuns the command.zThe docutils package is needed.rzPlease correct your package.N)r"check_metadatar$ HAS_DOCUTILScheck_restructuredtextr&rr))rrrrrun@s z check.runcCs|jj}g}x*dD]"}t||r*t||s||qW|rP|dd||jrh|js|dn"|j r|j s|dn |ddS)zEnsures that all required elements of meta-data are supplied. name, version, URL, (author and author_email) or (maintainer and maintainer_email)). Warns if any are missing. )nameversionZurlzmissing required meta-data: %sz, zLmissing meta-data: if 'author' supplied, 'author_email' must be supplied toozTmissing meta-data: if 'maintainer' supplied, 'maintainer_email' must be supplied toozimissing meta-data: either (author and author_email) or (maintainer and maintainer_email) must be suppliedN) distributionr"hasattrgetattrrr,joinZauthorZ author_emailZ maintainerZmaintainer_email)rr"Zmissingattrrrrr.Ps   zcheck.check_metadatacCs\|j}xL||D]>}|dd}|dkr:|d}nd|d|f}||qWdS)z4Checks if the long string fields are reST-compliant.lineNr(z %s (line %s))r4Zget_long_description_check_rst_datagetr,)rdataZwarningr:rrrr0ns  zcheck.check_restructuredtextc Cs|jjp d}t}tjtfd}d|_d|_d|_t ||j |j |j |j |j|jd}tj|||d}||dy|||Wn:tk r}z|jdd|d ifWdd}~XYnX|jS) z8Returns warnings when the provided data doesn't compile.zsetup.py)Z componentsN)rrrr)rr9z!Could not finish the parsing: %s.)r4Z script_namerrZ OptionParserZget_default_valuesZ tab_widthZpep_referencesZrfc_referencesr rrZwarning_streamrZerror_encodingZerror_encoding_error_handlerrdocumentZ note_sourceparseAttributeErrorr r)rr= source_pathparserZsettingsZreporterr@errrr;ys*   $zcheck._check_rst_dataN)rrr __doc__Z descriptionZ user_optionsZboolean_optionsr*r+r,r1r.r0r;rrrrr!$s  r!N)rFZdistutils.corerZdistutils.errorsrZdocutils.utilsrZdocutils.parsers.rstrZdocutilsrriorr r/ Exceptionr!rrrrs