\x89\x50\x4E\x47\x0D\x0A\x1A\x0A PNG  \x89\x50\x4E\x47\x0D\x0A\x1A\x0A  13\c@@sidZddlmZddlZddlmZddlmZmZm Z ddl m Z dZ d Z d Zd Zd Zejd ZdZdZejdZejdZejdZejdZejdZdZdZdZdZdZejdZdZ dZ!dZ"dZ#dZ$d Z%dd!Z'i ed"d#6ed$d%6ed&d'6ed(d)6ed*d+6ed,d-6ed.d/6ed0d16ed2d36Z(d4Z)d5Z*d6Z+dddd7Z,d8Z-d9Z.d:ddd;dd<Z/d=Z0d>Z1de2d?Z3dS(@ssimplified reStructuredText parser. This parser knows just enough about reStructuredText to parse the Mercurial docstrings. It cheats in a major way: nested blocks are not really nested. They are just indented blocks that look like they are nested. This relies on the user to keep the right indentation for the blocks. Remember to update https://mercurial-scm.org/wiki/HelpStyleGuide when adding support for new constructs. i(tabsolute_importNi(t_(tencodingtpycompatturl(t stringutilcC@sd|dtj|fS(Ns%s %s s"(Rtcolwidth(ts((s7/usr/lib64/python2.7/site-packages/mercurial/minirst.pytsection#scC@sd|dtj|fS(Ns%s %s t=(RR(R((s7/usr/lib64/python2.7/site-packages/mercurial/minirst.pyt subsection&scC@sd|dtj|fS(Ns%s %s t-(RR(R((s7/usr/lib64/python2.7/site-packages/mercurial/minirst.pyt subsubsection)scC@sd|dtj|fS(Ns%s %s t.(RR(R((s7/usr/lib64/python2.7/site-packages/mercurial/minirst.pytsubsubsubsection,scC@so|jtjtj}x8|D]0\}}|j|jd|jd}q"W|jtjtjS(sB Apply a list of (find, replace) pairs to a text. >>> replace(b"foo bar", [(b'f', b'F'), (b'b', b'B')]) 'Foo Bar' >>> encoding.encoding = b'latin1' >>> replace(b'\x81\\', [(b'\\', b'/')]) '\x81/' >>> encoding.encoding = b'shiftjis' >>> replace(b'\x81\\', [(b'\\', b'/')]) '\x81\\' tascii(tdecodeRtsysstrRtreplacetencode(ttexttsubststutexttftt((s7/usr/lib64/python2.7/site-packages/mercurial/minirst.pyR/s(s \n(?:\s*\n)+cC@sg}xtj|jdjD]i}|j}|r%td|D}g|D]}||^qZ}|ji|d6|d6q%q%W|S(sFind continuous blocks of lines in text. Returns a list of dictionaries representing the blocks. Each block has an 'indent' field and a 'lines' field. s cs@s+|]!}t|t|jVqdS(N(tlentlstrip(t.0tl((s7/usr/lib64/python2.7/site-packages/mercurial/minirst.pys Rstindenttlines(t_blockretsplitRtrstript splitlinestmintappend(RtblockstbRRR((s7/usr/lib64/python2.7/site-packages/mercurial/minirst.pyt findblocksHs% "cC@s?d}x2|t|kr:d||d<||ddjdr-|dt|kr-||d}||dd|}||ddgkr||=|d8}n||ddjd r||ddd ||dd (R$(Rntlevel(tlistnesttout(s7/usr/lib64/python2.7/site-packages/mercurial/minirst.pytopenlist1sR)RzRRRRR*s

%s %s

