Files
old-parkingkoncept/parkingkonceptvenv/lib/python3.7/site-packages/docutils/__pycache__/nodes.cpython-37.pyc

855 lines
80 KiB
Plaintext
Raw Normal View History

2019-11-17 12:44:16 +01:00
B
<00>[<5B>]<5D>1<00>"@s dZdZddlZddlZddlZddlZddlZddlZGdd<05>de<08>Z ej
dkrdGdd<08>de <0B>Z ne Z d d
<EFBFBD>Z <0A>dFd d <0A>ZGdd<0F>de e <0C>ZGdd<11>de <09>ZGdd<13>de<10>ZGdd<15>de<11>ZGdd<17>d<17>ZGdd<19>d<19>ZGdd<1B>d<1B>ZGdd<1D>d<1D>ZGdd<1F>d<1F>ZGd d!<21>d!<21>ZGd"d#<23>d#e<17>ZGd$d%<25>d%<25>ZGd&d'<27>d'<27>ZGd(d)<29>d)e<1B>ZGd*d+<2B>d+e<1B>ZGd,d-<2D>d-e<1B>ZGd.d/<2F>d/e<1B>ZGd0d1<64>d1e<17>Z Gd2d3<64>d3<64>Z!Gd4d5<64>d5<64>Z"Gd6d7<64>d7e<13>Z#Gd8d9<64>d9e<13>Z$Gd:d;<3B>d;<3B>Z%Gd<d=<3D>d=eee<10>Z&Gd>d?<3F>d?eee<11>Z'Gd@dA<64>dAeee<11>Z(GdBdC<64>dCee<11>Z)GdDdE<64>dEee<10>Z*GdFdG<64>dGee<11>Z+GdHdI<64>dIee<10>Z,GdJdK<64>dKee<11>Z-GdLdM<64>dMee<12>Z.GdNdO<64>dOee<11>Z/GdPdQ<64>dQee<11>Z0GdRdS<64>dSee<11>Z1GdTdU<64>dUee<11>Z2GdVdW<64>dWee<11>Z3GdXdY<64>dYee<11>Z4GdZd[<5B>d[ee<10>Z5Gd\d]<5D>d]ee<10>Z6Gd^d_<64>d_ee<10>Z7Gd`da<64>daee<10>Z8Gdbdc<64>dcee<10>Z9Gddde<64>deee<10>Z:Gdfdg<64>dgee<10>Z;Gdhdi<64>diee<11>Z<Gdjdk<64>dkee<10>Z=Gdldm<64>dmee<10>Z>Gdndo<64>doee<10>Z?Gdpdq<64>dqee<10>Z@Gdrds<64>dse!e<10>ZAGdtdu<64>duee<10>ZBGdvdw<64>dwe!e<10>ZCGdxdy<64>dye!e<11>ZDGdzd{<7B>d{e!e<11>ZEGd|d}<7D>d}e!e<10>ZFGd~d<64>dee<10>ZGGd<>d<EFBFBD><64>d<>e!e<10>ZHGd<>d<EFBFBD><64>d<>e!e<11>ZIGd<>d<EFBFBD><64>d<>e!e<10>ZJGd<>d<EFBFBD><64>d<>e!e<10>ZKGd<>d<EFBFBD><64>d<>e!e<11>ZLGd<>d<EFBFBD><64>d<>e!e<10>ZMGd<>d<EFBFBD><64>d<>ee<10>ZNGd<>d<EFBFBD><64>d<>e!e<10>ZOGd<>d<EFBFBD><64>d<>e!e<11>ZPGd<>d<EFBFBD><64>d<>e!e<10>ZQGd<>d<EFBFBD><64>d<>ee<12>ZRGd<>d<EFBFBD><64>d<>ee<12>ZSGd<>d<EFBFBD><64>d<>ee<12>ZTGd<>d<EFBFBD><64>d<>ee<10>ZUGd<>d<EFBFBD><64>d<>e!e<11>ZVGd<>d<EFBFBD><64>d<>ee<10>ZWGd<>d<EFBFBD><64>d<>e!e<11>ZXGd<>d<EFBFBD><64>d<>ee<10>ZYGd<>d<EFBFBD><64>d<>ee<10>ZZGd<>d<EFBFBD><64>d<>ee<10>Z[Gd<>d<EFBFBD><64>d<>ee<10>Z\Gd<>d<EFBFBD><64>d<>ee<10>Z]Gd<>d<EFBFBD><64>d<>ee<10>Z^Gd<>d<EFBFBD><64>d<>ee<10>Z_Gd<>d<EFBFBD><64>d<>ee<10>Z`Gd<>d<EFBFBD><64>d<>ee<10>ZaGd<>d<EFBFBD><64>d<>ee<10>ZbGd<>d<EFBFBD><64>d<>ee e<12>ZcGd<>d<EFBFBD><64>d<>ee e<11>ZdGd<>d<EFBFBD><64>d<>ee e"ee$<24>ZeGd<>d<EFBFBD><64>d<>eeee%e$<24>ZfGd<>d<EFBFBD><64>d<>eeee%e$<24>ZgGd<>d<EFBFBD><64>d<>e!e<11>ZhGd<>d<>ee<10>ZiGd<>d<>e!e<11>ZjGd<>d<>e!e<10>ZkGd<>d<>ee<10>ZlGd<>d˄d<>e!e<10>ZmGd<>d<>e!e<10>ZnGd<>d<>e!e<10>ZoGd<>d<>e!e<10>ZpGd<>d<>e!e<10>ZqGd<>d<>e!e<10>ZrGd<>d<>eeee<10>ZsGd<>d<>ee e<10>ZtGd<>d<>ee"ee<12>ZuGd<>d<>e"e<11>ZvGd<>d<>e"e<11>ZwGd<>d<EFBFBD><64>d<>e"e<11>ZxGd<>d<EFBFBD><64>d<>ee"e#e<11>ZyGd<>d<EFBFBD><64>d<>e"e#e<11>ZzGd<>d<EFBFBD><64>d<>e"e#e<11>Z{Gd<>d<EFBFBD><64>d<>e"e<11>Z|Gd<>d<EFBFBD><64>d<>e"e<11>Z}Gd<>d<EFBFBD><64>d<>e"e<11>Z~Gd<>d<EFBFBD><64>d<>e"e<11>ZGd<>d<EFBFBD><64>d<>e"e<11>Z<>Gd<>d<EFBFBD><64>d<>e"e<11>Z<>Gd<>d<EFBFBD><64>d<>e"e<11>Z<>Gd<>d<EFBFBD><64>d<>ee"e<10>Z<>Gd<>d<EFBFBD><64>d<>e"e<11>Z<>Gd<>d<EFBFBD><64>d<>e"e<11>Z<>Gd<>d<EFBFBD><64>d<>e"e<11>Z<>d<EFBFBD><64><EFBFBD><EFBFBD>Z<>Gd<><64>d<00><00>d<00>Z<>G<00>d<01>d<02><00>de<><65>Z<>G<00>d<03>d<04><00>de<><65>Z<><5A>d<05>d<06>Z<><5A>d<07>d<08>Z<><5A>d <09>d
<EFBFBD>Z<><5A>d <0B>d <0C>Z<>e<EFBFBD>e<EFBFBD><65>G<00>d <0A>d<0E><00>de<><65>Z<>G<00>d<0F>d<10><00>de<><65>Z<>G<00>d<11>d<12><00>de<><65>Z<>G<00>d<13>d<14><00>de<><65>Z<>G<00>d<15>d<16><00>de<><65>Z<>G<00>d<17>d<18><00>de<><65>Z<>G<00>d<19>d<1A><00>de<><65>Z<>G<00>d<1B>d<1C><00>de<><65>Z<><5A>d<1D>d<1E>Z<>e<04><><EFBFBD>d<1F>Z<>e<04><><EFBFBD>d <20>Z<><5A>d!<21>d"<22>d#<23>d$<24>d%<25>d&<26>d'<27>d'<27>d(<28>d"<22>d)<29>d*<2A>d%<25>d+<2B>d,<2C>d&<26>d&<26>d-<2D>d.<2E>d/<2F>d.<2E>d%<25>d+<2B>d&<26>d0<64>d(<28>d1<64>d.<2E>d2<64>d0<64>d3<64>d4<64>d-<2D>d5<64>!Z<><5A>d6<64>d7<64>d8<64>d9<64>d:<3A>d;<3B>Z<><5A>d<<3C>d=<3D>Z<><5A>d><3E>d?<3F>Z<><5A>d@<40>dA<64>Z<><5A>dB<64>dC<64>Z<><5A>dD<64>dE<64>Z<>dS(Ga<>
Docutils document tree element class library.
Classes in CamelCase are abstract base classes or auxiliary classes. The one
exception is `Text`, for a text (PCDATA) node; uppercase is used to
differentiate from element classes. Classes in lower_case_with_underscores
are element classes, matching the XML element generic identifiers in the DTD_.
The position of each node (the level at which it can occur) is significant and
is represented by abstract base classes (`Root`, `Structural`, `Body`,
`Inline`, etc.). Certain transformations will be easier because we can use
``isinstance(node, base_class)`` to determine the position of the node in the
hierarchy.
.. _DTD: http://docutils.sourceforge.net/docs/ref/docutils.dtd
ZreStructuredText<78>Nc@s<>eZdZdZdZdZdZdZdd<04>Ze j
dkr6dd<07>Z d$dd <09>Z d%d d <0A>Z dd<0F>Zdd<11>Zdd<13>Zdd<15>Zdd<17>Zdd<19>Zdd<1B>Zdd<1D>Zd&d d!<21>Zd'd"d#<23>ZdS)(<28>Nodez0Abstract base class of nodes in a document tree.NcCsdS)a8
Node instances are always true, even if they're empty. A node is more
than a simple container. Its boolean "truth" does not depend on
having one or more subnodes in the doctree.
Use `len()` to check node length. Use `None` to represent a boolean
false value.
T<>)<01>selfrr<00>4/tmp/pip-install-u_6_z2pz/docutils/docutils/nodes.py<70>__bool__4s z Node.__bool__)<01>cCst|<00><01>d<01>S)NZraw_unicode_escape)<02>str<74>encode)rrrr<00>__str__Bsz Node.__str__cCs,|dkrddlmm}|<01><03>}|<00>|<02>S)z6Return a DOM **fragment** representation of this Node.Nr)<05>xml.dom.minidom<6F>dom<6F>minidom<6F>Document<6E> _dom_node)rr <00>domrootrrr<00>asdomEsz
Node.asdom<6F> rcCst<00>dS)zs
Return an indented pseudo-XML representation, for test purposes.
Override in subclasses.
N)<01>NotImplementedError)r<00>indent<6E>levelrrr<00>pformatLsz Node.pformatcCst<00>dS)zReturn a copy of self.N)r)rrrr<00>copyTsz Node.copycCst<00>dS)z3Return a deep copy of self (also copying children).N)r)rrrr<00>deepcopyXsz Node.deepcopycCst<00>dS)z,Return a string representation of this Node.N)r)rrrr<00>astext\sz Node.astextcCs@||_|jr<|j|_|jdkr(|jj|_|jdkr<|jj|_dS)N)<06>parent<6E>document<6E>source<63>current_source<63>line<6E> current_line)r<00>childrrr<00> setup_child`s


zNode.setup_childc Cs<>d}|jj<01>d|jj<00>y<>y|<01>|<00>Wn*ttfk
rB|Stk
rTYnX|j }y*x$|dd<03>D]}|<04>
|<01>rld}PqlWWnt k
r<EFBFBD>YnXWnt k
r<EFBFBD>d}YnX|S)a<>
Traverse a tree of `Node` objects, calling the
`dispatch_visit()` method of `visitor` when entering each
node. (The `walkabout()` method is similar, except it also
calls the `dispatch_departure()` method before exiting each
node.)
This tree traversal supports limited in-place tree
modifications. Replacing one node with one or more nodes is
OK, as is removing an element. However, if the node removed
or replaced occurs after the current node, the old node will
still be traversed, and any new nodes will not.
Within ``visit`` methods (and ``depart`` methods for
`walkabout()`), `TreePruningException` subclasses may be raised
(`SkipChildren`, `SkipSiblings`, `SkipNode`, `SkipDeparture`).
Parameter `visitor`: A `NodeVisitor` object, containing a
``visit`` implementation for each `Node` subclass encountered.
Return true if we should stop the traversal.
Fz6docutils.nodes.Node.walk calling dispatch_visit for %sNT) r<00>reporter<65>debug<75> __class__<5F>__name__<5F>dispatch_visit<69> SkipChildren<65>SkipNode<64> SkipDeparture<72>children<65>walk<6C> SkipSiblings<67> StopTraversal)r<00>visitor<6F>stopr*r rrrr+is, 



z Node.walkcCs<>d}d}|jj<01>d|jj<00>y<>y|<01>|<00>Wn*tk
rB|Stk
rXd}YnX|j}y*x$|dd<04>D]}|<05> |<01>rpd}PqpWWnt
k
r<EFBFBD>YnXWn*t k
r<EFBFBD>Ynt k
r<EFBFBD>d}YnX|r<>|jj<01>d|jj<00>|<01> |<00>|S)a<>
Perform a tree traversal similarly to `Node.walk()` (which
see), except also call the `dispatch_departure()` method
before exiting each node.
Parameter `visitor`: A `NodeVisitor` object, containing a
``visit`` and ``depart`` implementation for each `Node`
subclass encountered.
Return true if we should stop the traversal.
TFz;docutils.nodes.Node.walkabout calling dispatch_visit for %sNz?docutils.nodes.Node.walkabout calling dispatch_departure for %s)rr"r#r$r%r&r(r)r*<00> walkaboutr,r'r-<00>dispatch_departure)rr.Z call_departr/r*r rrrr0<00>s<  




 
zNode.walkaboutcCs<g}t||<01>r|<02>|<00>x|jD]}|<02>|<03>|<01><01>q W|S)z:Specialized traverse() that only supports instance checks.)<05>
isinstance<EFBFBD>appendr*<00>extend<6E>_fast_traverse)r<00>cls<6C>resultr rrrr5<00>s 

 zNode._fast_traversecCs0g}|<01>|<00>x|jD]}|<01>|<02><03><00>qW|S)z:Specialized traverse() that doesn't check for a condition.)r3r*r4<00> _all_traverse)rr7r rrrr8<00>s

 zNode._all_traverseTFc
Cs|rd}|r8|r8|s8|dkr$|<00><00>St|t<02>r8|<00>|<01>St|t<02>rR|}|fdd<04>}g}|rt|dksj||<00>rt|<07>|<00>|r<>t|j<06>r<>x&|D]}|<07>|jdddd|d<06><05>q<>W|s<>|<05>r|} x^| j <09>r| j <09>
| <09>}
x4| j |
dd<02>D]} |<07>| jd|dd|d<06><05>q<>W|<05>sPq<>| j } q<>W|S)a
Return an iterable containing
* self (if include_self is true)
* all descendants in tree traversal order (if descend is true)
* all siblings (if siblings is true) and their descendants (if
also descend is true)
* the siblings of the parent (if ascend is true) and their
descendants (if also descend is true), and so on
If `condition` is not None, the iterable contains only nodes
for which ``condition(node)`` is true. If `condition` is a
node class ``cls``, it is equivalent to a function consisting
of ``return isinstance(node, cls)``.
If ascend is true, assume siblings to be true as well.
For example, given the following tree::
<paragraph>
<emphasis> <--- emphasis.traverse() and
<strong> <--- strong.traverse() are called.
Foo
Bar
<reference name="Baz" refid="baz">
Baz
Then list(emphasis.traverse()) equals ::
[<emphasis>, <strong>, <#text: Foo>, <#text: Bar>]
and list(strong.traverse(ascend=True)) equals ::
[<strong>, <#text: Foo>, <#text: Bar>, <reference>, <#text: Baz>]
TNcSs
t||<01>S)N)r2)<02>node<64>
node_classrrr<00> conditionsz Node.traverse.<locals>.conditionF)<05> include_self<6C>descend<6E>siblings<67>ascendr;<00>) r8r2<00>typer5r3<00>lenr*r4<00>traverser<00>index) rr;r<r=r>r?r:<00>rr r9rDZsiblingrrrrC<00>s>% 


 

 

 

z Node.traversecCs6|j|||||d<01>}y|dStk
r0dSXdS)z<>
Return the first node in the iterable returned by traverse(),
or None if the iterable is empty.
Parameter list is the same as of traverse. Note that
include_self defaults to 0, though.
)r;r<r=r>r?rN)rC<00>
IndexError)rr;r<r=r>r?<00>iterablerrr<00> next_nodes 
zNode.next_node)N)rr)NTTFF)NFTFF)r%<00>
__module__<EFBFBD> __qualname__<5F>__doc__rrrrr<00>sys<79> version_infor
rrrrrr!r+r0r5r8rCrHrrrrr$s,


 .+ 
Jr)rc@seZdZdZdd<03>ZdS)<05> reprunicodezU
A unicode sub-class that removes the initial u from unicode's repr.
cCst<00>|<00>dd<00>S)Nr@)r<00>__repr__)rrrrrO5szreprunicode.__repr__N)r%rIrJrKrOrrrrrN0srNcCs$tjdkr t|t<03>r |<00>dd<03>S|S)z4
Failsave conversion of `unicode` to `str`.
)r<00>ascii<69>backslashreplace)rLrMr2rr )<01>srrr<00>
ensure_str;s rSFcCs6|r|<00>dd<02>SxdD]}d<04>|<00>|<03><01>}qW|SdS)zw
Return a string with nulls removed or restored to backslashes.
Backslash-escaped spaces are also removed.
<20><00>\)z z
rT<00>N)<03>replace<63>join<69>split)<04>textZrestore_backslashesZrespect_whitespace<63>seprrr<00>unescapeDs
 
r\c@s<>eZdZdZdZdZejdkr*d!dd<07>Zn
d"dd<07>Zd#d
d <0B>Z d$d d<0E>Z
dd<10>Z dd<12>Z dd<14>Z dd<16>Zdd<18>Zd%dd<1C>Zd&dd<1E>Zd'dd <20>ZdS)(<28>Textz<74>
Instances are terminal nodes (leaves) containing text only; no child
nodes or attributes. Initialize by passing a string to the constructor.
Access the text itself with the `astext` method.
z#textr)rNcCst|t<01>rtd<01><01>t<03>||<01>S)z7Prevent the rawsource argument from propagating to str.zexpecting str data, not bytes)r2<00>bytes<65> TypeErrorrN<00>__new__)r6<00>data<74> rawsourcerrrr``s
z Text.__new__cCs t<00>||<01>S)z7Prevent the rawsource argument from propagating to str.)rNr`)r6rarbrrrr`fsrVcCs
||_dS)N)rb)rrarbrrr<00>__init__jsz Text.__init__<5F>cCs6|}t|<02>|kr$|d|d<00>d}d|jt|<02>fS)N<>z ...z<%s: %r>)rB<00>tagnamerN)r<00>maxlenrarrr<00> shortreprns zText.shortreprcCs |jdd<02>S)N<>D)rg)rh)rrrrrOtsz Text.__repr__cCs|<01>t|<00><01>S)N)ZcreateTextNoder)rrrrrrwszText._dom_nodecCs tt|<00><01>S)N)rNr\)rrrrrzsz Text.astextcCs|jt|<00>|jd<01>S)N)rb)r$rNrb)rrrrr<00>sz Text.copycCs|<00><00>S)N)r)rrrrr<00>sz Text.deepcopy<70> rcs8<00>|<00><00>fdd<02>|<00><00><00><01>D<00>}|s*dSd<04>|<03>dS)Ncsg|] }<01>|<00>qSrr)<02>.0r)rrr<00>
<listcomp><3E>sz Text.pformat.<locals>.<listcomp>rV<00>
)r<00>
splitlinesrX)rrr<00>linesr)rrr<00>s
z Text.pformatcCs|<00>t<01>||<01>|j<03>S)N)r$rN<00>rstriprb)r<00>charsrrrrp<00>sz Text.rstripcCs|<00>t<01>||<01>|j<03>S)N)r$rN<00>lstriprb)rrqrrrrr<00>sz Text.lstrip)N)N)rV)rd)rjr)N)N)r%rIrJrKrfr*rLrMr`rcrhrOrrrrrrprrrrrrr]Rs 
 


 
r]c@sBeZdZdZdZdZeeZedZdZdZ d~dd <09>Z
d
d <0B>Z d d <0A>Z dd<0F>Z dd<11>ZejdkrdeZddd<14>Zdd<16>Zdd<18>Zdd<1A>Zdd<1C>Zdd<1E>Zdd <20>Zd!d"<22>Zd#d$<24>Zd%d&<26>Zd'd(<28>Zd)d*<2A>Zd+d,<2C>Zd-d.<2E>Zd<>d/d0<64>Z d1d2<64>Z!d3d4<64>Z"d<>d5d6<64>Z#e!Z$e!Zd<>d7d8<64>Z%d9d:<3A>Z&d;d<<3C>Z'd=d><3E>Z(d<>d@dA<64>Z)dBdC<64>Z*dDdE<64>Z+dFdG<64>Z,dHdI<64>Z-dJdK<64>Z.dLdM<64>Z/d<>dOdP<64>Z0d<30>dQdR<64>Z1dSdT<64>Z2dUdV<64>Z3dWdX<64>Z4e4dNdYfdZd[<5B>Z5d<35>d\d]<5D>Z6d<36>d^d_<64>Z7d<37>d`da<64>Z8d<38>dbdc<64>Z9ddde<64>Z:dfdg<64>Z;dhdi<64>Z<djej=fdkdl<64>Z>djej=fdmdn<64>Z?d<>dpdq<64>Z@drds<64>ZAdtdu<64>ZBdvdw<64>ZCd<43>dxdy<64>ZDeEdzd{<7B><00>ZFeEd|d}<7D><00>ZGdS)<29><>Elementa<74>
`Element` is the superclass to all specific elements.
Elements contain attributes and child nodes. Elements emulate
dictionaries for attributes, indexing by attribute name (a string). To
set the attribute 'att' to 'value', do::
element['att'] = 'value'
There are two special attributes: 'ids' and 'names'. Both are
lists of unique identifiers, and names serve as human interfaces
to IDs. Names are case- and whitespace-normalized (see the
fully_normalize_name() function), and IDs conform to the regular
expression ``[a-z](-?[a-z0-9]+)*`` (see the make_id() function).
Elements also emulate lists for child nodes (element nodes and/or text
nodes), indexing by integer. To get the first child node, use::
element[0]
Elements may be constructed using the ``+=`` operator. To add one new
child node to element, do::
element += node
This is equivalent to ``element.append(node)``.
To add a list of multiple child nodes at once, use the same ``+=``
operator::
element += [node1, node2]
This is equivalent to ``element.extend([node1, node2])``.
)<04>ids<64>classes<65>names<65>dupnames)<01>backrefs)rrbNz
rVcOs<>||_g|_|<00>|<02>i|_x|jD]}g|j|<q$WxHt|<03><06><00>D]8\}}|<04><07>}||jkrr|dd<00>|j|<qD||j|<qDW|jdkr<>|j j
|_dS)N) rbr*r4<00>
attributes<EFBFBD>list_attributes<65>list<73>items<6D>lowerrfr$r%)rrbr*ry<00>att<74>valuerrrrc<00>s
 

