ó ½z]c@s÷dZdZddlZddlZddlZddlmZmZm Z m Z ddl m Z ddl mZddlmZddlmZd „Zd efd „ƒYZd efd „ƒYZdefd„ƒYZdefd„ƒYZdS(s Directives for table elements. treStructuredTextiÿÿÿÿN(tiotnodest statemachinetutils(t SafeString(tSystemMessagePropagation(t Directive(t directivescCstj|dƒS(Ntlefttcentertright(R R R (Rtchoice(targument((sH/tmp/pip-build-kBFYxq/docutils/docutils/parsers/rst/directives/tables.pytalignstTablecBs¦eZdZdZeZiejd6ejd6e d6ej d6ej dej ƒd6Z eZd „Zd „Zd „Zd „Zed „ƒZd„Zd„ZRS(s# Generic table base class. itclasstnameRtwidthtautotgridtwidthscCsƒ|jrm|jd}|jj||jƒ\}}tj|d|Œ}|jj|jƒ\|_|_ n d}g}||fS(Nit( t argumentststatet inline_texttlinenoRttitlet state_machinetget_source_and_linetsourcetlinetNone(tselft title_textt text_nodestmessagesR((sH/tmp/pip-build-kBFYxq/docutils/docutils/parsers/rst/directives/tables.pyt make_title+s   $cCs|jj|jdƒ}g}d}d|jkru|j|jdjdƒ|jƒ|ƒ\}}|j|ƒn||fS(Niitheaders (Rt get_sourceRtoptionstparse_csv_data_into_rowstsplitt HeaderDialecttextend(R!Rt table_headtmax_header_colstrows((sH/tmp/pip-build-kBFYxq/docutils/docutils/parsers/rst/directives/tables.pytprocess_header_option8scCs×t|ƒ|krj|jjjd|t|ƒ|jftj|j|jƒd|jƒ}t |ƒ‚nt|ƒ|ko‡dknrá|jjjdt|ƒ|jftj|j|jƒd|jƒ}t |ƒ‚nxï|D]ç}t|ƒ|krX|jjjd|t|ƒ|jftj|j|jƒd|jƒ}t |ƒ‚nt|ƒ|koudknrè|jjjdt|ƒ|jftj|j|jƒd|jƒ}t |ƒ‚qèqèWdS(NsP%s header row(s) specified but only %s row(s) of data supplied ("%s" directive).RiseInsufficient data supplied (%s row(s)); no data remaining for table body, required by "%s" directive.sU%s stub column(s) specified but only %s columns(s) of data supplied ("%s" directive).siInsufficient data supplied (%s columns(s)); no data remaining for table body, required by "%s" directive.( tlenRtreporterterrorRRt literal_blockt block_textRR(R!R/t header_rowst stub_columnsR3trow((sH/tmp/pip-build-kBFYxq/docutils/docutils/parsers/rst/directives/tables.pytcheck_table_dimensionsCs2 "   " cCs,d|jkr(|jjdƒ|dtchildrenttagnametziptadd_nametinsert( R!RYRR$tnodeR3R;ttgrouptchildtcolspecsRVt col_width((sH/tmp/pip-build-kBFYxq/docutils/docutils/parsers/rst/directives/tables.pytrun…sD    )       (RFRGRi(((sH/tmp/pip-build-kBFYxq/docutils/docutils/parsers/rst/directives/tables.pyRTƒstCSVTablecBsQeZiejd6ejd6ejd6ejd6ejdejƒd6ejd6ej d6ej d6ej d 6ejd 6e d 6ej d 6ejd 6ejd6ejd6Zdejfd„ƒYZdejfd„ƒYZd„Zd„Zd„Zejdkrd„Zd„Znd„Zd„ZeeƒZeeƒZd„ZRS(s header-rowss stub-columnsR&RRRtfileturltencodingRRRtdelimt keepspacetquotetescapetDocutilsDialectcBsDeZdZdZdZeZeZeZdZ e j Z d„Z RS(s&CSV dialect for `csv_table` directive.t,t"s cCs¤d|kr%tj|dƒ|_nd|kr=t|_nd|krbtj|dƒ|_nd|krt|_tj|dƒ|_ntj j |ƒdS(NRnRoRpRq( Rjtencode_for_csvt delimitertFalsetskipinitialspacet quotechart doublequotet escapechartcsvtDialectt__init__(R!R(((sH/tmp/pip-build-kBFYxq/docutils/docutils/parsers/rst/directives/tables.pyR~Ðs      (RFRGRHRvRyRJRzRxtstricttlineterminatorR|t QUOTE_MINIMALtquotingR~(((sH/tmp/pip-build-kBFYxq/docutils/docutils/parsers/rst/directives/tables.pyRrÄs R+cBsAeZdZdZdZdZeZeZ eZ dZ e j ZRS(s0CSV dialect to use for the "header" option data.RsRts\s (RFRGRHRvRyR{RwRzRJRxRR€R|RR‚(((sH/tmp/pip-build-kBFYxq/docutils/docutils/parsers/rst/directives/tables.pyR+ÝscCsdS(N((R!((sH/tmp/pip-build-kBFYxq/docutils/docutils/parsers/rst/directives/tables.pytcheck_requirementsêscCsÏyi|jjjj rud|jks4d|jkru|jjjd|jt j |j |j ƒd|j ƒ}|gS|j ƒ|jƒ\}}|jƒ\}}|jƒ\}}|j||j|jƒ|ƒ\}} t| |ƒ} |jjddƒ} |jjddƒ} |j|| | ƒ|j|| ƒ|| } |j| ƒ} |j| || fƒWn«tk r‰}|jdgStjk r}t|ƒ}tjdkrÏd |krÏ|d 7}n|jjj d |j|ft j |j |j ƒd|j ƒ}|gSX| || f}|jj!||j"| d |j#ƒ}|d c|jjdgƒ7                 (R(RFRGRHRR¼RNRORPRLRMRRQRiRÃRÄ(((sH/tmp/pip-build-kBFYxq/docutils/docutils/parsers/rst/directives/tables.pyR‰s          '(RHt __docformat__RŒtos.pathR—R|tdocutilsRRRRtdocutils.utils.error_reportingRtdocutils.utilsRtdocutils.parsers.rstRRRRRTRjRÂ(((sH/tmp/pip-build-kBFYxq/docutils/docutils/parsers/rst/directives/tables.pyts   " h*Ü