R(s

%s

s R+s
%s
RRris%s iRbs sss s
s
R9tdls
%s
%s R6t*R tultols
  • %s R8RJR7RNis sdefinition bullet field option(RR ( RDRRRRRQR$tindextpopR R(R%t headernestRRR&RltbtypeRRRRR2RbRkRpRR6theadRJRYRVRntnbtni((RRs7/usr/lib64/python2.7/site-packages/mercurial/minirst.pyt formathtml's )    ! #  #    '           %   .  !  !    cC@sg}t|}x|D]}|dc|7s(R(R%RoR((Ros7/usr/lib64/python2.7/site-packages/mercurial/minirst.pyt formatblockssc@sdjfd|DS(s"Format parsed blocks as plain textR:c3@s|]}t|VqdS(N(R(RR&(Ro(s7/usr/lib64/python2.7/site-packages/mercurial/minirst.pys s(R(R%Ro((Ros7/usr/lib64/python2.7/site-packages/mercurial/minirst.pyt formatplainsiPtplaincC@s`t|||pg\}}|r6t||}n|dkrLt|St|d|SdS(s-Parse and format the text according to width.thtmlRoN(RtfiltersectionsRR(RRoRR\tstyleRR%R]((s7/usr/lib64/python2.7/site-packages/mercurial/minirst.pytformats   cC@sg}t|}g}d}g}g}t}x|t|kr||\}} } || 3|j|||ks|jd|r||krvt|} t|} | r| | krt}ng} xtjd| dD]r}||}|| ks|||kr| jt|||d}|j|d|j|dqqW| rv|j| qvn|}|j| xT|dt|kr||dd| kr|d7}|j||dqWn|d7}q3W|r|j x|D]} g| D]}||dd^q}| dd}||d}ddj ||dgj d d |d<|| d|5qWn|S( sSelect parsed blocks under the specified section The section name is separated by a dot, and matches the suffix of the full section path. iR iiiiRs"%s"RuR:( t _getsectionsR@RR$R,R;RRetextendtreverseRR(R%RtparentstsectionsR2t lastparentst synthetictcollapsetpathtnestR&tllentplenRRGtparenttsectsyntrealtrealline((s7/usr/lib64/python2.7/site-packages/mercurial/minirst.pyRsX         1   %+cC@sfd}d}d}g}d}x>|D]6}|ddkr|d}||kra||7}n|j|d}|| }|| ||f}|jdj|||gfq(|ddkrd }||kr||7}n|j|d}|| }xtdt|dD]}|| }|d|krEPng|d D]} | dd krP| ^qP} | r | d d} |d} | | kr|d7}Pq| | kr|d}Pqq q W|| ||f}|jdj|||gfq(|s"ddgfg}n|ddkrId} |d}x| t|kr|| d d}|ddkr|d}t|ddkr|t|ddt|ddjd 7}n||krPqn| d7} qEW| dkrI|| d}|d|dkr-|d7}n|jd|gfqIn|d d j|q(W|S(s=return a list of (section path, nesting level, blocks) tuplesR:icS@si|ddkr|d}n|dd}tj|jd}d|kre|jdd}n|S(NR)R8RJRiRut((RRRQR (R&Rh((s7/usr/lib64/python2.7/site-packages/mercurial/minirst.pytgetnames  R)RRriR R9R8R*iiRRzR((R9R8(RR$RtrangeRR(R%RtnamesRtsecsRR&R2Rtatsiblingst siblingindentRtpointertbindentRtsindenttblevel((s7/usr/lib64/python2.7/site-packages/mercurial/minirst.pyRst     %     -      %  "   c C@sMgt|D]}td|D^q }d|}|djd|Dd}|g}x|D]}g}xvt||D]e\} } d| krdjd| jdD} nd| tj| } |j| | qW|j|dj|dqjW|r<t|dkr<|jd|n|j||S(sAGenerate an RST table for the given table data as a list of linescs@s|]}tj|VqdS(N(RR(RR((s7/usr/lib64/python2.7/site-packages/mercurial/minirst.pys +sR*cs@s|]}d|VqdS(R N((RR((s7/usr/lib64/python2.7/site-packages/mercurial/minirst.pys -ss cs@s|]}|jVqdS(N(R(RR((s7/usr/lib64/python2.7/site-packages/mercurial/minirst.pys 6sii( RRRRR RRR$RR{( tdataRRcR`RRgRRkRRRpR((s7/usr/lib64/python2.7/site-packages/mercurial/minirst.pyt maketable(s / !   %" (4t__doc__t __future__RRti18nRR:RRRtutilsRRR R RRRRR'R5R/RARBRCRdRIRRMR[RaRsRqRtRvRyR|R}tNoneRRRRRRRRRRRR;R(((s7/usr/lib64/python2.7/site-packages/mercurial/minirst.pytsf        9 *  $ ) 3              S [   7 I