zElement.__init__cCst|<01>|j<01>}xB|<00><02>D]6\}}t|t<04>r<d<01>dd<03>|D<00><01>}|<02>|d|<00>qWx|jD]}|<02>|<05> |<01><01>qXW|S)N<> cSsg|]}td|f<00><01>qS)z%s)<01> serial_escape)rk<00>vrrrrl<00>sz%Element._dom_node.<locals>.<listcomp>z%s)
<EFBFBD> createElementrf<00>attlistr2r{rXZ setAttributer*<00> appendChildr)rr<00>element<6E> attributerr rrrr<00>s 
 zElement._dom_nodecCs<>d}x8|jD].}||<02><01>7}t|<01>dkr |dd<03>d}Pq W|drld|jjd<07>dd <09>|dD<00><01>|fSd
|jj|fSdS) NrV<00><<00>8z ...rvz <%s "%s": %s>z; cSsg|] }t|<01><01>qSr)rS)rk<00>nrrrrl sz$Element.__repr__.<locals>.<listcomp>z<%s: %s>)r*rhrBr$r%rX)rra<00>crrrrOs   zElement.__repr__cCs:|dr,d|jjd<03>dd<05>|dD<00><01>fSd|jSdS)Nrvz <%s "%s"...>z; cSsg|] }t|<01><01>qSr)rS)rkr<>rrrrlsz%Element.shortrepr.<locals>.<listcomp>z<%s...>)r$r%rXrf)rrrrrhszElement.shortreprcCs:|jr.d|<00><01>d<02>dd<04>|jD<00><01>|<00><03>fS|<00><04>SdS)Nz%s%s%srVcSsg|] }t|<01><01>qSr)r)rkr<>rrrrlsz'Element.__unicode__.<locals>.<listcomp>)r*<00>starttagrX<00>endtag<61>emptytag)rrrr<00> __unicode__s
 zElement.__unicode__)rcCs<>|dkr t}|jg}xr|<00><02>D]f\}}|dkr>|<02>d|<00>qt|t<05>rbdd<03>|D<00>}d<04>|<05>}nt|<04>}||<04>}|<02>d||f<00>qWdd<04>|<02>S)Nz %s="True"cSsg|]}td|f<00><01>qS)z%s)r<>)rkr<>rrrrl-sz$Element.starttag.<locals>.<listcomp>r<>z%s=%sz<%s>)<08>pseudo_quoteattrrfr<>r3r2r{rXr)r<00> quoteattr<74>parts<74>namer<00>valuesrrrr<>#s
 zElement.starttagcCs
