o ×$•a±•ã @sNdZddlZddlZddlZddlZddlmZmZddlm Z m Z m Z m Z m Z mZmZmZmZmZmZddlmZmZddlmZmZmZddlmZddlmZdd lm Z m!Z!dd l"m#Z#e rhdd l$m%Z%Gd d „d ƒZ&Gdd„dƒZ'Gdd„dej(ƒZ(dZ)dZ*e)fde+de,de dee+fdd„Z-Gdd„dej.ƒZ/Gdd„de#ƒZ0dS)zÏ sphinx.writers.text ~~~~~~~~~~~~~~~~~~~ Custom docutils writer for plain text. :copyright: Copyright 2007-2021 by the Sphinx team, see AUTHORS. :license: BSD, see LICENSE for details. éN)ÚchainÚgroupby) Ú TYPE_CHECKINGÚAnyÚDictÚ GeneratorÚIterableÚListÚOptionalÚSetÚTupleÚUnionÚcast)ÚnodesÚwriters)ÚElementÚNodeÚText©Ú column_width)Úaddnodes)Ú_Úadmonitionlabels)ÚSphinxTranslator)Ú TextBuilderc @sZeZdZdZddedededdfd d „Zdefd d „Zdefd d„Zdeddfdd„Z dS)ÚCellzVRepresents a cell in a table. It can span multiple columns or multiple lines. ÚéÚtextÚrowspanÚcolspanÚreturnNcCs(||_g|_||_||_d|_d|_dS©N)rÚwrappedrr ÚcolÚrow)Úselfrrr ©r'ú5/usr/lib/python3/dist-packages/sphinx/writers/text.pyÚ__init__"s  z Cell.__init__cCsd |j|j|j|j|j¡S)Nz{}>)Úformatrr%rr$r ©r&r'r'r(Ú__repr__*sÿz Cell.__repr__cCst|j|jfƒSr")Úhashr$r%r+r'r'r(Ú__hash__/óz Cell.__hash__ÚwidthcCst|j|ƒ|_dSr")Úmy_wraprr#)r&r0r'r'r(Úwrap2óz Cell.wrap)rrr) Ú__name__Ú __module__Ú __qualname__Ú__doc__ÚstrÚintr)r,r.r2r'r'r'r(rs rc@seZdZdZd&deeddfdd„Zd'dd„Zd'd d „Zd e ddfd d „Z de eefde fdd„Z de eefd e ddfdd„Z deddfdd„Zdeddfdd„Zdefdd„Zd e deedefdd„Zedee ddffdd„ƒZd'd d!„Zdee defd"d#„Zdefd$d%„ZdS)(ÚTableajRepresents a table, handling cells that can span multiple lines or rows, like:: +-----------+-----+ | AAA | BBB | +-----+-----+ | | | XXX | | | +-----+-----+ | DDD | CCC | +-----+-----------+ This class can be used in two ways, either: - With absolute positions: call ``table[line, col] = Cell(...)``, this overwrites any existing cell(s) at these positions. - With relative positions: call the ``add_row()`` and ``add_cell(Cell(...))`` as needed. Cells spanning multiple rows or multiple columns (having a colspan or rowspan greater than one) are automatically referenced by all the table cells they cover. This is a useful representation as we can simply check ``if self[x, y] is self[x, y+1]`` to recognize a rowspan. Colwidth is not automatically computed, it has to be given, either at construction time, or during the table construction. Example usage:: table = Table([6, 6]) table.add_cell(Cell("foo")) table.add_cell(Cell("bar")) table.set_separator() table.add_row() table.add_cell(Cell("FOO")) table.add_cell(Cell("BAR")) print(table) +--------+--------+ | foo | bar | |========|========| | FOO | BAR | +--------+--------+ NÚcolwidthr!cCs.g|_d|_|dur |ng|_d|_d|_dS©Nr)ÚlinesÚ separatorr;Ú current_lineÚ current_col)r&r;r'r'r(r)ds  zTable.__init__cCs|jd7_d|_dS)zAdd a row to the table, to use with ``add_cell()``. It is not needed to call ``add_row()`` before the first ``add_cell()``. rrN)r?r@r+r'r'r(Úadd_rowks z Table.add_rowcCst|jƒ|_dS)z*Sets the separator below the current line.N)Úlenr=r>r+r'r'r(Ú set_separatorrszTable.set_separatorÚcellcCsR||j|jfr|jd7_||j|jfs|||j|jf<|j|j7_dS)zãAdd a cell to the current line, to use with ``add_row()``. To add a cell spanning multiple lines or rows, simply set the ``cell.colspan`` or ``cell.rowspan`` BEFORE inserting it into the table. rN)r?r@r )r&rDr'r'r(Úadd_cellvs ÿzTable.add_cellÚposcCs2|\}}| |d¡| |d¡|j||S©Nr)Ú_ensure_has_lineÚ_ensure_has_columnr=)r&rFÚliner$r'r'r(Ú __getitem__szTable.__getitem__cCsn|\}}| ||j¡| ||j¡t|jƒD]}t|jƒD]}||j||||<||_||_q qdSr")rHrrIr Úranger=r%r$)r&rFrDrJr$ÚdlineÚdcolr'r'r(Ú __setitem__‡sýÿzTable.__setitem__rJcCs0t|jƒ|kr|j g¡t|jƒ|ksdSdSr")rBr=Úappend)r&rJr'r'r(rH‘s ÿzTable._ensure_has_liner$cCs2|jD]}t|ƒ|kr| d¡t|ƒ|ks qdSr")r=rBrP)r&r$rJr'r'r(rI•s    ÿ€ÿzTable._ensure_has_columncCsd dd„|jDƒ¡S)NÚ csó|]}t|ƒVqdSr")Úrepr)Ú.0rJr'r'r(Ú ›ó€z!Table.__repr__..)Újoinr=r+r'r'r(r,šózTable.__repr__ÚsourcecCsDd}t||j|jfjƒD] }|||j|7}q ||jddS)z¼Give the cell width, according to the given source (either ``self.colwidth`` or ``self.measured_widths``). This takes into account cells spanning multiple columns. rré)rLr%r$r )r&rDrYr0Úir'r'r(Ú cell_widthszTable.cell_widthccsNtƒ}t|jƒD]\}}t|ƒD]\}}|r#||vr#|V| |¡qq dSr")ÚsetÚ enumerater=Úadd)r&ÚseenÚlinenorJÚcolnorDr'r'r(Úcells§s€  €ýÿz Table.cellscCsŽ|jdd…|_|jD]9}|j| ||j¡d|jsq t tdd„|jDƒƒ|j ¡}t |j |j |j ƒD] }t|j||ƒ|j|<q6q dS)zŽCall ``cell.wrap()`` on all cells, and measure each column width after wrapping (result written in ``self.measured_widths``). N©r0csrRr"r©rTÚxr'r'r(rU¹rVzTable.rewrap..) r;Úmeasured_widthsrcr2r\r#ÚmathÚceilÚmaxr rLr$)r&rDr0r$r'r'r(Úrewrap°s  ÿûz Table.rewrapcCs"d}|D] }t|t|jƒƒ}q|S)zfFor a given line, compute the number of physical lines it spans due to text wrapping. r)rjrBr#)r&rJÚphysical_linesrDr'r'r(Úphysical_lines_for_line½szTable.physical_lines_for_linec s:g}ˆ ¡d dtdttdtf‡fdd„ }tˆjƒD]u\}}ˆjr0|ˆjkr0| |d|ƒ¡n| |d|ƒ¡tˆ  |¡ƒD]P}dg}t|ƒD]>\}}|j |krRqH||j krZd } n|t |j ƒkrdd } n|j |} t | ƒt| ƒ} | d |  ˆ |ˆj¡d | ¡d¡qH| d  |¡¡q?q| |dƒ¡d  |¡S)Nú-Úcharrar!csÚg}tˆjƒD]-\}}|dur+|dkr+ˆ||fˆ|d|fur+| d|d¡q| ||d¡q|dddkr?dnd}|d ddkrKdnd}d d „t||dd…ƒDƒ}| |¡|d  t t||ƒ¡¡S) zfCalled on the line *before* lineno. Called with no *lineno* for the last sep. Nrrú érnú+ú|éÿÿÿÿcSs0g|]\}}|ddks|ddkrdnd‘qS)rrnrrrsr')rTÚleftÚrightr'r'r(Ú Úsÿÿz3Table.__str__..writesep..r)r^rgrPÚziprWrÚ from_iterable)roraÚoutrbr0ÚheadÚtailÚgluer+r'r(ÚwritesepÊsþ zTable.__str__..writesepú=rsrrprrQ)rnN)rkr8r r9r^r=r>rPrLrmr$r%rBr#rÚljustr\rgrW) r&rzr~rarJÚ physical_lineÚlinestrrbrDÚ physical_textÚ adjust_lenr'r+r(Ú__str__Æs>    ÿÿýÿî z Table.__str__r"©r!N)r4r5r6r7r r9r)rArCrrEr rKrOrHrIr8r,r\Úpropertyrrcrkrmr…r'r'r'r(r:6s"-        r:c s–eZdZdZe d¡Zdeedeefdd„Z dede de eeffd d „Z d edeef‡fd d „ Z deedeede de ddf dd„Z‡ZS)Ú TextWrapperz;Custom subclass that uses a different word separator regex.zf(\s+|(?<=\s)(?::[a-z-]+:)?`\S+|[^\s\w]*\w+[a-zA-Z]-(?=\w+[a-zA-Z])|(?<=[\w\!\"\'\&\.\,\?])-{2,}(?=\w))Úchunksr!cCsg}|jdkrtd|jƒ‚| ¡|r…g}d}|r|j}n|j}|jt|ƒ}|jr8|d ¡dkr8|r8|d=|rUt|dƒ}|||krR| |  ¡¡||7}nn|s:|rgt|dƒ|krg|  ||||¡|jrw|rw|d ¡dkrw|d=|rƒ| |d  |¡¡|s|S)zÃ_wrap_chunks(chunks : [string]) -> [string] The original _wrap_chunks uses len() to calculate width. This method respects wide/fullwidth characters for width adjustment. rzinvalid width %r (must be > 0)rtr) r0Ú ValueErrorÚreverseÚsubsequent_indentÚinitial_indentrÚdrop_whitespaceÚstriprPÚpopÚ_handle_long_wordrW)r&r‰r=Úcur_lineÚcur_lenÚindentr0Úlr'r'r(Ú _wrap_chunkss8    ø á!zTextWrapper._wrap_chunksÚwordÚ space_leftcCsVd}t|ƒD] \}}|t|ƒ7}||kr&|d|d…||dd…fSq|dfS)z„_break_word(word : string, space_left : int) -> (string, string) Break line by unicode width instead of len(word). rNrr)r^r)r&r—r˜Útotalr[Úcr'r'r(Ú _break_word5s $ÿzTextWrapper._break_wordrcsrdtdttf‡‡fdd„ }g}||ƒD]"}t|tƒD]\}}|dkr.| |d |¡ƒ¡q| t|ƒ¡qq|S)z¸_split(text : string) -> [string] Override original method that only split by 'wordsep_re'. This '_split' splits wide-characters into chunks by one character. Útr!csttˆƒ |¡Sr")ÚsuperrˆÚ_split)rœ)Ú __class__r&r'r(ÚsplitGr/z!TextWrapper._split..splitrr)r8r rrÚextendrWÚlist)r&rr r‰ÚchunkÚwÚg©rŸr+r(ržAs üzTextWrapper._splitÚreversed_chunksr’r“r0NcCsXt||dƒ}|jr| |d|¡\}}| |¡||d<dS|s*| | ¡¡dSdS)zé_handle_long_word(chunks : [string], cur_line : [string], cur_len : int, width : int) Override original method for using self._break_word() instead of slice. rrtN)rjÚbreak_long_wordsr›rPr)r&r§r’r“r0r˜r•Úrr'r'r(r‘Rs  ÿzTextWrapper._handle_long_word)r4r5r6r7ÚreÚcompileÚ wordsep_rer r8r–r9r r›ržr‘Ú __classcell__r'r'r¦r(rˆýsÿ/ ÿÿÿrˆéFrZrr0Úkwargsr!cKstdd|i|¤Ž}| |¡S)Nr0r')rˆr2)rr0r¯r¤r'r'r(r1hs r1csJeZdZUdZdZiZeed<dZe ed<d ‡fd d „ Z dd d „Z ‡Z S)Ú TextWriter)r)zNo options here.rr'Úsettings_defaultsNÚoutputÚbuilderrr!cstƒ ¡||_dSr")rr)r³)r&r³r¦r'r(r)tó  zTextWriter.__init__cCs0|j |j|j¡}|j |¡tt|ƒj|_dSr")r³Úcreate_translatorÚdocumentÚ walkaboutrÚTextTranslatorÚbodyr²)r&Úvisitorr'r'r(Ú translatexs zTextWriter.translate)r³rr!Nr†) r4r5r6Ú supportedÚ settings_specr±rÚ__annotations__r²r8r)r»r­r'r'r¦r(r°ms   r°c sLeZdZUdZded<dejddddf‡fdd„ Zdeddfd d „Z e fd e ddfd d „Z ddgdfde deededdfdd„Zdeddfdd„Zdeddfdd„Zdeddfdd„Zdeddfdd„Zdeddfdd„Zdeddfd d!„ZeZeZdeddfd"d#„Zdeddfd$d%„Zdeddfd&d'„Zdeddfd(d)„Zdeddfd*d+„Zdeddfd,d-„Zdeddfd.d/„Zdedefd0d1„Z deddfd2d3„Z!deddfd4d5„Z"deddfd6d7„Z#deddfd8d9„Z$deddfd:d;„Z%deddfdd?„Z'deddfd@dA„Z(deddfdBdC„Z)deddfdDdE„Z*deddfdFdG„Z+deddfdHdI„Z,deddfdJdK„Z-deddfdLdM„Z.deddfdNdO„Z/deddfdPdQ„Z0deddfdRdS„Z1deddfdTdU„Z2deddfdVdW„Z3deddfdXdY„Z4deddfdZd[„Z5deddfd\d]„Z6deddfd^d_„Z7deddfd`da„Z8deddfdbdc„Z9deddfddde„Z:deddfdfdg„Z;deddfdhdi„Zdeddfdndo„Z?deddfdpdq„Z@deddfdrds„ZAdeddfdtdu„ZBdeddfdvdw„ZCdeddfdxdy„ZDdeddfdzd{„ZEdeddfd|d}„ZFdeddfd~d„ZGdeddfd€d„ZHdeddfd‚dƒ„ZIdeddfd„d…„ZJdeddfd†d‡„ZKdeddfdˆd‰„ZLdeddfdŠd‹„ZMdeddfdŒd„ZNdeddfdŽd„ZOdeddfdd‘„ZPdeddfd’d“„ZQdeddfd”d•„ZRdeddfd–d—„ZSdeddfd˜d™„ZTdeddfdšd›„ZUdeddfdœd„ZVdeddfdždŸ„ZWdeddfd d¡„ZXdeddfd¢d£„ZYdeddfd¤d¥„ZZdeddfd¦d§„Z[deddfd¨d©„Z\deddfdªd«„Z]deddfd¬d­„Z^deddfd®d¯„Z_deddfd°d±„Z`deddfd²d³„Zadeddfd´dµ„Zbdeddfd¶d·„Zcdeddfd¸d¹„Zddeddfdºd»„Zededdfd¼d½„Zfdeddfd¾d¿„ZgdeddfdÀdÁ„ZhdeddfdÂdÄZideddfdÄdÅ„ZjdeddfdÆdÇ„ZkdeddfdÈdÉ„ZldeddfdÊdË„ZmdeddfdÌdÍ„ZndeddfdÎdÏ„ZodeddfdÐdÑ„ZpdeddfdÒdÓ„ZqdeddfdÔdÕ„ZrdeddfdÖdׄZsdeddfdØdÙ„ZtdeddfdÚdÛ„ZudeddfdÜdÝ„ZvdeddfdÞdß„Zwdeddfdàdá„Zxdeddfdâdã„Zydeddfdädå„Zzdeddfdædç„Z{deddfdèdé„Z|deddfdêdë„Z}deddfdìdí„Z~deddfdîdï„Zdeddfdðdñ„Z€deddfdòdó„Zdeddfdôdõ„Z‚deddfdöd÷„Zƒdeddfdødù„Z„deddfdúdû„Z…deddfdüdý„Z†deddfdþdÿ„Z‡deddfdd„Zˆdeddfdd„Z‰deddfdd„ZŠdeddfdd„Z‹eŠZŒe‹ZeŠZŽe‹ZeŠZe‹Z‘eŠZ’e‹Z“eŠZ”e‹Z•eŠZ–e‹Z—eŠZ˜e‹Z™eŠZše‹Z›eŠZœe‹ZeŠZže‹ZŸdeddfdd „Z deddfd d „Z¡deddfd d „Z¢deddfdd„Z£deddfdd„Z¤deddfdd„Z¥deddfdd„Z¦deddfdd„Z§deddfdd„Z¨deddfdd„Z©deddfdd„Zªdeddfdd„Z«deddfd d!„Z¬deddfd"d#„Z­deddfd$d%„Z®deddfd&d'„Z¯deddfd(d)„Z°deddfd*d+„Z±deddfd,d-„Z²deddfd.d/„Z³deddfd0d1„Z´deddfd2d3„Zµdeddfd4d5„Z¶deddfd6d7„Z·deddfd8d9„Z¸deddfd:d;„Z¹deddfd<d=„Zºdeddfd>d?„Z»deddfd@dA„Z¼deddfdBdC„Z½deddfdDdE„Z¾deddfdFdG„Z¿deddfdHdI„ZÀdeddfdJdK„ZÁdeddfdLdM„ZÂdeddfdNdO„ZÃdeddfdPdQ„ZÄdeddfdRdS„ZÅdeddfdTdU„ZÆdeddfdVdW„ZÇdeddfdXdY„ZÈdeddfdZd[„ZÉdeddfd\d]„ZÊdeddfd^d_„ZËdeddfd`da„ZÌdeddfdbdc„ZÍdeddfddde„ZÎdeddfdfdg„ZÏdeddfdhdi„ZÐdeÑddfdjdk„ZÒdeÑddfdldm„ZÓdeddfdndo„ZÔdeddfdpdq„ZÕdeddfdrds„ZÖdeddfdtdu„Z×deddfdvdw„ZØdeddfdxdy„ZÙdeddfdzd{„ZÚdeddfd|d}„ZÛdeddfd~d„ZÜdeddfd€d„ZÝdeddfd‚dƒ„ZÞdeddfd„d…„Zßdeddfd†d‡„Zàdeddfdˆd‰„ZádeddfdŠd‹„ZâdeddfdŒd„ZãdeäddfdŽd„Zå‡ZæS(r¸Nrr³r¶r!csˆtƒ ||¡|jj}|dkrd|_n |dkrtj|_nd|_|jj|_|jj |_ |jj |_ gg|_ dg|_g|_d|_d|_d|_dS)NÚwindowsz ÚnativerQr)rr)ÚconfigÚ text_newlinesÚnlÚosÚlinesepÚtext_sectioncharsÚ sectioncharsÚtext_add_secnumbersÚadd_secnumbersÚtext_secnumber_suffixÚsecnumber_suffixÚstatesÚ stateindentÚ list_counterÚ sectionlevelÚlineblocklevelÚtable)r&r¶r³Únewlinesr¦r'r(r)s      zTextTranslator.__init__rcCs|jd d|f¡dS©Nrt)rÌrP)r&rr'r'r(Úadd_text•szTextTranslator.add_textr”cCs|j g¡|j |¡dSr")rÌrPrÍ)r&r”r'r'r(Ú new_state˜s zTextTranslator.new_stateTrr2ÚendÚfirstc s|j ¡}t|jƒ‰|j ¡‰g‰g‰d‡‡‡‡‡‡fdd„ }|D]\}}|dkr/ˆ |¡q!|ƒˆ ˆ||f¡g‰q!|ƒ|durvˆrvˆddˆ}ˆdddgkrbˆ d||gf¡n|ˆdd d¡} ˆ d|| gf¡|jd ˆ¡dS) Nr!csPˆsdSˆrtd ˆ¡tˆd}nd ˆ¡ ¡}ˆr|ˆ7}ˆ ˆ|f¡dS)Nrrd)r1rWÚMAXWIDTHÚ splitlinesrP)Úres©rÖr”Ú maxindentÚresultÚtoformatr2r'r(Ú do_format£sz+TextTranslator.end_state..do_formatrtrrrr†)rÌrÚsumrÍrPÚinsertr¡) r&r2rÖr×ÚcontentrßÚ itemindentÚitemÚ newindentrr'rÛr(Ú end_stateœs(      zTextTranslator.end_stateÚnodecCó| d¡dSr<©rÕ©r&rçr'r'r(Úvisit_documentÀózTextTranslator.visit_documentcCs*| ¡|j dd„|jdDƒ¡|_dS)Ncss.|]\}}|D] }|od||VqqdS)rpNr')rTr”r=rJr'r'r(rUÅs€þþz1TextTranslator.depart_document..r)rærÃrWrÌr¹rêr'r'r(Údepart_documentÃs ÿzTextTranslator.depart_documentcCs |j|j|_|jd7_dSrG)rÇrÏÚ _title_charrêr'r'r(Ú visit_sectionÊszTextTranslator.visit_sectioncCs|jd8_dSrG)rÏrêr'r'r(Údepart_sectionÎr3zTextTranslator.depart_sectioncCrèr<rérêr'r'r(Ú visit_topicÑrìzTextTranslator.visit_topiccCó | ¡dSr"©rærêr'r'r(Ú depart_topicÔó zTextTranslator.depart_topiccCs| d¡| d¡dS)Nrz-[ )rÕrÔrêr'r'r(Ú visit_rubricÚs zTextTranslator.visit_rubriccCs| d¡| ¡dS)Nz ]-©rÔrærêr'r'r(Ú depart_rubricÞs  zTextTranslator.depart_rubriccCódSr"r'rêr'r'r(Úvisit_compoundâózTextTranslator.visit_compoundcCrùr"r'rêr'r'r(Údepart_compoundårûzTextTranslator.depart_compoundcCrùr"r'rêr'r'r(Úvisit_glossaryèrûzTextTranslator.visit_glossarycCrùr"r'rêr'r'r(Údepart_glossaryërûzTextTranslator.depart_glossarycCs4t|jtjƒr| | ¡d¡tj‚| d¡dS)Nú: r)Ú isinstanceÚparentrÚ AdmonitionrÔÚastextÚSkipNoderÕrêr'r'r(Ú visit_titleîszTextTranslator.visit_titlecCsft|jtjƒr1d|jdd}|jj |¡}|dur"|jj d¡}|dur1d tt |ƒ¡|j SdS)Nú#ÚidsrrÚ.) rrrÚsectionr³Ú secnumbersÚgetrWÚmapr8rË)r&rçÚ anchornameÚnumbersr'r'r(Úget_section_number_stringôsz(TextTranslator.get_section_number_stringcCs°t|jtjƒr |j}nd}d}d dd„|j ¡Dƒ¡}|jr&|  |¡|}|j  ¡d|d|t |ƒdg}t |jƒdkrLt |jdƒdkrL| d¡|jd  d|f¡dS) Nú^rcss$|] }|ddkr|dVqdS)rrtrNr'rer'r'r(rUs€"z.TextTranslator.depart_title..z%srqrtr)rrrr rîrWrÌrrÉrrÍrrBrP)r&rçrorÚtitler'r'r(Ú depart_titleþs   zTextTranslator.depart_titlecCrùr"r'rêr'r'r(Úvisit_subtitlerûzTextTranslator.visit_subtitlecCrùr"r'rêr'r'r(Údepart_subtitlerûzTextTranslator.depart_subtitlecCrè)Nz-- ©rÔrêr'r'r(Úvisit_attributionrìz TextTranslator.visit_attributioncCrùr"r'rêr'r'r(Údepart_attributionrûz!TextTranslator.depart_attributioncCrùr"r'rêr'r'r(Ú visit_desc!rûzTextTranslator.visit_desccCrùr"r'rêr'r'r(Ú depart_desc$rûzTextTranslator.depart_desccCrèr<rérêr'r'r(Úvisit_desc_signature'rìz#TextTranslator.visit_desc_signaturecCs|jddddS)NF©r2rÖrórêr'r'r(Údepart_desc_signature*sz$TextTranslator.depart_desc_signaturecCrùr"r'rêr'r'r(Úvisit_desc_signature_line.rûz(TextTranslator.visit_desc_signature_linecCrè©NrQrrêr'r'r(Údepart_desc_signature_line1rìz)TextTranslator.depart_desc_signature_linecCs| ¡| |j¡dSr")rÕrÔrÃrêr'r'r(Úvisit_desc_content4sz!TextTranslator.visit_desc_contentcCròr"rórêr'r'r(Údepart_desc_content8rõz"TextTranslator.depart_desc_contentcCrùr"r'rêr'r'r(Úvisit_desc_inline;rûz TextTranslator.visit_desc_inlinecCrùr"r'rêr'r'r(Údepart_desc_inline>rûz!TextTranslator.depart_desc_inlinecCrùr"r'rêr'r'r(Úvisit_desc_nameDrûzTextTranslator.visit_desc_namecCrùr"r'rêr'r'r(Údepart_desc_nameGrûzTextTranslator.depart_desc_namecCrùr"r'rêr'r'r(Úvisit_desc_addnameJrûz!TextTranslator.visit_desc_addnamecCrùr"r'rêr'r'r(Údepart_desc_addnameMrûz"TextTranslator.depart_desc_addnamecCrùr"r'rêr'r'r(Úvisit_desc_typePrûzTextTranslator.visit_desc_typecCrùr"r'rêr'r'r(Údepart_desc_typeSrûzTextTranslator.depart_desc_typecCrè)Nz -> rrêr'r'r(Úvisit_desc_returnsVrìz!TextTranslator.visit_desc_returnscCrùr"r'rêr'r'r(Údepart_desc_returnsYrûz"TextTranslator.depart_desc_returnscCs| d¡d|_dS)Nú(r)rÔÚ first_paramrêr'r'r(Úvisit_desc_parameterlist\r´z'TextTranslator.visit_desc_parameterlistcCrè)Nú)rrêr'r'r(Údepart_desc_parameterlist`rìz(TextTranslator.depart_desc_parameterlistcCs,|js | d¡nd|_| | ¡¡tj‚)Nú, r)r-rÔrrrrêr'r'r(Úvisit_desc_parametercs  z#TextTranslator.visit_desc_parametercCrè)Nú[rrêr'r'r(Úvisit_desc_optionalkrìz"TextTranslator.visit_desc_optionalcCrè)Nú]rrêr'r'r(Údepart_desc_optionalnrìz#TextTranslator.depart_desc_optionalcCrùr"r'rêr'r'r(Úvisit_desc_annotationqrûz$TextTranslator.visit_desc_annotationcCrùr"r'rêr'r'r(Údepart_desc_annotationtrûz%TextTranslator.depart_desc_annotationcCròr"rérêr'r'r(Ú visit_figureyrõzTextTranslator.visit_figurecCròr"rórêr'r'r(Ú depart_figure|rõzTextTranslator.depart_figurecCrùr"r'rêr'r'r(Ú visit_captionrûzTextTranslator.visit_captioncCrùr"r'rêr'r'r(Údepart_caption‚rûzTextTranslator.depart_captioncCsÂ| ¡g}tttj|ƒ}|D] }| |d¡qtdd„|Dƒƒ}d}|D]0}|dr>| |d |¡d¡|d}n|durM| ddt |ƒ¡| |  ¡|j ¡q'|j ddt j‚) NÚ tokennamecsrRr"©rB)rTÚnamer'r'r(rU‹rVz6TextTranslator.visit_productionlist..z ::=z%s rpF©r2)rÕrrrÚ productionrPrjrÔr€rBrrÃrærr)r&rçÚnamesÚproductionlistrAÚmaxlenÚlastnamer'r'r(Úvisit_productionlist…s   z#TextTranslator.visit_productionlistcCs6ttj|dƒ}| ¡ ¡|_| t|jƒd¡dS)NrrZ)rrÚlabelrrÚ _footnoterÕrB)r&rçrGr'r'r(Úvisit_footnote—szTextTranslator.visit_footnotecCó|jd|jddS©Nz[%s] ©r×)rærHrêr'r'r(Údepart_footnoteœrXzTextTranslator.depart_footnotecCsFt|ƒrt|dtjƒr|d ¡|_nd|_| t|jƒd¡dS)NrrrZ)rBrrrGrÚ _citlabelrÕrêr'r'r(Úvisit_citationŸszTextTranslator.visit_citationcCrJrK)rærNrêr'r'r(Údepart_citation¦rXzTextTranslator.depart_citationcCótj‚r"©rrrêr'r'r(Ú visit_label©ózTextTranslator.visit_labelcCrùr"r'rêr'r'r(Ú visit_legend¬rûzTextTranslator.visit_legendcCrùr"r'rêr'r'r(Ú depart_legend¯rûzTextTranslator.depart_legendcCrùr"r'rêr'r'r(Úvisit_option_list´rûz TextTranslator.visit_option_listcCrùr"r'rêr'r'r(Údepart_option_list·rûz!TextTranslator.depart_option_listcCrèr<rérêr'r'r(Úvisit_option_list_itemºrìz%TextTranslator.visit_option_list_itemcCròr"rórêr'r'r(Údepart_option_list_item½rõz&TextTranslator.depart_option_list_itemcCs d|_dS)NT)Ú _firstoptionrêr'r'r(Úvisit_option_groupÀó z!TextTranslator.visit_option_groupcCrè)Nz rrêr'r'r(Údepart_option_groupÃrìz"TextTranslator.depart_option_groupcCs|jrd|_dS| d¡dS)NFr1)r[rÔrêr'r'r(Ú visit_optionÆs zTextTranslator.visit_optioncCrùr"r'rêr'r'r(Ú depart_optionÌrûzTextTranslator.depart_optioncCrùr"r'rêr'r'r(Úvisit_option_stringÏrûz"TextTranslator.visit_option_stringcCrùr"r'rêr'r'r(Údepart_option_stringÒrûz#TextTranslator.depart_option_stringcCs| |d¡dS)NÚ delimiterrrêr'r'r(Úvisit_option_argumentÕr3z$TextTranslator.visit_option_argumentcCrùr"r'rêr'r'r(Údepart_option_argumentØrûz%TextTranslator.depart_option_argumentcCrùr"r'rêr'r'r(Úvisit_descriptionÛrûz TextTranslator.visit_descriptioncCrùr"r'rêr'r'r(Údepart_descriptionÞrûz!TextTranslator.depart_descriptioncCrQr"rRrêr'r'r(Úvisit_tabular_col_specárTz%TextTranslator.visit_tabular_col_speccCs|jj |d¡tj‚)Nr;)rÑr;rPrrrêr'r'r(Ú visit_colspecäózTextTranslator.visit_colspeccCrùr"r'rêr'r'r(Ú visit_tgroupèrûzTextTranslator.visit_tgroupcCrùr"r'rêr'r'r(Ú depart_tgroupërûzTextTranslator.depart_tgroupcCrùr"r'rêr'r'r(Ú visit_theadîrûzTextTranslator.visit_theadcCrùr"r'rêr'r'r(Ú depart_theadñrûzTextTranslator.depart_theadcCó|j ¡dSr")rÑrCrêr'r'r(Ú visit_tbodyôrìzTextTranslator.visit_tbodycCrùr"r'rêr'r'r(Ú depart_tbody÷rûzTextTranslator.depart_tbodycCs|jjr |j ¡dSdSr")rÑr=rArêr'r'r(Ú visit_rowúsÿzTextTranslator.visit_rowcCrùr"r'rêr'r'r(Ú depart_rowþrûzTextTranslator.depart_rowcCs4t| dd¡d| dd¡dd|_| d¡dS)NÚmorerowsrrÚmorecols)rr )rr ÚentryrÕrêr'r'r(Ú visit_entrysÿzTextTranslator.visit_entrycsJˆj ‡fdd„ˆj ¡Dƒ¡}ˆj ¡|ˆj_ˆj ˆj¡dˆ_dS)Nc3s |] }ˆj |d¡VqdS)rN)rÃrWrer+r'r(rUs€z.TextTranslator.depart_entry..) rÃrWrÌrrÍrvrrÑrE©r&rçrr'r+r(Ú depart_entrys   zTextTranslator.depart_entrycCs$|jrtdƒ‚| d¡tƒ|_dS)Nz Nested tables are not supported.r)rÑÚNotImplementedErrorrÕr:rêr'r'r(Ú visit_tables  zTextTranslator.visit_tablecCs&| t|jƒ¡d|_|jdddS©NFr@)rÔr8rÑrærêr'r'r(Ú depart_tableszTextTranslator.depart_tablecCsVttj|dƒ}tttj|ƒ}| d¡| d dd„|Dƒ¡d¡| ¡tj ‚)Nrr1css|]}| ¡VqdSr")r)rTÚnr'r'r(rUrVz,TextTranslator.visit_acks..r) rrÚ bullet_listrÚ list_itemrÕrÔrWrær)r&rçrÚ list_itemsr'r'r(Ú visit_ackss  zTextTranslator.visit_ackscCs4d|jvr| tdƒ|d¡| tdƒ¡tj‚)NÚaltz [image: %s]z[image])Ú attributesrÔrrrrêr'r'r(Ú visit_image!s zTextTranslator.visit_imagecCs4t|jƒ}| d¡| dt|¡| ¡tj‚)Nrr)ràrÍrÕrÔrØrærr)r&rçr”r'r'r(Úvisit_transition's  zTextTranslator.visit_transitioncCó|j d¡dSrÓ©rÎrPrêr'r'r(Úvisit_bullet_list.r/z TextTranslator.visit_bullet_listcCror"©rÎrrêr'r'r(Údepart_bullet_list1rìz!TextTranslator.depart_bullet_listcCs|j | dd¡d¡dS)NÚstartr)rÎrPr rêr'r'r(Úvisit_enumerated_list4sz$TextTranslator.visit_enumerated_listcCror"rŠrêr'r'r(Údepart_enumerated_list7rìz%TextTranslator.depart_enumerated_listcCr‡)Néþÿÿÿrˆrêr'r'r(Úvisit_definition_list:r/z$TextTranslator.visit_definition_listcCror"rŠrêr'r'r(Údepart_definition_list=rìz%TextTranslator.depart_definition_listcCs`|jddkr| d¡dS|jddkrdS|jdd7<| tt|jdƒƒd¡dS)Nrtrqrr)rÎrÕrBr8rêr'r'r(Úvisit_list_item@s  zTextTranslator.visit_list_itemcCsJ|jddkr|jdddS|jddkrdS|jd|jdddS)Nrtz* rLrz%s. )rÎrærêr'r'r(Údepart_list_itemLs zTextTranslator.depart_list_itemcCstt| tj¡ƒƒ|_dSr")rBr¢ÚtraverserÚ classifierÚ_classifier_count_in_lirêr'r'r(Úvisit_definition_list_itemTsz)TextTranslator.visit_definition_list_itemcCrùr"r'rêr'r'r(Údepart_definition_list_itemWrûz*TextTranslator.depart_definition_list_itemcCrèr<rérêr'r'r(Ú visit_termZrìzTextTranslator.visit_termcCs|js |jdddSdS)N©rÖ©r–rærêr'r'r(Ú depart_term]sÿzTextTranslator.depart_termcCrè)Nz : rrêr'r'r(Úvisit_classifierarìzTextTranslator.visit_classifiercCs(|jd8_|js|jdddSdS)Nrršr›rêr'r'r(Údepart_classifierdsÿz TextTranslator.depart_classifiercCròr"rérêr'r'r(Úvisit_definitionirõzTextTranslator.visit_definitioncCròr"rórêr'r'r(Údepart_definitionlrõz TextTranslator.depart_definitioncCrùr"r'rêr'r'r(Úvisit_field_listorûzTextTranslator.visit_field_listcCrùr"r'rêr'r'r(Údepart_field_listrrûz TextTranslator.depart_field_listcCrùr"r'rêr'r'r(Ú visit_fieldurûzTextTranslator.visit_fieldcCrùr"r'rêr'r'r(Ú depart_fieldxrûzTextTranslator.depart_fieldcCrèr<rérêr'r'r(Úvisit_field_name{rìzTextTranslator.visit_field_namecCs| d¡|jdddS)Nú:ršr÷rêr'r'r(Údepart_field_name~s z TextTranslator.depart_field_namecCròr"rérêr'r'r(Úvisit_field_body‚rõzTextTranslator.visit_field_bodycCròr"rórêr'r'r(Údepart_field_body…rõz TextTranslator.depart_field_bodycCrùr"r'rêr'r'r(Úvisit_centeredˆrûzTextTranslator.visit_centeredcCrùr"r'rêr'r'r(Údepart_centered‹rûzTextTranslator.depart_centeredcCrùr"r'rêr'r'r(Ú visit_hlistŽrûzTextTranslator.visit_hlistcCrùr"r'rêr'r'r(Ú depart_hlist‘rûzTextTranslator.depart_hlistcCrùr"r'rêr'r'r(Úvisit_hlistcol”rûzTextTranslator.visit_hlistcolcCrùr"r'rêr'r'r(Údepart_hlistcol—rûzTextTranslator.depart_hlistcolcCrèr<rérêr'r'r(Úvisit_admonitionšrìzTextTranslator.visit_admonitioncCròr"rórêr'r'r(Údepart_admonitionrõz TextTranslator.depart_admonitioncCrè)Nrqrérêr'r'r(Ú_visit_admonition rìz TextTranslator._visit_admonitioncCsÄt|j}t|jƒt|ƒ}t|jdƒdkrK|jddddkrKt|tdd„|jdddDƒƒkrK|jdt|ƒ7<|j|dddS|jd dd|j gf¡|j|dddS) NrtrrcsrRr"r>)rTÚsr'r'r(rU¨rVz4TextTranslator._depart_admonition..rÿrLr¦) rÚtagnameràrÍrBrÌrØrærárÃ)r&rçrGr”r'r'r(Ú_depart_admonition£s (z!TextTranslator._depart_admonitioncCrèr<rérêr'r'r(Úvisit_versionmodifiedÆrìz$TextTranslator.visit_versionmodifiedcCròr"rórêr'r'r(Údepart_versionmodifiedÉrõz%TextTranslator.depart_versionmodifiedcCròr"rérêr'r'r(Úvisit_literal_blockÌrõz"TextTranslator.visit_literal_blockcCó|jdddSr|rórêr'r'r(Údepart_literal_blockÏr/z#TextTranslator.depart_literal_blockcCrèr<rérêr'r'r(Úvisit_doctest_blockÒrìz"TextTranslator.visit_doctest_blockcCr¹r|rórêr'r'r(Údepart_doctest_blockÕr/z#TextTranslator.depart_doctest_blockcCs| ¡|jd7_dSrG)rÕrÐrêr'r'r(Úvisit_line_blockØszTextTranslator.visit_line_blockcCs4|jd8_|jddd|js| d¡dSdS)NrFrrQ)rÐrærÔrêr'r'r(Údepart_line_blockÜs ÿz TextTranslator.depart_line_blockcCrùr"r'rêr'r'r(Ú visit_lineârûzTextTranslator.visit_linecCrèrrrêr'r'r(Ú depart_lineårìzTextTranslator.depart_linecCròr"rérêr'r'r(Úvisit_block_quoteèrõz TextTranslator.visit_block_quotecCròr"rórêr'r'r(Údepart_block_quoteërõz!TextTranslator.depart_block_quotecCrùr"r'rêr'r'r(Úvisit_compact_paragraphîrûz&TextTranslator.visit_compact_paragraphcCrùr"r'rêr'r'r(Údepart_compact_paragraphñrûz'TextTranslator.depart_compact_paragraphcCs.t|jtjƒrt|jtjƒr| d¡dSdSr<)rrrrrÚseealsorÕrêr'r'r(Úvisit_paragraphôs  ÿþzTextTranslator.visit_paragraphcCs,t|jtjƒrt|jtjƒr| ¡dSdSr")rrrrrrÅrærêr'r'r(Údepart_paragraphùs  ÿ þzTextTranslator.depart_paragraphcCrQr"rRrêr'r'r(Ú visit_targetþrTzTextTranslator.visit_targetcCrQr"rRrêr'r'r(Ú visit_indexrTzTextTranslator.visit_indexcCrQr"rRrêr'r'r(Ú visit_toctreerTzTextTranslator.visit_toctreecCrQr"rRrêr'r'r(Úvisit_substitution_definitionrTz,TextTranslator.visit_substitution_definitioncCrùr"r'rêr'r'r(Úvisit_pending_xref rûz!TextTranslator.visit_pending_xrefcCrùr"r'rêr'r'r(Údepart_pending_xref rûz"TextTranslator.depart_pending_xrefcCs@|jr| d¡}|dur| d tt|ƒ¡|j¡dSdSdS)NÚ secnumberr)rÉr rÔrWr r8rË)r&rçrr'r'r(Úvisit_references   ýzTextTranslator.visit_referencecCrùr"r'rêr'r'r(Údepart_referencerûzTextTranslator.depart_referencecCs"t | dd¡¡}| |¡tj‚)Nrr)rrr Ú visit_Textrrxr'r'r(Úvisit_number_references z%TextTranslator.visit_number_referencecCrùr"r'rêr'r'r(Úvisit_download_referencerûz'TextTranslator.visit_download_referencecCrùr"r'rêr'r'r(Údepart_download_reference!rûz(TextTranslator.depart_download_referencecCrè©NÚ*rrêr'r'r(Úvisit_emphasis$rìzTextTranslator.visit_emphasiscCrèrÕrrêr'r'r(Údepart_emphasis'rìzTextTranslator.depart_emphasiscCrèrÕrrêr'r'r(Úvisit_literal_emphasis*rìz%TextTranslator.visit_literal_emphasiscCrèrÕrrêr'r'r(Údepart_literal_emphasis-rìz&TextTranslator.depart_literal_emphasiscCrè©Nz**rrêr'r'r(Ú visit_strong0rìzTextTranslator.visit_strongcCrèrÛrrêr'r'r(Ú depart_strong3rìzTextTranslator.depart_strongcCrèrÛrrêr'r'r(Úvisit_literal_strong6rìz#TextTranslator.visit_literal_strongcCrèrÛrrêr'r'r(Údepart_literal_strong9rìz$TextTranslator.depart_literal_strongcCrè)Nrrrêr'r'r(Úvisit_abbreviation<rìz!TextTranslator.visit_abbreviationcCs$| d¡r| d|d¡dSdS)NÚ explanationz (%s))ÚhasattrrÔrêr'r'r(Údepart_abbreviation?s ÿz"TextTranslator.depart_abbreviationcCó | |¡Sr")rÙrêr'r'r(Ú visit_manpageCr]zTextTranslator.visit_manpagecCrär")rÚrêr'r'r(Údepart_manpageFr]zTextTranslator.depart_manpagecCrèrÕrrêr'r'r(Úvisit_title_referenceIrìz$TextTranslator.visit_title_referencecCrèrÕrrêr'r'r(Údepart_title_referenceLrìz%TextTranslator.depart_title_referencecCrè©Nú"rrêr'r'r(Ú visit_literalOrìzTextTranslator.visit_literalcCrèrérrêr'r'r(Údepart_literalRrìzTextTranslator.depart_literalcCrè)Nrrrêr'r'r(Úvisit_subscriptUrìzTextTranslator.visit_subscriptcCrùr"r'rêr'r'r(Údepart_subscriptXrûzTextTranslator.depart_subscriptcCrè)Nrrrêr'r'r(Úvisit_superscript[rìz TextTranslator.visit_superscriptcCrùr"r'rêr'r'r(Údepart_superscript^rûz!TextTranslator.depart_superscriptcCó| d| ¡¡tj‚©Nz[%s]©rÔrrrrêr'r'r(Úvisit_footnote_referencearjz'TextTranslator.visit_footnote_referencecCrñròrórêr'r'r(Úvisit_citation_referenceerjz'TextTranslator.visit_citation_referencecCs| | ¡¡dSr")rÔrrêr'r'r(rÑir3zTextTranslator.visit_TextcCrùr"r'rêr'r'r(Ú depart_TextlrûzTextTranslator.depart_TextcCrùr"r'rêr'r'r(Úvisit_generatedorûzTextTranslator.visit_generatedcCrùr"r'rêr'r'r(Údepart_generatedrrûzTextTranslator.depart_generatedcCó*d|dvs d|dvr| d¡dSdS©NÚxrefÚclassesÚtermrÖrrêr'r'r(Ú visit_inlineuóÿzTextTranslator.visit_inlinecCrùrúrrêr'r'r(Ú depart_inlineyrÿzTextTranslator.depart_inlinecCrùr"r'rêr'r'r(Úvisit_container}rûzTextTranslator.visit_containercCrùr"r'rêr'r'r(Údepart_container€rûzTextTranslator.depart_containercCrè)Nz>>rrêr'r'r(Úvisit_problematicƒrìz TextTranslator.visit_problematiccCrè)Nz<)rÕrÔrrærrrêr'r'r(Úvisit_system_message‰s z#TextTranslator.visit_system_messagecCrQr"rRrêr'r'r(Ú visit_commentrTzTextTranslator.visit_commentcCrQr"rRrêr'r'r(Ú visit_meta’szTextTranslator.visit_metacCs>d| dd¡ ¡vr| d¡| | ¡¡|jddtj‚)Nrr*rrFr@)r r rÕrÔrrærrrêr'r'r(Ú visit_raw–s   zTextTranslator.visit_rawcCrùr"r'rêr'r'r(Ú visit_mathrûzTextTranslator.visit_mathcCrùr"r'rêr'r'r(Ú depart_math rûzTextTranslator.depart_mathcCròr"rérêr'r'r(Úvisit_math_block£rõzTextTranslator.visit_math_blockcCròr"rórêr'r'r(Údepart_math_block¦rõz TextTranslator.depart_math_blockcCstd|jjƒ‚)NzUnknown node: )rzrŸr4rêr'r'r(Ú unknown_visit©r/zTextTranslator.unknown_visit)çr4r5r6r³r¾rr¶r)r8rÔÚ STDINDENTr9rÕÚboolr rærrërírïrðrñrôÚ visit_sidebarÚdepart_sidebarrörørúrürýrþrrrrrrrrrrrrrr r!r"r#r$r%r&r'r(r)r*r+r.r0r2r4r6r7r8r9r:r;r<rFrIrMrOrPrSrUrVrWrXrYrZr\r^r_r`rarbrdrerfrgrhrirkrlrmrnrprqrrrsrwryr{r}r‚r…r†r‰r‹rrŽrr‘r’r“r—r˜r™rœrržrŸr r¡r¢r£r¤r¥r§r¨r©rªr«r¬r­r®r¯r°r±r²rµÚvisit_attentionÚdepart_attentionÚ visit_cautionÚdepart_cautionÚ visit_dangerÚ depart_dangerÚ visit_errorÚ depart_errorÚ visit_hintÚ depart_hintÚvisit_importantÚdepart_importantÚ visit_noteÚ depart_noteÚ visit_tipÚ depart_tipÚ visit_warningÚdepart_warningÚ visit_seealsoÚdepart_seealsor¶r·r¸rºr»r¼r½r¾r¿rÀrÁrÂrÃrÄrÆrÇrÈrÉrÊrËrÌrÍrÏrÐrÒrÓrÔr×rØrÙrÚrÜrÝrÞrßràrãrårærçrèrërìrírîrïrðrôrõrrÑrör÷rørþrrrrrrrrrr r r r rr r­r'r'r¦r(r¸~s² ($   r¸)1r7rhrÄrªÚtextwrapÚ itertoolsrrÚtypingrrrrrr r r r r rÚdocutilsrrÚdocutils.nodesrrrÚdocutils.utilsrÚsphinxrÚ sphinx.localerrÚsphinx.util.docutilsrÚsphinx.builders.textrrr:rˆrØrr8r9r1ÚWriterr°r¸r'r'r'r(Ús0 4    Hg"