\ddZddlmZddlmZ ddlmZddlmZddl m Z ddl m Z Gdd eZ d Z n #e$rd Z YnwxYwGd d eZdS)zCdistutils.command.check Implements the Distutils 'check' command. )Command)DistutilsSetupError)Reporter)Parser)frontend)nodesc eZdZ ddZdZdS)SilentReporterNrasciireplacec Jg|_tj||||||||dSN)messagesr__init__)selfsource report_level halt_levelstreamdebugencoding error_handlers (..\python\lib\distutils\command\check.pyrzSilentReporter.__init__s9DM  dFL*f#X} > > > > >c|j||||ftj|g|R||j|d|S)N)leveltype)rappendrsystem_messagelevels)rrmessagechildrenkwargss rrzSilentReporter.system_messagesc M %(F!C D D D'=)1==u-1[-?==5;== =r)Nrr r )__name__ __module__ __qualname__rrrrr r s=DH>G > > > >  = = = = =rr TFcPeZdZdZdZgdZgdZdZdZdZ dZ d Z d Z d Z d S) 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>d|_d|_d|_d|_dS)z Sets default values for options.rN)r,r*r. _warningsrs rinitialize_optionszcheck.initialize_options0s# !  rcdSrr'r3s rfinalize_optionszcheck.finalize_options7s rcL|xjdz c_tj||S)z*Counts the number of warnings that occurs.r1)r2rwarn)rmsgs rr8z check.warn:s$ !|D#&&&rc|jr||jr2tr|n|jrt d|jr|jdkrt ddSdS)zRuns the command.zThe docutils package is needed.rzPlease correct your package.N)r*check_metadatar, HAS_DOCUTILScheck_restructuredtextr.rr2r3s rrunz check.run?s = "    ! ! !   M M++---- M)*KLLL ; F4>A--%&DEE E F F--rc|jj}g}dD]7}t||rt||s||8|r+|dd|z|jr |js|ddSdS|j r |j s|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. )nameversionurlzmissing 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*hasattrgetattrrr8joinauthor author_email maintainermaintainer_email)rr*missingattrs rr;zcheck.check_metadataOsJ$-. % %DHd++ %$0G0G %t$$$  N II6$))G:L:LL M M M ? ,( C BCCCCC C C  ,, G FGGGGG G G II+ , , , , ,rc|j}||D]K}|dd}| |d}n|dd|d}||LdS)z4Checks if the long string fields are reST-compliant.lineNr1z (line ))rCget_long_description_check_rst_datagetr8)rdatawarningrOs rr=zcheck.check_restructuredtextps 5577++D11  G2;??6**D|!!*,3AJJJ= IIg       rc .|jjpd}t}tjtf}d|_d|_d|_t||j |j |j |j |j|j}t!j|||}||d |||n8#t($r+}|jdd|zd ifYd}~nd}~wwxYw|jS) z8Returns warnings when the provided data doesn't compile.zsetup.py) componentsN)rrrr)rrNz!Could not finish the parsing: %s.)rC script_namerr OptionParserget_default_values tab_widthpep_referencesrfc_referencesr rrwarning_streamrerror_encodingerror_encoding_error_handlerrdocument note_sourceparseAttributeErrorrr)rrT source_pathparsersettingsreporterrces rrRzcheck._check_rst_data{sY'3Az (VI>>>QQSS"&"&!+"/"-!)!8 (#+#:(0(M OOO>(H[III["--- G LLx ( ( ( ( G G G   $ $81r;r=rRr'rrr)r)#s7KBBBLA@@O   ''' FFF ,,,B   !!!!!rr)N)rldistutils.corerdistutils.errorsrdocutils.utilsrdocutils.parsers.rstrdocutilsrrr r< Exceptionr)r'rrrvs#"""""000000''''''++++++!!!!!! = = = = = = = =LLLLL q!q!q!q!q!Gq!q!q!q!q!s(9AA