d|jS)Nz</%s>)rf)rrrrr<>5szElement.endtagcCs$dd<02>|jgdd<04>|<00><02>D<00><00>S)Nz<%s/>r<>cSsg|]\}}d||f<00>qS)z%s="%s"r)rkr<>r<>rrrrl:sz$Element.emptytag.<locals>.<listcomp>)rXrfr<>)rrrrr<>8s zElement.emptytagcCs
t|j<01>S)N)rBr*)rrrr<00>__len__=szElement.__len__cCst|t<01>r||jkS||jkS)N)r2rryr*)r<00>keyrrr<00> __contains__@s

zElement.__contains__cCsbt|t<01>r|j|St|t<03>r(|j|St|t<05>rV|jdksDtd<02><01>|j|j|j <09>St
d<03><01>dS)N)Nr@zcannot handle slice with stridezFelement index must be an integer, a slice, or an attribute name string) r2rry<00>intr*<00>slice<63>step<65>AssertionError<6F>startr/r_)rr<>rrr<00> __getitem__Gs




zElement.__getitem__cCs<>t|t<01>r||jt|<01><npt|t<03>r:|<00>|<02>||j|<nPt|t<06>r<>|jdksVtd<02><01>x|D]}|<00>|<03>q\W||j|j |j
<EFBFBD><nt d<03><01>dS)N)Nr@zcannot handle slice with stridezFelement index must be an integer, a slice, or an attribute name string) r2rryr<>r!r*r<>r<>r<>r<>r/r_)rr<><00>itemr9rrr<00> __setitem__Ss


 

zElement.__setitem__cCsbt|t<01>r|j|=nJt|t<03>r(|j|=n6t|t<05>rV|jdksDtd<02><01>|j|j|j <09>=nt
d<03><01>dS)N)Nr@zcannot handle slice with stridezMelement index must be an integer, a simple slice, or an attribute name string) r2rryr<>r*r<>r<>r<>r<>r/r_)rr<>rrr<00> __delitem__bs




zElement.__delitem__cCs
|j|S)N)r*)r<00>otherrrr<00>__add__nszElement.__add__cCs
||jS)N)r*)rr<>rrr<00>__radd__qszElement.__radd__cCs,t|t<01>r|<00>|<01>n|dk r(|<00>|<01>|S)z4Append a node or a list of nodes to `self.children`.N)r2rr3r4)rr<>rrr<00>__iadd__ts

 
zElement.__iadd__cCs|j<00>dd<02>|jD<00><01>S)NcSsg|] }|<01><00><00>qSr)r)rkr rrrrl~sz"Element.astext.<locals>.<listcomp>)<03>child_text_separatorrXr*)rrrrr|szElement.astextcCs6i}x,t|j<01><02><00>D]\}}|<00>|<02>r|||<qW|S)N)r{ryr|<00>is_not_default)rZattsr<73>rrrr<00>non_default_attributes<65>s

 zElement.non_default_attributescCst|<00><01><00><02><00>}|<01><03>|S)N)r{r<>r|<00>sort)rr<>rrrr<><00>szElement.attlistcCs|j<00>||<02>S)N)ry<00>get)rr<><00>failobjrrrr<><00>sz Element.getcCs
||jkS)N)ry)r<00>attrrrr<00>hasattr<74>szElement.hasattrcCs||jkr|j|=dS)N)ry)rr<>rrr<00>delattr<74>s
zElement.delattrcCs|j<00>||<02>S)N)ry<00>
setdefault)rr<>r<>rrrr<><00>szElement.setdefaultcCsRx*|<00>dg<00>D]}|<02>d<02>r|dd<04>SqWy |j<02>|<01>Stk
rL|SXdS)z<>Return node's language tag.
Look iteratively in self and parents for a class argument
starting with ``language-`` and return the remainder of it
(which should be a `BCP49` language tag) or the `fallback`.
ruz language-<2D> N)r<><00>
startswithrZ get_language<67>AttributeError)r<00>fallbackr6rrr<00>get_language_code<64>s
 zElement.get_language_codecCs|<00>|<01>|j<01>|<01>dS)N)r!r*r3)rr<>rrrr3<00>s
zElement.appendcCsx|D]}|<00>|<02>qWdS)N)r3)rr<>r9rrrr4<00>s
zElement.extendcCs<t|t<01>r$|<00>|<02>|j<03>||<02>n|dk r8||||<01><dS)N)r2rr!r*<00>insert)rrDr<>rrrr<><00>s


