o ?Og@sdZddlmZddlmZz$ddlmZddlmZddl m Z ddl m Z Gdd d eZ d Z Wn ey=d Z YnwGd d d eZdS)zCdistutils.command.check Implements the Distutils 'check' command. )Command)DistutilsSetupError)Reporter)Parser)frontend)nodesc@s"eZdZ  d ddZddZdS) SilentReporterNrasciireplacec Cs"g|_t||||||||dSN)messagesr__init__)selfsource report_level halt_levelstreamdebugencoding error_handlerr>/opt/alt/python310/lib64/python3.10/distutils/command/check.pyr szSilentReporter.__init__cOs8|j||||ftj|g|R||j|d|S)N)leveltype)r appendrsystem_messageZlevels)rrmessagechildrenkwargsrrrrszSilentReporter.system_message)Nrr r )__name__ __module__ __qualname__r rrrrrrs  rTFc@s\eZdZdZdZgdZgdZddZddZd d Z d d Z d dZ 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 fails)r#r%r'cCsd|_d|_d|_d|_dS)z Sets default values for options.rN)r%r#r' _warningsrrrrinitialize_options0s zcheck.initialize_optionscCsdSr rr+rrrfinalize_options7szcheck.finalize_optionscCs|jd7_t||S)z*Counts the number of warnings that occurs.r))r*rwarn)rmsgrrrr.:s z check.warncCsP|jr||jrtr|n|jrtd|jr$|jdkr&tddSdS)zRuns the command.zThe docutils package is needed.rzPlease correct your package.N)r#check_metadatar% HAS_DOCUTILScheck_restructuredtextr'rr*r+rrrrun?s z check.runcCs|jj}g}dD]}t||rt||s||q|r&|dd||jr5|js3|ddSdS|j rD|j sB|ddSdS|ddS)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#hasattrgetattrrr.joinZauthorZ author_emailZ maintainerZmaintainer_email)rr#Zmissingattrrrrr0Os"  zcheck.check_metadatacCsX|j}||D]}|dd}|dur|d}nd|d|f}||q dS)z4Checks if the long string fields are reST-compliant.lineNr)z %s (line %s))r6Zget_long_description_check_rst_datagetr.)rdataZwarningr<rrrr2ps   zcheck.check_restructuredtextc Cs|jjpd}t}tjtfd}d|_d|_d|_t ||j |j |j |j |j|jd}tj|||d}||dz |||W|jStyd}z|jdd|d ifWYd}~|jSd}~ww) z8Returns warnings when the provided data doesn't compile.zsetup.py)Z componentsN)rrrr)rr;z!Could not finish the parsing: %s.)r6Z script_namerrZ OptionParserZget_default_valuesZ tab_widthZpep_referencesZrfc_referencesrrrZwarning_streamrZerror_encodingZerror_encoding_error_handlerrdocumentZ note_sourceparseAttributeErrorr r)rr? source_pathparserZsettingsZreporterrBerrrr={s4  zcheck._check_rst_dataN)rr r!__doc__ descriptionZ user_optionsZboolean_optionsr,r-r.r3r0r2r=rrrrr"#s! r"N)rHZdistutils.corerZdistutils.errorsrZdocutils.utilsrZdocutils.parsers.rstrZdocutilsrrrr1 Exceptionr"rrrrs