qfc@sdZdZddlmZddlmZddlmZypddlm Z ddl m Z ddl m Z dd l mZdd lmZd e fd YZeZWnek reZnXd efdYZdS(sCdistutils.command.check Implements the Distutils 'check' command. s$Id$i(tCommand(tPKG_INFO_ENCODING(tDistutilsSetupError(tReporter(tParser(tfrontend(tnodes(tStringIOtSilentReportercBs&eZdddddZdZRS(itasciitreplacec Cs/g|_tj||||||||dS(N(tmessagesRt__init__(tselftsourcet report_levelt halt_leveltstreamtdebugtencodingt error_handler((s//usr/lib64/python2.7/distutils/command/check.pyR s cOsB|jj||||ftj|d|d|j|||S(Ntlevelttype(R tappendRtsystem_messagetlevels(R Rtmessagetchildrentkwargs((s//usr/lib64/python2.7/distutils/command/check.pyRs N(t__name__t __module__tNoneR R(((s//usr/lib64/python2.7/distutils/command/check.pyRstcheckcBsqeZdZdZdddgZdddgZd Zd Zd ZdZ dZ dZ dZ RS(s6This command checks the meta-data of the package. s"perform some checks on the packagetmetadatatmsVerify meta-datatrestructuredtexttrsEChecks if long string meta-data syntax are reStructuredText-complianttstricttss(Will exit with an error if a check failscCs(d|_d|_d|_d|_dS(s Sets default values for options.iiN(R#R!R%t _warnings(R ((s//usr/lib64/python2.7/distutils/command/check.pytinitialize_options3s   cCsdS(N((R ((s//usr/lib64/python2.7/distutils/command/check.pytfinalize_options:scCs|jd7_tj||S(s*Counts the number of warnings that occurs.i(R'Rtwarn(R tmsg((s//usr/lib64/python2.7/distutils/command/check.pyR*=scCsx|jr|jn|jrMtr2|jqM|jrMtdqMn|jrt|jdkrttdndS(sRuns the command.sThe docutils package is needed.isPlease correct your package.N(R!tcheck_metadataR#t HAS_DOCUTILStcheck_restructuredtextR%RR'(R ((s//usr/lib64/python2.7/distutils/command/check.pytrunBs     cCs|jj}g}x<dD]4}t||o:t||s|j|qqW|rt|jddj|n|jr|js|jddqn>|j r|j s|jdd qn|jd d d d S(sEnsures 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. tnametversionturlsmissing required meta-data: %ss, s)missing meta-data: if 'author' supplied, s#'author_email' must be supplied toos-missing meta-data: if 'maintainer' supplied, s''maintainer_email' must be supplied toos4missing meta-data: either (author and author_email) s%or (maintainer and maintainer_email) smust be suppliedN(snamesversionR2( t distributionR!thasattrtgetattrRR*tjointauthort author_emailt maintainertmaintainer_email(R R!tmissingtattr((s//usr/lib64/python2.7/distutils/command/check.pyR,Rs$        cCs|jj}t|ts0|jt}nxd|j|D]S}|djd}|dkrr|d}nd|d|f}|j |q@WdS(s4Checks if the long string fields are reST-compliant.itlineis %s (line %s)N( R3tget_long_descriptiont isinstancetunicodetdecodeRt_check_rst_datatgetRR*(R tdatatwarningR=((s//usr/lib64/python2.7/distutils/command/check.pyR.ps  c Cst}t}tjj}d|_d |_d |_t ||j |j d|j d|j d|jd|j}tj||d|}|j|dy|j||Wn-tk r|jjddd ifnX|jS( s8Returns warnings when the provided data doesn't compile.iRRRRRisCould not finish the parsing.tN(RRRt OptionParsertget_default_valuest tab_widthRtpep_referencestrfc_referencesRRRtwarning_streamRterror_encodingterror_encoding_error_handlerRtdocumentt note_sourcetparsetAttributeErrorR R(R RDt source_pathtparsertsettingstreporterRO((s//usr/lib64/python2.7/distutils/command/check.pyRB}s*           (smetadataR"sVerify meta-data(srestructuredtextR$sEChecks if long string meta-data syntax are reStructuredText-compliant(sstrictR&s(Will exit with an error if a check fails( RRt__doc__t descriptiont user_optionstboolean_optionsR(R)R*R/R,R.RB(((s//usr/lib64/python2.7/distutils/command/check.pyR &s       N(RWt __revision__tdistutils.coreRtdistutils.distRtdistutils.errorsRtdocutils.utilsRtdocutils.parsers.rstRtdocutilsRRRRtTrueR-t ImportErrortFalseR (((s//usr/lib64/python2.7/distutils/command/check.pyts