zElement.insert<72><74><EFBFBD><EFBFBD><EFBFBD>cCs |j<00>|<01>S)N)r*<00>pop)r<00>irrrr<><00>sz Element.popcCs|j<00>|<01>dS)N)r*<00>remove)rr<>rrrr<><00>szElement.removecCs |j<00>|<01>S)N)r*rD)rr<>rrrrD<00>sz Element.indexcCs"||gkr||jkrdSdSdS)Nrr@)rz)rr<>rrrr<><00>szElement.is_not_defaultcCs8t|t<01>r|j}x"|jD]}|<00>||<01>|g<00><02>qWdS)z<>
Update basic attributes ('ids', 'names', 'classes',
'dupnames', but not 'source') from node or dictionary `dict_`.
N)r2rry<00>basic_attributes<65>append_attr_listr<74>)r<00>dict_r~rrr<00>update_basic_atts<74>s
 zElement.update_basic_attscCs,x&|D]}|||kr||<00>|<03>qWdS)z<>
For each element in values, if it does not exist in self[attr], append
it.
NOTE: Requires self[attr] and values to be sequence type and the
former should specifically be a list.
N)r3)rr<>r<>rrrrr<><00>s
 zElement.append_attr_listcCs>t|<00>|<01>t<02>s||g||<t|t<02>s.|g}|<00>||<02>dS)a 
First, convert both self[attr] and value to a non-string sequence
type; if either is not already a sequence, convert it to a list of one
element. Then call append_attr_list.
NOTE: self[attr] and value both must not be None.
N)r2r<>r{r<>)rr<>rrrr<00>coerce_append_attr_list<73>s

zElement.coerce_append_attr_listTcCs|s|<00>|<01>dkr|||<dS)z<>
If self[attr] does not exist or force is True or omitted, set
self[attr] to value, otherwise do nothing.
N)r<>)rr<>r<00>forcerrr<00> replace_attr<74>szElement.replace_attrcCs|<00>|<01>|k r|<00>||<02>dS)a
If attr is an attribute of self, set self[attr] to
[self[attr], value], otherwise set self[attr] to value.
NOTE: replace is not used by this function and is kept only for
compatibility with the other copy functions.
N)r<>r<>)rr<>rrWrrr<00>copy_attr_convert<72>szElement.copy_attr_convertcCsH|<00>|<01>|k rDt|<00>|<01>t<02>s(t|t<02>r6|<00>||<02>n|<00>|||<03>dS)a<>
If attr is an attribute of self and either self[attr] or value is a
list, convert all non-sequence values to a sequence of 1 element and
then concatenate the two sequence, setting the result to self[attr].
If both self[attr] and value are non-sequences and replace is True or
self[attr] is None, replace self[attr] with value. Otherwise, do
nothing.
N)r<>r2r{r<>r<>)rr<>rrWrrr<00>copy_attr_coerces

zElement.copy_attr_coercecCsH|<00>|<01>|k rDt|<00>|<01>t<02>r6t|t<02>r6|<00>||<02>n|<00>|||<03>dS)aM
If attr is an attribute of self and both self[attr] and value are
lists, concatenate the two sequences, setting the result to
self[attr]. If either self[attr] or value are non-sequences and
replace is True or self[attr] is None, replace self[attr] with value.
Otherwise, do nothing.
N)r<>r2r{r<>r<>)rr<>rrWrrr<00>copy_attr_concatenates

zElement.copy_attr_concatenatecCs |<00>|<01>|k r|<00>|||<03>dS)zz
If replace is True or self[attr] is None, replace self[attr] with
value. Otherwise, do nothing.
N)r<>r<>)rr<>rrWrrr<00>copy_attr_consistent$szElement.copy_attr_consistentFcCsVt|t<01>r|j}|r|j}n|j}|<00>|<01>x$t||<01>D]}||||||<03>q8WdS)a.
Updates all attributes from node or dictionary `dict_`.
Appends the basic attributes ('ids', 'names', 'classes',
'dupnames', but not 'source') and then, for all other attributes in
dict_, updates the same attribute in self. When attributes with the
same identifier appear in both self and dict_, the two values are
merged based on the value of update_fun. Generally, when replace is
True, the values in self are replaced or merged with the values in
dict_; otherwise, the values in self may be preserved or merged. When
and_source is True, the 'source' attribute is included in the copy.
NOTE: When replace is False, and self contains a 'source' attribute,
'source' is not replaced even when dict_ has a 'source'
attribute, though it may still be merged into a list depending
on the value of update_fun.
NOTE: It is easier to call the update-specific methods then to pass
the update_fun method to this function.
N)r2rry<00>is_not_list_attribute<74>is_not_known_attributer<65><00>filter)rr<>Z
update_funrW<00>
and_sourceZ
filter_funr~rrr<00>update_all_atts,s

zElement.update_all_attscCs|<00>|tj||<03>dS)aC
Updates all attributes from node or dictionary `dict_`.
Appends the basic attributes ('ids', 'names', 'classes',
'dupnames', but not 'source') and then, for all other attributes in
dict_, updates the same attribute in self. When attributes with the
same identifier appear in both self and dict_ and replace is True, the
values in self are replaced with the values in dict_; otherwise, the
values in self are preserved. When and_source is True, the 'source'
attribute is included in the copy.
NOTE: When replace is False, and self contains a 'source' attribute,
'source' is not replaced even when dict_ has a 'source'
attribute, though it may still be merged into a list depending
on the value of update_fun.
N)r<>rsr<>)rr<>rWr<>rrr<00>update_all_atts_consistantlyRs z$Element.update_all_atts_consistantlycCs|<00>|tj||<03>dS)a
Updates all attributes from node or dictionary `dict_`.
Appends the basic attributes ('ids', 'names', 'classes',
'dupnames', but not 'source') and then, for all other attributes in
dict_, updates the same attribute in self. When attributes with the
same identifier appear in both self and dict_ whose values aren't each
lists and replace is True, the values in self are replaced with the
values in dict_; if the values from self and dict_ for the given
identifier are both of list type, then the two lists are concatenated
and the result stored in self; otherwise, the values in self are
preserved. When and_source is True, the 'source' attribute is
included in the copy.
NOTE: When replace is False, and self contains a 'source' attribute,
'source' is not replaced even when dict_ has a 'source'
attribute, though it may still be merged into a list depending
on the value of update_fun.
N)r<>rsr<>)rr<>rWr<>rrr<00>update_all_atts_concatenatinggs z%Element.update_all_atts_concatenatingcCs|<00>|tj||<03>dS)a[
Updates all attributes from node or dictionary `dict_`.
Appends the basic attributes ('ids', 'names', 'classes',
'dupnames', but not 'source') and then, for all other attributes in
dict_, updates the same attribute in self. When attributes with the
same identifier appear in both self and dict_ whose values are both
not lists and replace is True, the values in self are replaced with
the values in dict_; if either of the values from self and dict_ for
the given identifier are of list type, then first any non-lists are
converted to 1-element lists and then the two lists are concatenated
and the result stored in self; otherwise, the values in self are
preserved. When and_source is True, the 'source' attribute is
included in the copy.
NOTE: When replace is False, and self contains a 'source' attribute,
'source' is not replaced even when dict_ has a 'source'
attribute, though it may still be merged into a list depending
on the value of update_fun.
N)r<>rsr<>)rr<>rWr<>rrr<00>update_all_atts_coercions z Element.update_all_atts_coercioncCs|j|tj|d<01>dS)a}
Updates all attributes from node or dictionary `dict_`.
Appends the basic attributes ('ids', 'names', 'classes',
'dupnames', but not 'source') and then, for all other attributes in
dict_, updates the same attribute in self. When attributes with the
same identifier appear in both self and dict_ then first any non-lists
are converted to 1-element lists and then the two lists are
concatenated and the result stored in self; otherwise, the values in
self are preserved. When and_source is True, the 'source' attribute
is included in the copy.
NOTE: When replace is False, and self contains a 'source' attribute,
'source' is not replaced even when dict_ has a 'source'
attribute, though it may still be merged into a list depending
on the value of update_fun.
)r<>N)r<>rsr<>)rr<>r<>rrr<00>update_all_atts_convert<72>s
zElement.update_all_atts_convertcCs
g|_dS)N)r*)rrrr<00>clear<61>sz Element.clearcCsD|<00>|<01>}t|t<02>r(|<00>|<02>|||<n|dk r@||||d<00><dS)z8Replace one child `Node` with another child or children.Nr@)rDr2rr!)r<00>old<6C>newrDrrrrW<00>s 



zElement.replacecCs<>|}t|t<01>s4y |d}Wntk
r2d}YnXt|t<03>rJ|<02>|<00>n,x*|jD] }||rRtd|||f<00><01>qRW|j<07>||<01>dS)zc
Replace `self` node with `new`, where `new` is a node or a
list of nodes.
rNzLosing "%s" attribute: %s) r2rrFrsr<>r<>r<>rrW)rr<><00>updater~rrr<00> replace_self<6C>s
 

  
zElement.replace_selfrcCsRt|t<01>s|f}x<t|tt|<00>|<03><02>D]$}x|D]}t|||<05>r0|Sq0Wq&WdS)aM
Return the index of the first child whose class exactly matches.
Parameters:
- `childclass`: A `Node` subclass to search for, or a tuple of `Node`
classes. If a tuple, any of the classes may match.
- `start`: Initial index to check.
- `end`: Initial index to *not* check.
N)r2<00>tuple<6C>range<67>minrB)r<00>
childclassr<EFBFBD><00>endrDr<>rrr<00>first_child_matching_class<73>s

 z"Element.first_child_matching_classcCsVt|t<01>s|f}x@t|tt|<00>|<03><02>D](}x"|D]}t|j||<05>r0Pq0W|Sq&WdS)aI
Return the index of the first child whose class does *not* match.
Parameters:
- `childclass`: A `Node` subclass to skip, or a tuple of `Node`
classes. If a tuple, none of the classes may match.
- `start`: Initial index to check.
- `end`: Initial index to *not* check.
N)r2r<>r<>r<>rBr*)rr<>r<>r<>rDr<>rrr<00>first_child_not_matching_class<73>s

