zmc
2023-12-22 9fdbf60165db0400c2e8e6be2dc6e88138ac719a
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
U
H=®dWã@sZdZddlmZmZmZddlmZddlmZddgZ    iZ
d d    d„Z d
d „Z d d„Z dS)a…A collection of modules for iterating through different kinds of
tree, generating tokens identical to those produced by the tokenizer
module.
 
To create a tree walker for a new type of tree, you need to
implement a tree walker object (called TreeWalker by convention) that
implements a 'serialize' method which takes a tree as sole argument and
returns an iterator which generates tokens.
é)Úabsolute_importÚdivisionÚunicode_literalsé)Ú    constants)Ú default_etreeÚ getTreeWalkerÚpprintNcKsª| ¡}|tkr |dkr0ddlm}|jt|<np|dkrPddlm}|jt|<nP|dkrpddlm}|jt|<n0|dkr dd    lm}|d
krt}|j    |f|ŽjSt 
|¡S) a;Get a TreeWalker class for various types of tree with built-in support
 
    :arg str treeType: the name of the tree type required (case-insensitive).
        Supported values are:
 
        * "dom": The xml.dom.minidom DOM implementation
        * "etree": A generic walker for tree implementations exposing an
          elementtree-like interface (known to work with ElementTree,
          cElementTree and lxml.etree).
        * "lxml": Optimized walker for lxml.etree
        * "genshi": a Genshi stream
 
    :arg implementation: A module implementing the tree type e.g.
        xml.etree.ElementTree or cElementTree (Currently applies to the "etree"
        tree type only).
 
    :arg kwargs: keyword arguments passed to the etree walker--for other
        walkers, this has no effect
 
    :returns: a TreeWalker class
 
    Údomé)r
Úgenshi)r Úlxml)Ú
etree_lxmlÚetree)rN) ÚlowerÚtreeWalkerCacheÚr
Ú
TreeWalkerr rrrÚgetETreeModuleÚget)ÚtreeTypeÚimplementationÚkwargsr
r rr©rú`D:\z\workplace\VsCode\pyvenv\venv\Lib\site-packages\pip/_vendor/html5lib/treewalkers/__init__.pyrs"       ccshg}|D]D}|d}|dkr,| |d¡q|rFdd |¡dœVg}|Vq|rddd |¡dœVdS)NÚtype)Ú
CharactersÚSpaceCharactersÚdatarr)rr)ÚappendÚjoin)ÚtokensÚpendingCharactersÚtokenrrrrÚconcatenateCharacterTokensAsr$c     Csbg}d}t|ƒD]D}|d}|dkr|drz|dtjdkrz|dtjkr`tj|d}n|d}d||df}n|d}| dd    ||f¡|d
7}|d }t| ¡ƒD]T\\}}    }
|rì|tjkrÚtj|}n|}d||    f}n|    }| d d    |||
f¡q´|d krV|d
8}q|dkr2|d
8}q|dkrX| dd    ||d f¡q|dkr
|drô|dr¬| dd    ||d|d|dr |dndf¡nF|drØ| dd    ||d|df¡n| dd    ||df¡n| dd    |f¡q|dkr0| dd    ||d f¡q|dkrJdsVtdƒ‚qtd|ƒ‚qd     |¡S) z Pretty printer for tree walkers
 
    Takes a TreeWalker instance and pretty prints the output of walking the tree.
 
    :arg walker: a TreeWalker instance
 
    rr)ÚStartTagÚEmptyTagÚ    namespaceÚhtmlz%s %sÚnamez%s<%s>ú rrz    %s%s="%s"r&ÚEndTagÚCommentz %s<!-- %s -->ÚDoctypeÚpublicIdz%s<!DOCTYPE %s "%s" "%s">ÚsystemIdrz%s<!DOCTYPE %s "" "%s">z%s<!DOCTYPE %s>z %s<!DOCTYPE >rz%s"%s"rFzBconcatenateCharacterTokens should have got rid of all Space tokenszUnknown token type, %sÚ
)
r$rÚ
namespacesÚprefixesrÚsortedÚitemsÚAssertionErrorÚ
ValueErrorr ) ÚwalkerÚoutputÚindentr#rÚnsr)Úattrsr'Ú    localnameÚvaluerrrr    Psn
 
 
 
 
 
 
 
 
 
ýÿ
þÿ ÿ
 
 
)N)Ú__doc__Ú
__future__rrrrrÚ_utilsrÚ__all__rrr$r    rrrrÚ<module>s
 
,