o .&a9.@s6ddlZedZGdddeZGdddeZdS)Nbcdocsc@seZdZdddZeddZejddZddZd d Zd d Z d dZ ddZ dddZ ddZ ddZddZddZdS) BaseStylecCs||_||_d|_d|_dS)NrT)doc indent_width_indent keep_dataselfrrr ;/usr/lib/python3/dist-packages/botocore/docs/bcdoc/style.py__init__s zBaseStyle.__init__cCs|jSNrr r r r indentationszBaseStyle.indentationcCs ||_dSrr)r valuer r r rs cCs d|SNz %s)spacesrr r r new_paragraph# zBaseStyle.new_paragraphcCs|jd7_dS)Nrrr r r indent&szBaseStyle.indentcCs |jdkr|jd8_dSdSNrrrrr r r dedent)s zBaseStyle.dedentcCsd|j|jSN )rrrr r r r-zBaseStyle.spacescC|Srr r sr r r bold0zBaseStyle.boldNcCrrr )r linktitler r r ref3r"z BaseStyle.refcCrrr rr r r h26r"z BaseStyle.h2cCrrr rr r r h39r"z BaseStyle.h3cCrrr rr r r underline<r"zBaseStyle.underlinecCrrr rr r r italics?r"zBaseStyle.italicsrr)__name__ __module__ __qualname__r propertyrsetterrrrrr!r%r&r'r(r)r r r r rs      rc@s0eZdZdddZddZddZdd Zd d Zdd dZddZ dddZ ddZ ddZ dddZ ddZddZddZdd Zdd!d"Zd#d$Zd%d&Zdd'd(Zd)d*Zdd+d,Zd-d.Zd/d0Zdd1d2Zd3d4Zdd5d6Zd7d8Zdd9d:Zd;d<Zdd=d>Z d?d@Z!ddAdBZ"dCdDZ#ddEdFZ$dGdHZ%ddIdJZ&dKdLZ'dMdNZ(ddOdPZ)dQdRZ*ddSdTZ+dUdVZ,ddWdXZ-dYdZZ.dd[d\Z/d]d^Z0dd_d`Z1dadbZ2dcddZ3dedfZ4ddgdhZ5didjZ6dkdlZ7ddmdnZ8dodpZ9dqdrZ:ddsdtZ;dudvZd{d|Z?d}d~Z@ddZAd S) ReSTStylercCs$t|||d|_d|_d|_dS)NTr)rr do_pa_href list_depthr r r r r Es zReSTStyle.__init__cC|jd|dSNz %srwriterrr r r rKzReSTStyle.new_paragraphcCr4rr6rr r r new_lineNr8zReSTStyle.new_linecCs|j|dSrrr7)r markupr r r _start_inlineQrzReSTStyle._start_inlinecCs<|jd}||krdS|j||j|ddSr)r pop_writerstrip push_writer7)r r; last_writer r r _end_inlineTs  zReSTStyle._end_inlineNcC|ddSNz**r<r attrsr r r start_boldgzReSTStyle.start_boldcCrBrCrArr r r end_boldjrHzReSTStyle.end_boldcCsd|j_||dSNT)rdo_translationrGrEr r r start_bmzReSTStyle.start_bcCd|j_|dSNF)rrLrJrr r r end_bq zReSTStyle.end_bcC(|r||j||dSdSr)rGrr7rJrr r r r!u   zReSTStyle.boldcCs$|dur|}|jd||fdS)N:doc:`%s <%s>`r:r r$r#r r r r%{sz ReSTStyle.refcCs6|t|}||jd|||f|dS)Nz%s %s %s)lenrrr7)r r border_charborderr r r _headings  zReSTStyle._headingcC||ddSN*rZrr r r h1rz ReSTStyle.h1cCr[)N=r^rr r r r&rz ReSTStyle.h2cCr[)N-r^rr r r r'rz ReSTStyle.h3cCrBr\rDrEr r r start_italicsrHzReSTStyle.start_italicscCrBr\rIrr r r end_italicsrHzReSTStyle.end_italicscCrSr)rbrr7rcrr r r r)rTzReSTStyle.italicscC"|jr|jd|dSdSr5r1rr7rrEr r r start_pzReSTStyle.start_pcCrdr5rerr r r end_prgzReSTStyle.end_pcCd|j_|ddS)NT``)rrLr<rEr r r start_coderNzReSTStyle.start_codecCri)NFrj)rrLrArr r r end_coderNzReSTStyle.end_codecCrSr)rkrr7rlrr r r coderTzReSTStyle.codecC(||jd||dS)Nz .. note::rrr7rrEr r r start_note  zReSTStyle.start_notecC||dSrrrrr r r end_noterRzReSTStyle.end_notecCrn)Nz .. warning::rorEr r r start_importantrqzReSTStyle.start_importantcCrrrrsrr r r end_importantrRzReSTStyle.end_importantcCrn)Nz .. danger::rorEr r r start_dangerrqzReSTStyle.start_dangercCrrrrsrr r r end_dangerrRzReSTStyle.end_dangercCsF|r|D]\}}|dkr||_|jdqn|jdd|j_dS)Nhref`rT)r2rr7rL)r rFattr_key attr_valuer r r start_as   zReSTStyle.start_acCs|jd||fdS)Nz .. _%s: %s)rwriteln)r refnamer#r r r link_target_definitionr8z ReSTStyle.link_target_definitioncCs@|dur|}|jjdkr|jd||fdS|j|dS)Nhtmlz:ref:`%s <%s>`rtargetr7)r labeltextr r r sphinx_reference_labels  z ReSTStyle.sphinx_reference_labelcCsd|j_|jrW|j}|d}|r1|dkr1d|vr!|dd}|j||jd|jn#|dkr?|jd|jn|j|j|j|jj|j<|jdd|_|jddS) NFrrz:z\:z <%s>`__z`<%s>`__z`__) rrLr2r=r>replacer?hrefsr7)r r@r r r end_as       zReSTStyle.end_acCrOrK)rrLrbrEr r r start_irRzReSTStyle.start_icCrOrP)rrLrcrr r r end_irRzReSTStyle.end_icCs|d|_|jddS)NFz* )r9r1rr7rEr r r start_liszReSTStyle.start_licCsd|_|dSrK)r1r9rr r r end_li s zReSTStyle.end_licCrSr)rrr~rrr r r lirTz ReSTStyle.licC,|jdkr ||jd7_|dSrr3rrrEr r r start_uls  zReSTStyle.start_ulcC,|jd8_|jdkr||dSNrrr3rrrr r r end_ul  zReSTStyle.end_ulcCrrrrEr r r start_ol#s  zReSTStyle.start_olcCrrrrr r r end_ol*rzReSTStyle.end_olcC d|j_dSrPrrrEr r r start_examples0rzReSTStyle.start_examplescCrrKrrr r r end_examples3rzReSTStyle.end_examplescCrrPrrEr r r start_fullname6rzReSTStyle.start_fullnamecCrrKrrr r r end_fullname9rzReSTStyle.end_fullnamecCs |jd||dS)Nz::)rr7rrrEr r r start_codeblock<s  zReSTStyle.start_codeblockcCrrrrsrr r r end_codeblockArRzReSTStyle.end_codeblockcCs ||j||dS)z Literal code blocks are introduced by ending a paragraph with the special marker ::. The literal block must be indented (and, like all paragraphs, separated from the surrounding ones by blank lines). N)rrr~r)r rmr r r codeblockEs  zReSTStyle.codeblockcCs@|jjdkr|jd|jd|jddS|dS)Nr .. toctree::  :maxdepth: 1 z :titlesonly: )rrr7rrr r r toctreePs    zReSTStyle.toctreecCsF|jjdkr ||dS|r|jd|dS|jd|dS)Nmanz %s)rrrr~)r item file_namer r r tocitemXs zReSTStyle.tocitemcCs8|jjdkr|jd|jd|jddSdS)Nrrrz :hidden: rrr r r hidden_toctreeas   zReSTStyle.hidden_toctreecCs|jjdkr ||dSdS)Nr)rrr)r rr r r hidden_tocitemgs zReSTStyle.hidden_tocitemcCs@|jd|dur|j||dur|jd|dSdS)Nz.. contents:: z :depth: %s)rr7r~)r r$depthr r r table_of_contentsks  zReSTStyle.table_of_contentscC,||jd|||dS)Nz.. py:class:: %sro)r class_namer r r start_sphinx_py_classr zReSTStyle.start_sphinx_py_classcCrrrrsrr r r end_sphinx_py_classxrRzReSTStyle.end_sphinx_py_classcCsD|d|}|dur|d|7}|j|||dS)Nz.. py:method:: %sz(%s)ro)r method_name parameterscontentr r r start_sphinx_py_method|s   z ReSTStyle.start_sphinx_py_methodcCrrrrsrr r r end_sphinx_py_methodrRzReSTStyle.end_sphinx_py_methodcCr)Nz.. py:attribute:: %sro)r attr_namer r r start_sphinx_py_attrrzReSTStyle.start_sphinx_py_attrcCrrrrsrr r r end_sphinx_py_attrrRzReSTStyle.end_sphinx_py_attrcCs"|}|D]}|j|qdSr) splitlinesrr~)r docstringdocstring_linesdocstring_liner r r write_py_doc_stringszReSTStyle.write_py_doc_stringcC4|jjdkr|jd||fdS|j|dS)Nrz `%s <%s>`_rrVr r r external_link zReSTStyle.external_linkcCr)NrrUr)r r$pager r r internal_linkrzReSTStyle.internal_linkr*r)NN)Br+r,r-r rr9r<rArGrJrMrQr!r%rZr_r&r'rbrcr)rfrhrkrlrmrprtrurvrwrxr}rrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrr r r r r0Cs                         r0)logging getLoggerloggerobjectrr0r r r r s 0