z&Element.first_child_not_matching_class<73> cs2d<01>d<02><00>|<00><01>fg<01><00>fdd<04>|jD<00><00>S)NrVz%s%s
csg|]}|<01><00><00>d<00><02>qS)r@)r)rkr )rrrrrl<00>sz#Element.pformat.<locals>.<listcomp>)rXr<>r*)rrrr)rrrr<00>s zElement.pformatcCs4|jfd|ji|j<02><02>}|j|_|j|_|j|_|S)Nrb)r$rbryrrr)r<00>objrrrr<00>s
z Element.copycCs"|<00><00>}|<01>dd<02>|jD<00><01>|S)NcSsg|] }|<01><00><00>qSr)r)rkr rrrrlsz$Element.deepcopy.<locals>.<listcomp>)rr4r*)rrrrrrszElement.deepcopycCs2tjdtdd<03>d|kst<03>|d<00>|<01><05><00>dS)z+Add a new class to the "classes" attribute.zadocutils.nodes.Element.set_class deprecated; append to Element['classes'] list attribute directly<6C>)<01>
stacklevelr<EFBFBD>ruN)<06>warnings<67>warn<72>DeprecationWarningr<67>r3r})rr<>rrr<00> set_class s
 zElement.set_classcCsZd|_t|di<00><03>|<01>}t|di<00><03>|<02>}|r@|dk s:t<03>d|_|rV|dk sPt<03>d|_dS)zQNote that this Element has been referenced by its name
`name` or id `id`.r@Zexpect_referenced_by_nameZexpect_referenced_by_idN)<04>
referenced<EFBFBD>getattrr<72>r<>)rr<><00>idZby_nameZby_idrrr<00>note_referenced_bys  zElement.note_referenced_bycCs
||jkS)z<>
Returns True if and only if the given attribute is NOT one of the
basic list attributes defined for all Elements.
)rz)r6r<>rrrr<>"szElement.is_not_list_attributecCs
||jkS)zj
Returns True if and only if the given attribute is NOT recognized by
this class.
)<01>known_attributes)r6r<>rrrr<>*szElement.is_not_known_attribute)rV)N)N)N)rV)r<>)T)T)TF)TF)TF)F)r<>r)NN)Hr%rIrJrKr<>Zlocal_attributesrzr<>rfr<>rcrrOrhr<>rLrMr
r<>r<>r<>r<>r<>r<>r<>r<>r<>r<>r<>rr<>r<>r<>r<>r<>r<>Zhas_keyr<79>r3r4r<>r<>r<>rDr<>r<>r<>r<>r<>r<>r<>r<>r<>r<>r<>r<>r<>r<>r<>rWr<><00>maxsizer<65>r<>rrrr<>r<><00> classmethodr<64>r<>rrrrrs<00>s<>#

 

  




 
%



 

 rsc@seZdZdZdZddd<04>ZdS)<07> TextElementa<74>
An element which directly contains text.
Its children are all `Text` or `Inline` subclass nodes. You can
check whether an element's context is inline simply by checking whether
its immediate parent is a `TextElement` instance (including subclasses).
This is handy for nodes like `image` that can appear both inline and as
standalone body elements.
If passing children to `__init__()`, make sure to set `text` to
``''`` or some other suitable value.
rVcOs@|dkr(t|<02>}tj|||f|<03>|<04>ntj||f|<03>|<04>dS)NrV)r]rsrc)rrbrZr*ryZtextnoderrrrcEs
zTextElement.__init__N)rVrV)r%rIrJrKr<>rcrrrrr<>3s r<>c@seZdZdZddd<04>ZdS)<07>FixedTextElementz5An element which directly contains preformatted text.rVcOs$tj|||f|<03>|<04>d|jd<dS)N<>preservez xml:space)r<>rcry)rrbrZr*ryrrrrcRszFixedTextElement.__init__N)rVrV)r%rIrJrKrcrrrrr<>Nsr<>c@seZdZdZdS)<03>
ResolvablerN)r%rIrJZresolvedrrrrr<>[sr<>c@seZdZdd<02>ZdS)<04> BackLinkablecCs|d<00>|<01>dS)Nrx)r3)r<00>refidrrr<00> add_backrefbszBackLinkable.add_backrefN)r%rIrJr<>rrrrr<>`sr<>c@s eZdZdS)<02>RootN)r%rIrJrrrrr<>jsr<>c@s eZdZdS)<02>TitularN)r%rIrJrrrrr<>lsr<>c@seZdZdZdS)<03>PreBibliographicz<Category of Node which may occur before Bibliographic Nodes.N)r%rIrJrKrrrrr<>nsr<>c@s eZdZdS)<02> BibliographicN)r%rIrJrrrrr<>qsr<>c@s eZdZdS)<02>
DecorativeN)r%rIrJrrrrr<>ssr<>c@s eZdZdS)<02>
StructuralN)r%rIrJrrrrr<>usr<>c@s eZdZdS)<02>BodyN)r%rIrJrrrrr<>wsr<>c@s eZdZdS)<02>GeneralN)r%rIrJrrrrr<>ysr<>c@seZdZdZdS)<03>
SequentialzList-like elements.N)r%rIrJrKrrrrr<>{sr<>c@s eZdZdS)<02>
AdmonitionN)r%rIrJrrrrr<>~sr<>c@seZdZdZdS)<03>SpecialzSpecial internal body elements.N)r%rIrJrKrrrrr<><00>sr<>c@seZdZdZdS)<03> Invisiblez.Internal elements that don't appear in output.N)r%rIrJrKrrrrr<><00>sr<>c@s eZdZdS)<02>PartN)r%rIrJrrrrr<><00>sr<>c@s eZdZdS)<02>InlineN)r%rIrJrrrrr<><00>sr<>c@s eZdZdS)<02> ReferentialN)r%rIrJrrrrr<><00>sr<>c@seZdZdZdZdS)<03>
TargetablerN)r%rIrJr<>Zindirect_reference_namerrrrr<><00>sr<>c@seZdZdZdS)<03>Labeledz(Contains a `label` as its first element.N)r%rIrJrKrrrrr<><00>sr<>c@seZdZdZdd<03>Zdd<05>Zd=dd<08>Zd>d d
<EFBFBD>Zd?d d <0C>Zd d<0E>Z dd<10>Z
d@dd<12>Z dAdd<14>Z dd<16>Z dd<18>Zdd<1A>Zdd<1C>Zdd<1E>Zdd <20>Zd!d"<22>Zd#d$<24>Zd%d&<26>Zd'd(<28>Zd)d*<2A>Zd+d,<2C>ZdBd-d.<2E>Zd/d0<64>ZdCd1d2<64>Zd3d4<64>Zd5d6<64>Zd7d8<64>Zd9d:<3A>Zd;d<<3C>Z dS)Drz<>
The document root element.
Do not instantiate this class directly; use
`docutils.utils.new_document()` instead.
cOs<>tj|f|<03>|<04>d|_d|_||_||_g|_i|_i|_i|_ i|_
i|_ i|_ i|_ i|_i|_g|_g|_g|_g|_g|_g|_d|_d|_d|_g|_g|_ddl}|j<1C>|<00>|_d|_||_ dS)Nr@r)!rsrcrr<00>settingsr"<00>indirect_targets<74>substitution_defs<66>substitution_names<65>refnames<65>refids<64>nameids<64> nametypesrt<00> footnote_refs<66> citation_refs<66> autofootnotes<65>autofootnote_refs<66>symbol_footnotes<65>symbol_footnote_refs<66> footnotes<65> citationsZautofootnote_startZsymbol_footnote_start<72>id_start<72>parse_messages<65>transform_messagesZdocutils.transformsZ
transformsZ Transformer<65> transformer<65>
decorationr)rrr"<00>args<67>kwargsZdocutilsrrrrc<00>s<zdocument.__init__cCs|j<00><01>}d|d<d|d<|S)zB
Return dict with unpicklable references removed.
Nr"r)<02>__dict__r)r<00>staterrr<00> __getstate__s
zdocument.__getstate__NcCs6|dkrddlmm}|<01><03>}|<02>|<00>|<02><01>|S)z-Return a DOM representation of this document.Nr)r r r rr<>r)rr rrrrr s
zdocument.asdomcCs<>xH|dD]<}||jkr
|j||k r
|j<01>d|<00>}|dkr
||7}q
W|ds<>xp|dD]$}|jjt|<05>}|r\||jkr\Pq\Wd}x:|r<>||jkr<>|jj|jjt|j<08>}|jd7_q<>W|d<00> |<03>||j|<|S)NrtzDuplicate ID: "%s".rvrVr@)
rtr"ZsevererZ id_prefix<69>make_idZauto_id_prefixrrr3)rr9<00>msgnoder<65><00>msgr<67>rrr<00>set_ids" 
zdocument.set_idcCsHxB|dD]6}||jkr,|<00>|||||<04>q
||j|<||j|<q
WdS)a<>
`self.nameids` maps names to IDs, while `self.nametypes` maps names to
booleans representing hyperlink type (True==explicit,
False==implicit). This method updates the mappings.
The following state transition table shows how `self.nameids` ("ids")
and `self.nametypes` ("types") change with new input (a call to this
method), and what actions are performed ("implicit"-type system
messages are INFO/1, and "explicit"-type system messages are ERROR/3):
==== ===== ======== ======== ======= ==== ===== =====
Old State Input Action New State Notes
----------- -------- ----------------- ----------- -----
ids types new type sys.msg. dupname ids types
==== ===== ======== ======== ======= ==== ===== =====
- - explicit - - new True
- - implicit - - new False
None False explicit - - new True
old False explicit implicit old new True
None True explicit explicit new None True
old True explicit explicit new,old None True [#]_
None False implicit implicit new None False
old False implicit implicit new,old None False
None True implicit implicit new None True
old True implicit implicit new old True
==== ===== ======== ======== ======= ==== ===== =====
.. [#] Do not clear the name-to-id map or invalidate the old target if
both old and new targets are external and refer to identical URIs.
The new target is invalidated regardless.
rvN)r<00>set_duplicate_name_idr)rr9r<>r<00>explicitr<74>rrr<00>set_name_id_map&s


zdocument.set_name_id_mapc Csf|j|}|j|}|p||j|<|r<>|r<>d}|dk r<>|j|} d|krp|d}
| drpd| krp| d|
krpd}|dkr<>t| |<03>d|j|<|jj|d||g|d<06>} |dkr<>|| 7}t||<03>n&||j|<|dk r<>|j|} t| |<03>n8|dk <09>r|<07>sd|j|<|j|} t| |<03>t||<03>|<05>r8|<07>sb|dk <09>rb|jjd||g|d<06>} |dk<03>rb|| 7}dS)Nr<4E><00>refurirvr@z%Duplicate explicit target name: "%s".)rx<00> base_nodez%Duplicate implicit target name: "%s".)rrrt<00>dupnamer"<00>system_message<67>info) rr9r<>r<>rrZold_idZ old_explicitrZold_noder!rrrrrMsL


 

  

 



 
zdocument.set_duplicate_name_idcCs
||jkS)N)r)rr<>rrr<00>has_namewszdocument.has_namecCs"|<00>||<02>}|j|||dd<01>dS)N)r)rr )r<00>targetrr<>rrr<00>note_implicit_target{s zdocument.note_implicit_targetcCs"|<00>||<02>}|j|||dd<02>dS)NT)r)rr )rr'rr<>rrr<00>note_explicit_targets zdocument.note_explicit_targetcCs|j<00>|dg<00><02>|<01>dS)N<>refname)rr<>r3)rr9rrr<00> note_refname<6D>szdocument.note_refnamecCs|j<00>|dg<00><02>|<01>dS)Nr<4E>)rr<>r3)rr9rrr<00>
note_refid<EFBFBD>szdocument.note_refidcCs"|j<00>|<01>|dr|<00>|<01>dS)Nrv)rr3r+)rr'rrr<00>note_indirect_target<65>s zdocument.note_indirect_targetcCs|<00>|<01>dS)N)r)rr'rrr<00>note_anonymous_target<65>szdocument.note_anonymous_targetcCs|<00>|<01>|j<01>|<01>dS)N)rr
r3)r<00>footnoterrr<00>note_autofootnote<74>s
zdocument.note_autofootnotecCs|<00>|<01>|j<01>|<01>dS)N)rr r3)r<00>refrrr<00>note_autofootnote_ref<65>s
zdocument.note_autofootnote_refcCs|<00>|<01>|j<01>|<01>dS)N)rr r3)rr/rrr<00>note_symbol_footnote<74>s
zdocument.note_symbol_footnotecCs|<00>|<01>|j<01>|<01>dS)N)rr r3)rr1rrr<00>note_symbol_footnote_ref<65>s
z!document.note_symbol_footnote_refcCs|<00>|<01>|j<01>|<01>dS)N)rrr3)rr/rrr<00> note_footnote<74>s
zdocument.note_footnotecCs0|<00>|<01>|j<01>|dg<00><02>|<01>|<00>|<01>dS)Nr*)rrr<>r3r+)rr1rrr<00>note_footnote_ref<65>s
zdocument.note_footnote_refcCs|j<00>|<01>dS)N)rr3)r<00>citationrrr<00> note_citation<6F>szdocument.note_citationcCs0|<00>|<01>|j<01>|dg<00><02>|<01>|<00>|<01>dS)Nr*)rr r<>r3r+)rr1rrr<00>note_citation_ref<65>s
zdocument.note_citation_refcCsft|<02>}||jkrJ|jjd||d<02>}|dkr6||7}|j|}t||<04>||j|<||jt|<04><dS)Nz-Duplicate substitution definition name: "%s".)r")<07>whitespace_normalize_namerr"<00>errorr#r<00>fully_normalize_name)rZsubdefZdef_namerr<>rZoldnoderrr<00>note_substitution_def<65>s



zdocument.note_substitution_defcCst|<02>|d<dS)Nr*)r:)rZsubrefr*rrr<00>note_substitution_ref<65>szdocument.note_substitution_refcCs|j<00>||<02>dS)N)rZ add_pending)r<00>pending<6E>priorityrrr<00> note_pending<6E>szdocument.note_pendingcCs|j<00>|<01>dS)N)rr3)r<00>messagerrr<00>note_parse_message<67>szdocument.note_parse_messagecCs|j<00>|<01>dS)N)rr3)rrBrrr<00>note_transform_message<67>szdocument.note_transform_messagecCs$||_|dkr||_n
|d|_dS)Nr@)rr)rr<00>offsetrrr<00> note_source<63>szdocument.note_sourcecCs*|j|j|jf|j<03>}|j|_|j|_|S)N)r$rr"ryrr)rr<>rrrr<00>s
z document.copycCsB|js<t<00>|_|<00>t<02>}|dkr.|<00>|j<00>n|<00>||j<00>|jS)N)rr<>r<>r3r<>)rrDrrr<00>get_decoration<6F>s
zdocument.get_decoration)N)N)NN)N)N)N)N)!r%rIrJrKrcrrrr rr&r(r)r+r,r-r.r0r2r3r4r5r6r8r9r=r>rArCrDrFrrGrrrrr<00>s<Y


'*



rc@s eZdZdS)<02>titleN)r%rIrJrrrrrH<00>srHc@s eZdZdS)<02>subtitleN)r%rIrJrrrrrI<00>srIc@s eZdZdS)<02>rubricN)r%rIrJrrrrrJ<00>srJc@s eZdZdS)<02>docinfoN)r%rIrJrrrrrK<00>srKc@s eZdZdS)<02>authorN)r%rIrJrrrrrL<00>srLc@s eZdZdS)<02>authorsN)r%rIrJrrrrrM<00>srMc@s eZdZdS)<02> organizationN)r%rIrJrrrrrN<00>srNc@s eZdZdS)<02>addressN)r%rIrJrrrrrO<00>srOc@s eZdZdS)<02>contactN)r%rIrJrrrrrP<00>srPc@s eZdZdS)<02>versionN)r%rIrJrrrrrQ<00>srQc@s eZdZdS)<02>revisionN)r%rIrJrrrrrR<00>srRc@s eZdZdS)<02>statusN)r%rIrJrrrrrS<00>srSc@s eZdZdS)<02>dateN)r%rIrJrrrrrT<00>srTc@s eZdZdS)<02> copyrightN)r%rIrJrrrrrU<00>srUc@seZdZdd<02>Zdd<04>ZdS)rcCs2t|j<01>rt|jdt<03>s(|<00>dt<03><00>|jdS)Nr)rBr*r2<00>headerr<72>)rrrr<00>
get_headerszdecoration.get_headercCs0t|j<01>rt|jdt<03>s&|<00>t<03><00>|jdS)Nr<4E>)rBr*r2<00>footerr3)rrrr<00>
get_footer s zdecoration.get_footerN)r%rIrJrWrYrrrrrsrc@s eZdZdS)rVN)r%rIrJrrrrrVsrVc@s eZdZdS)rXN)r%rIrJrrrrrXsrXc@s eZdZdS)<02>sectionN)r%rIrJrrrrrZsrZc@seZdZdZdS)<03>topica<63>
Topics are terminal, "leaf" mini-sections, like block quotes with titles,
or textual figures. A topic is just like a section, except that it has no
subsections, and it doesn't have to conform to section placement rules.
Topics are allowed wherever body elements (list, table, etc.) are allowed,
but only at the top level of a section or document. Topics cannot nest
inside topics, sidebars, or body elements; you can't have a topic inside a
table, list, block quote, etc.
N)r%rIrJrKrrrrr[s r[c@seZdZdZdS)<03>sidebara<72>
Sidebars are like miniature, parallel documents that occur inside other
documents, providing related or reference material. A sidebar is
typically offset by a border and "floats" to the side of the page; the
document's main text may flow around it. Sidebars can also be likened to
super-footnotes; their content is outside of the flow of the document's
main text.
Sidebars are allowed wherever body elements (list, table, etc.) are
allowed, but only at the top level of a section or document. Sidebars
cannot nest inside sidebars, topics, or body elements; you can't have a
sidebar inside a table, list, block quote, etc.
N)r%rIrJrKrrrrr\*sr\c@s eZdZdS)<02>
transitionN)r%rIrJrrrrr];sr]c@s eZdZdS)<02> paragraphN)r%rIrJrrrrr^Bsr^c@s eZdZdS)<02>compoundN)r%rIrJrrrrr_Csr_c@s eZdZdS)<02> containerN)r%rIrJrrrrr`Dsr`c@s eZdZdS)<02> bullet_listN)r%rIrJrrrrraEsrac@s eZdZdS)<02>enumerated_listN)r%rIrJrrrrrbFsrbc@s eZdZdS)<02> list_itemN)r%rIrJrrrrrcGsrcc@s eZdZdS)<02>definition_listN)r%rIrJrrrrrdHsrdc@s eZdZdS)<02>definition_list_itemN)r%rIrJrrrrreIsrec@s eZdZdS)<02>termN)r%rIrJrrrrrfJsrfc@s eZdZdS)<02>
classifierN)r%rIrJrrrrrgKsrgc@s eZdZdS)<02>
definitionN)r%rIrJrrrrrhLsrhc@s eZdZdS)<02>
field_listN)r%rIrJrrrrriMsric@s eZdZdS)<02>fieldN)r%rIrJrrrrrjNsrjc@s eZdZdS)<02>
field_nameN)r%rIrJrrrrrkOsrkc@s eZdZdS)<02>
field_bodyN)r%rIrJrrrrrlPsrlc@seZdZdZdS)<03>optionrVN)r%rIrJr<>rrrrrmSsrmc@seZdZdd<02>ZdS)<04>option_argumentcCs|<00>dd<02>t<01>|<00>S)N<> delimiterr<72>)r<>r<>r)rrrrrZszoption_argument.astextN)r%rIrJrrrrrrnXsrnc@seZdZdZdS)<03> option_groupz, N)r%rIrJr<>rrrrrp^srpc@s eZdZdS)<02> option_listN)r%rIrJrrrrrqcsrqc@seZdZdZdS)<03>option_list_itemz N)r%rIrJr<>rrrrrrfsrrc@s eZdZdS)<02> option_stringN)r%rIrJrrrrrsksrsc@s eZdZdS)<02> descriptionN)r%rIrJrrrrrtlsrtc@s eZdZdS)<02> literal_blockN)r%rIrJrrrrrumsruc@s eZdZdS)<02> doctest_blockN)r%rIrJrrrrrvnsrvc@s eZdZdS)<02>
math_blockN)r%rIrJrrrrrwosrwc@s eZdZdS)<02>
line_blockN)r%rIrJrrrrrxpsrxc@seZdZdZdS)rN)r%rIrJrrrrrrssrc@s eZdZdS)<02> block_quoteN)r%rIrJrrrrryxsryc@s eZdZdS)<02> attributionN)r%rIrJrrrrrzysrzc@s eZdZdS)<02> attentionN)r%rIrJrrrrr{zsr{c@s eZdZdS)<02>cautionN)r%rIrJrrrrr|{sr|c@s eZdZdS)<02>dangerN)r%rIrJrrrrr}|sr}c@s eZdZdS)r;N)r%rIrJrrrrr;}sr;c@s eZdZdS)<02> importantN)r%rIrJrrrrr~~sr~c@s eZdZdS)<02>noteN)r%rIrJrrrrrsrc@s eZdZdS)<02>tipN)r%rIrJrrrrr<><00>sr<>c@s eZdZdS)<02>hintN)r%rIrJrrrrr<><00>sr<>c@s eZdZdS)<02>warningN)r%rIrJrrrrr<><00>sr<>c@s eZdZdS)<02>
admonitionN)r%rIrJrrrrr<><00>sr<>c@s eZdZdS)<02>commentN)r%rIrJrrrrr<><00>sr<>c@s eZdZdS)<02>substitution_definitionN)r%rIrJrrrrr<><00>sr<>c@s eZdZdS)r'N)r%rIrJrrrrr'<00>sr'c@s eZdZdS)r/N)r%rIrJrrrrr/<00>sr/c@s eZdZdS)r7N)r%rIrJrrrrr7<00>sr7c@s eZdZdS)<02>labelN)r%rIrJrrrrr<><00>sr<>c@s eZdZdS)<02>figureN)r%rIrJrrrrr<><00>sr<>c@s eZdZdS)<02>captionN)r%rIrJrrrrr<><00>sr<>c@s eZdZdS)<02>legendN)r%rIrJrrrrr<><00>sr<>c@s eZdZdS)<02>tableN)r%rIrJrrrrr<><00>sr<>c@s eZdZdS)<02>tgroupN)r%rIrJrrrrr<><00>sr<>c@s eZdZdS)<02>colspecN)r%rIrJrrrrr<><00>sr<>c@s eZdZdS)<02>theadN)r%rIrJrrrrr<><00>sr<>c@s eZdZdS)<02>tbodyN)r%rIrJrrrrr<><00>sr<>c@s eZdZdS)<02>rowN)r%rIrJrrrrr<><00>sr<>c@s eZdZdS)<02>entryN)r%rIrJrrrrr<><00>sr<>c@s"eZdZdZddd<04>Zdd<06>ZdS)r$z<>
System message element.
Do not instantiate this class directly; use
``document.reporter.info/warning/error/severe()`` instead.
NcOs^|<03>dd<02>}|r$td|<01>}|f|}ytj||f|<02>|<03>Wntd|f<00><00>YnXdS)NrbrVzsystem_message: children=%r)r<>r^rsrc<00>print)rrBr*ryrb<00>prrrrc<00>s 

zsystem_message.__init__cCs0|<00>dd<02>}d|d||d|dt<01>|<00>fS)NrrVz%s:%s: (%s/%s) %srrAr)r<>rsr)rrrrrr<00>s zsystem_message.astext)N)r%rIrJrKrcrrrrrr$<00>s
r$c@s,eZdZdZd dd<05>Zd dd <09>Zd
d <0B>ZdS)r?aF
The "pending" element is used to encapsulate a pending operation: the
operation (transform), the point at which to apply it, and any data it
requires. Only the pending operation's location within the document is
stored in the public document tree (by the "pending" object itself); the
operation and its data are stored in the "pending" object's internal
instance attributes.
For example, say you want a table of contents in your reStructuredText
document. The easiest way to specify where to put it is from within the
document, with a directive::
.. contents::
But the "contents" directive can't do its work until the entire document
has been parsed and possibly transformed to some extent. So the directive
code leaves a placeholder behind that will trigger the second phase of its
processing, something like this::
<pending ...public attributes...> + internal attributes
Use `document.note_pending()` so that the
`docutils.transforms.Transformer` stage of processing can run all pending
transforms.
NrVcOs(tj||f|<04>|<05>||_|p i|_dS)N)rsrc<00> transform<72>details)rr<>r<>rbr*ryrrrrc<00>s
zpending.__init__<5F> rcsdd|jj|jjfdg}t|j<04><05><00>}|<04><06>x<>|D]<5D>\}}t|t<08>rx|<03> dd|f<00>|<03>
dd<07>|<06> <0B><00> <0C>D<00><01>q6|r<>t|t<03>r<>t|dt<08>r<>|<03> dd|f<00>x>|D] }|<03>
d d<07>|<07> <0B><00> <0C>D<00><01>q<>Wq6|<03> d
d||f<00>q6Wt <0A> |<00><00><01>d<05><0E><00>fd d<07>|D<00><01>S) Nz.. internal attributes:z .transform: %s.%sz .details:z%7s%s:rVcSsg|]}dd|f<00>qS)z%9s%srVr)rkrrrrrl<00>sz#pending.pformat.<locals>.<listcomp>rcSsg|]}dd|f<00>qS)z%9s%srVr)rkrrrrrl<00>sz %7s%s: %rcsg|]}d<00><00>|f<00>qS)z %s%s
r)rkr)rrrrrl<00>s)r<>rIr%r{r<>r|r<>r2rr3r4rrnrsrX)rrrZ internalsr<73>r<>rr<>r)rrrr<00>s*




 zpending.pformatcCs6|j|j|j|jf|j<04>}|j|_|j|_|j|_|S)N)r$r<>r<>rbryrrr)rr<>rrrr<00>s z pending.copy)NrV)r<>r)r%rIrJrKrcrrrrrrr?<00>s

r?c@seZdZdZdS)<03>rawz@
Raw data that is to be passed untouched to the Writer.
N)r%rIrJrKrrrrr<><00>sr<>c@s eZdZdS)<02>emphasisN)r%rIrJrrrrr<>sr<>c@s eZdZdS)<02>strongN)r%rIrJrrrrr<>sr<>c@s eZdZdS)<02>literalN)r%rIrJrrrrr<>sr<>c@s eZdZdS)<02> referenceN)r%rIrJrrrrr<> sr<>c@s eZdZdS)<02>footnote_referenceN)r%rIrJrrrrr<>
sr<>c@s eZdZdS)<02>citation_referenceN)r%rIrJrrrrr<> sr<>c@s eZdZdS)<02>substitution_referenceN)r%rIrJrrrrr<> sr<>c@s eZdZdS)<02>title_referenceN)r%rIrJrrrrr<> sr<>c@s eZdZdS)<02> abbreviationN)r%rIrJrrrrr<>sr<>c@s eZdZdS)<02>acronymN)r%rIrJrrrrr<>sr<>c@s eZdZdS)<02> superscriptN)r%rIrJrrrrr<>sr<>c@s eZdZdS)<02> subscriptN)r%rIrJrrrrr<>sr<>c@s eZdZdS)<02>mathN)r%rIrJrrrrr<>sr<>c@seZdZdd<02>ZdS)<04>imagecCs |<00>dd<02>S)N<>altrV)r<>)rrrrrsz image.astextN)r%rIrJrrrrrr<>sr<>c@s eZdZdS)<02>inlineN)r%rIrJrrrrr<>sr<>c@s eZdZdS)<02> problematicN)r%rIrJrrrrr<>sr<>c@s eZdZdS)<02> generatedN)r%rIrJrrrrr<>sr<>a<
Text
abbreviation acronym address admonition attention attribution author
authors
block_quote bullet_list
caption caution citation citation_reference classifier colspec comment
compound contact container copyright
danger date decoration definition definition_list definition_list_item
description docinfo doctest_block document
emphasis entry enumerated_list error
field field_body field_list field_name figure footer
footnote footnote_reference
generated
header hint
image important inline
label legend line line_block list_item literal literal_block
math math_block
note
option option_argument option_group option_list option_list_item
option_string organization
paragraph pending problematic
raw reference revision row rubric
section sidebar status strong subscript substitution_definition
substitution_reference subtitle superscript system_message
table target tbody term tgroup thead tip title title_reference topic
transition
version
warningc@s<eZdZdZdZdd<04>Zdd<06>Zdd<08>Zd d
<EFBFBD>Zd d <0C>Z d S)<0E> NodeVisitora<72>
"Visitor" pattern [GoF95]_ abstract superclass implementation for
document tree traversals.
Each node class has corresponding methods, doing nothing by
default; override individual methods for specific and useful
behaviour. The `dispatch_visit()` method is called by
`Node.walk()` upon entering a node. `Node.walkabout()` also calls
the `dispatch_departure()` method before exiting a node.
The dispatch methods call "``visit_`` + node class name" or
"``depart_`` + node class name", resp.
This is a base class for visitors whose ``visit_...`` & ``depart_...``
methods should be implemented for *all* node types encountered (such as
for `docutils.writers.Writer` subclasses). Unimplemented methods will
raise exceptions.
For sparse traversals, where only certain node types are of interest,
subclass `SparseNodeVisitor` instead. When (mostly or entirely) uniform
processing is desired, subclass `GenericNodeVisitor`.
.. [GoF95] Gamma, Helm, Johnson, Vlissides. *Design Patterns: Elements of
Reusable Object-Oriented Software*. Addison-Wesley, Reading, MA, USA,
1995.
rcCs
||_dS)N)r)rrrrrrcjszNodeVisitor.__init__cCs:|jj}t|d||j<03>}|jj<05>d|j|f<00>||<01>S)z<>
Call self."``visit_`` + node class name" with `node` as
parameter. If the ``visit_...`` method does not exist, call
self.unknown_visit.
<20>visit_z;docutils.nodes.NodeVisitor.dispatch_visit calling %s for %s)r$r%r<><00> unknown_visitrr"r#)rr9<00> node_name<6D>methodrrrr&ms zNodeVisitor.dispatch_visitcCs:|jj}t|d||j<03>}|jj<05>d|j|f<00>||<01>S)z<>
Call self."``depart_`` + node class name" with `node` as
parameter. If the ``depart_...`` method does not exist, call
self.unknown_departure.
<20>depart_z?docutils.nodes.NodeVisitor.dispatch_departure calling %s for %s)r$r%r<><00>unknown_departurerr"r#)rr9r<>r<>rrrr1zs zNodeVisitor.dispatch_departurecCs2|jjjs|jj|jkr.td|j|jjf<00><01>dS)zk
Called when entering unknown `Node` types.
Raise an exception unless overridden.
z!%s visiting unknown node type: %sN)rr<00>strict_visitorr$r%<00>optionalr)rr9rrrr<><00>s

zNodeVisitor.unknown_visitcCs2|jjjs|jj|jkr.td|j|jjf<00><01>dS)zi
Called before exiting unknown `Node` types.
Raise exception unless overridden.
z"%s departing unknown node type: %sN)rrr<>r$r%r<>r)rr9rrrr<><00>s

zNodeVisitor.unknown_departureN)
r%rIrJrKr<>rcr&r1r<>r<>rrrrr<>Cs
   r<>c@seZdZdZdS)<03>SparseNodeVisitora
Base class for sparse traversals, where only certain node types are of
interest. When ``visit_...`` & ``depart_...`` methods should be
implemented for *all* node types (such as for `docutils.writers.Writer`
subclasses), subclass `NodeVisitor` instead.
N)r%rIrJrKrrrrr<><00>sr<>c@s eZdZdZdd<03>Zdd<05>ZdS)<07>GenericNodeVisitora<72>
Generic "Visitor" abstract superclass, for simple traversals.
Unless overridden, each ``visit_...`` method calls `default_visit()`, and
each ``depart_...`` method (when using `Node.walkabout()`) calls
`default_departure()`. `default_visit()` (and `default_departure()`) must
be overridden in subclasses.
Define fully generic visitors by overriding `default_visit()` (and
`default_departure()`) only. Define semi-generic visitors by overriding
individual ``visit_...()`` (and ``depart_...()``) methods also.
`NodeVisitor.unknown_visit()` (`NodeVisitor.unknown_departure()`) should
be overridden for default behavior.
cCst<00>dS)z)Override for generic, uniform traversals.N)r)rr9rrr<00> default_visit<69>sz GenericNodeVisitor.default_visitcCst<00>dS)z)Override for generic, uniform traversals.N)r)rr9rrr<00>default_departure<72>sz$GenericNodeVisitor.default_departureN)r%rIrJrKr<>r<>rrrrr<><00>sr<>cCs|<00>|<01>dS)N)r<>)rr9rrr<00>_call_default_visit<69>sr<>cCs|<00>|<01>dS)N)r<>)rr9rrr<00>_call_default_departure<72>sr<>cCsdS)Nr)rr9rrr<00>_nop<6F>sr<>cCsRxL|D]D}ttd|t<02>ttd|t<03>ttd|t<05>ttd|t<05>qWdS)z%Save typing with dynamic assignments:r<>r<>N)<06>setattrr<72>r<>r<>r<>r<>)rv<00>_namerrr<00>_add_node_class_names<65>s

r<>c@s0eZdZdZdd<03>Zdd<05>Zdd<07>Zdd <09>Zd
S) <0B>TreeCopyVisitorzQ
Make a complete copy of a tree or branch, including element attributes.
cCst<00>||<01>g|_g|_dS)N)r<>rc<00> parent_stackr)rrrrrrc<00>s zTreeCopyVisitor.__init__cCs
|jdS)Nr)r)rrrr<00> get_tree_copy<70>szTreeCopyVisitor.get_tree_copycCs,|<01><00>}|j<01>|<02>|j<03>|j<01>||_dS)z9Copy the current node, and make it the new acting parent.N)rrr3r<>)rr9Znewnoderrrr<><00>s zTreeCopyVisitor.default_visitcCs|j<00><01>|_dS)z#Restore the previous acting parent.N)r<>r<>r)rr9rrrr<><00>sz!TreeCopyVisitor.default_departureN)r%rIrJrKrcr<>r<>r<>rrrrr<><00>s
r<>c@seZdZdZdS)<03>TreePruningExceptionz<6E>
Base class for `NodeVisitor`-related tree pruning exceptions.
Raise subclasses from within ``visit_...`` or ``depart_...`` methods
called from `Node.walk()` and `Node.walkabout()` tree traversals to prune
the tree traversed.
N)r%rIrJrKrrrrr<><00>sr<>c@seZdZdZdS)r'z<>
Do not visit any children of the current node. The current node's
siblings and ``depart_...`` method are not affected.
N)r%rIrJrKrrrrr'<00>sr'c@seZdZdZdS)r,z<>
Do not visit any more siblings (to the right) of the current node. The
current node's children and its ``depart_...`` method are not affected.
N)r%rIrJrKrrrrr, sr,c@seZdZdZdS)r(zq
Do not visit the current node's children, and do not call the current
node's ``depart_...`` method.
N)r%rIrJrKrrrrr(sr(c@seZdZdZdS)r)z
Do not call the current node's ``depart_...`` method. The current node's
children and siblings are not affected.
N)r%rIrJrKrrrrr)sr)c@seZdZdZdS)<03> NodeFoundz<64>
Raise to indicate that the target of a search has been found. This
exception must be caught by the client; it is not caught by the traversal
code.
N)r%rIrJrKrrrrr<>'sr<>c@seZdZdZdS)r-a=
Stop the traversal alltogether. The current node's ``depart_...`` method
is not affected. The parent nodes ``depart_...`` methods are also called
as usual. No other nodes are visited. This is an alternative to
NodeFound that does not cause exception handling to trickle up to the
caller.
N)r%rIrJrKrrrrr-2sr-cCsr|<00><00>}t|t<02>s|<01><03>}|<01>t<05>}|<01>t<06>}t<07>d|<01><02> dd<03><02>d<02>}t
<EFBFBD> dd<05> |<01> <0A><00><01>}t<0E> d|<01>}t|<01>S)a<>
Convert `string` into an identifier and return it.
Docutils identifiers will conform to the regular expression
``[a-z](-?[a-z0-9]+)*``. For CSS compatibility, identifiers (the "class"
and "id" attributes) should have no underscores, colons, or periods.
Hyphens may be used.
- The `HTML 4.01 spec`_ defines identifiers based on SGML tokens:
ID and NAME tokens must begin with a letter ([A-Za-z]) and may be
followed by any number of letters, digits ([0-9]), hyphens ("-"),
underscores ("_"), colons (":"), and periods (".").
- However the `CSS1 spec`_ defines identifiers based on the "name" token,
a tighter interpretation ("flex" tokenizer notation; "latin1" and
"escape" 8-bit characters have been replaced with entities)::
unicode \[0-9a-f]{1,4}
latin1 [&iexcl;-&yuml;]
escape {unicode}|\[ -~&iexcl;-&yuml;]
nmchar [-a-z0-9]|{latin1}|{escape}
name {nmchar}+
The CSS1 "nmchar" rule does not include underscores ("_"), colons (":"),
or periods ("."), therefore "class" and "id" attributes should not contain
these characters. They should be replaced with hyphens ("-"). Combined
with HTML's requirements (the first character must be a letter; no
"unicode", "latin1", or "escape" characters), this results in the
``[a-z](-?[a-z0-9]+)*`` pattern.
.. _HTML 4.01 spec: http://www.w3.org/TR/html401
.. _CSS1 spec: http://www.w3.org/TR/REC-CSS1
ZNFKDrP<00>ignore<72>-r<>rV)r}r2r<00>decode<64> translate<74>_non_id_translate_digraphs<68>_non_id_translate<74> unicodedata<74> normalizer <00> _non_id_chars<72>subrXrY<00>_non_id_at_ends)<02>stringr<67>rrrr?s#


  rz
[^a-z0-9]+z ^[-0-9]+|-+$<24>o<>d<>hr<68><00>l<>t<>br<62><00>f<>kr<6B>r<><00>y<>z<>g<>jrR<00>e<>qrE)!<21><>ii'i1iBigi<>i<>i<>i<>i<>i<>i<>i<>i<>i<>i<>i<>i<>i<>i%i4i5i6i7i<i?i@iGiIiKiMiO<00>szZaeZoe<6F>dbZqp)<05><><00><>iSi8i9cCs&|d<00>|<01>|d<00>|<01>d|_dS)Nrwrvr@)r3r<>r<>)r9r<>rrrr#<00>sr#cCsd<01>|<00><01><00><02><00>S)z.Return a case- and whitespace-normalized name.r<>)rXr}rY)r<>rrrr<<00>sr<cCsd<01>|<00><01><00>S)z$Return a whitespace-normalized name.r<>)rXrY)r<>rrrr:<00>sr:cCs|<00>dd<02><02>dd<04>S)zDEscape string values that are elements of a list, for serialization.rUz\\r<>z\ )rW)rrrrr<><00>sr<>cCsd|S)zQuote attributes for pseudo-xmlz"%s"r)rrrrr<><00>sr<>)FF)<29>rKZ __docformat__rL<00>os<6F>rer<65><00>typesr<73><00>objectrrMrrNrSr\r]rsr<>r<>r<>r<>r<>r<>r<>r<>r<>r<>r<>r<>r<>r<>r<>r<>r<>r<>r<>r<>r<>rrHrIrJrKrLrMrNrOrPrQrRrSrTrUrrVrXrZr[r\r]r^r_r`rarbrcrdrerfrgrhrirjrkrlrmrnrprqrrrsrtrurvrwrxrryrzr{r|r}r;r~rr<>r<>r<>r<>r<>r<>r'r/r7r<>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<>rYZnode_class_namesr<73>r<>r<>r<>r<>r<>r<>r<><00> Exceptionr<6E>r'r,r(r)r<>r-r<00>compiler<65>r<>r<>r<>r#r<r:r<>r<>rrrr<00><module>s<>
 K 
 N I "]
     



  1