File "sax.cpython-37.pyc"

Full Path: /home/attunedd/public_html/byp/izo/con7ext_sym404/rintoar.txt/opt/alt/python37/lib64/python3.7/site-packages/lxml/__pycache__/sax.cpython-37.pyc
File size: 7.87 KB
MIME-type: text/x-bytecode.python
Charset: 8 bit

B

|/\$@sdZddlmZddlmZddlmZddlmZm	Z	ddlm
Z
mZGdddejZ
d	d
ZGdddeZGd
ddeZddZdS)aI
SAX-based adapter to copy trees from/to the Python standard library.

Use the `ElementTreeContentHandler` class to build an ElementTree from
SAX events.

Use the `ElementTreeProducer` class or the `saxify()` function to fire
the SAX events of an ElementTree against a SAX ContentHandler.

See http://codespeak.net/lxml/sax.html
)absolute_import)ContentHandler)etree)ElementTree
SubElement)CommentProcessingInstructionc@seZdZdZdS)SaxErrorzGeneral SAX error.
    N)__name__
__module____qualname____doc__rr;/opt/alt/python37/lib64/python3.7/site-packages/lxml/sax.pyr	sr	cCs0|ddkr$t|ddddSd|fSdS)Nr{})tuplesplit)tagrrr	_getNsTagsrc@seZdZdZd ddZddZeeejdZdd	Zd
dZ	dd
Z
ddZddZddZ
d!ddZddZddZd"ddZddZddZeZdS)#ElementTreeContentHandlerz/Build an lxml ElementTree from SAX events.
    NcCsLt|d|_g|_g|_d|_ddgi|_i|_|dkrBtj	}||_
dS)N)r__init___root_root_siblings_element_stack_default_ns_ns_mapping
_new_mappingsrZElement_makeelement)selfZmakeelementrrrr&s
z"ElementTreeContentHandler.__init__cCs
t|jS)z=Contains the generated ElementTree after parsing is finished.)rr)r rrr
_get_etree2sz$ElementTreeContentHandler._get_etree)doccCsdS)Nr)r locatorrrrsetDocumentLocator8sz,ElementTreeContentHandler.setDocumentLocatorcCsdS)Nr)r rrr
startDocument;sz'ElementTreeContentHandler.startDocumentcCsdS)Nr)r rrrendDocument>sz%ElementTreeContentHandler.endDocumentcCsR||j|<y|j||Wn tk
r>|g|j|<YnX|dkrN||_dS)N)rrappendKeyErrorr)r prefixurirrrstartPrefixMappingAs
z,ElementTreeContentHandler.startPrefixMappingcCs(|j|}||dkr$|d|_dS)N)rpopr)r r)Zns_uri_listrrrendPrefixMappingJs
z*ElementTreeContentHandler.endPrefixMappingcCs4|\}}|rd|}n|jr,d|j|f}n|}|S)Nz{%s}%s)r)r Z
ns_name_tuplens_uri
local_nameel_tagrrr	_buildTagPs
z#ElementTreeContentHandler._buildTagc
Cs||}|rri}y|}Wntk
r:|}YnXx8|D]*\}}|dr\d|}	n|d}	|||	<qBWnd}|j}
|jdkr||||j}|_|jrt	|drx|jD]}|
|qW|jdd=nt|
d|||j}|
||j
dS)Nrz{%s}%sraddpreviousr,)r2	iteritemsAttributeErroritemsrrrrrhasattrr3rr'clear)
r ns_nameqname
attributesZel_nameattrsZiter_attributesZ
name_tuplevalue	attr_nameZ
element_stackelementsiblingrrrstartElementNSZs0





z(ElementTreeContentHandler.startElementNScCs6t||}|jdkr"|j|n|jd|dS)Nr,)rrrr'r)r targetdatapirrrprocessingInstruction{s

z/ElementTreeContentHandler.processingInstructioncCs.|j}||}||jkr*td|dS)NzUnexpected element closed: )rr-r2rr	)r r9r:r?r1rrrendElementNSs


z&ElementTreeContentHandler.endElementNScCs0|rtdd|D}|d|f||dS)NcSsg|]\}}d|f|fqS)Nr).0kvrrr
<listcomp>sz:ElementTreeContentHandler.startElement.<locals>.<listcomp>)dictr6rA)r namer;rrrstartElementsz&ElementTreeContentHandler.startElementcCs|d|f|dS)N)rF)r rLrrr
endElementsz$ElementTreeContentHandler.endElementcCsP|jd}y|d}|jpd||_Wn$tk
rJ|jp>d||_YnXdS)Nr,)rtail
IndexErrortext)r rCZlast_elementrrr
characterss
z$ElementTreeContentHandler.characters)N)N)N)r
rrr
rr!propertyrr$r%r&r+r.r2rArErFrMrNrSZignorableWhitespacerrrrr#s"
	

!

rc@s0eZdZdZddZddZddZdd	Zd
S)ElementTreeProducerz5Produces SAX events for an element and children.
    cCsTy|}Wntk
r$|}YnX||_||_ddlm}||_|ii|_dS)Nr)AttributesNSImpl)Zgetrootr5_element_content_handlerZxml.sax.xmlreaderrV_attr_class_empty_attributes)r element_or_treecontent_handlerr?Z
attr_classrrrrs
zElementTreeProducer.__init__cCs|j|j}t|drrg}|}x&t|ddtkrL|||}q(Wx"|dddD]}||iq^W||it|dr|	}x(t|ddtkr||i|	}qW|j
dS)Ngetpreviousrr,getnext)rXr%rWr7r]getattrrr'_recursive_saxifyr^r&)r r?Zsiblingsr@rrrsaxifys"



zElementTreeProducer.saxifycCs|j}|j}|tks|tkrL|tkr4||j|j|j}|rH||dS|j	}g}||krx0|
D]$\}}	|||	krh|||	fqhW|
}
|
ri}i}x@|
D]8\}
}t
|
}|||<|j|d|d|ddd||<qW|||}n|j}t
|\}	}|j|	|||jdd}x|D]\}}|||q"W||	|f|||j}|rd||x|D]}|||qjW||	|f|x|D]\}}||qW|j}|r||dS)NrrT)preferred_prefixis_attributeF)rc)rXrrrrErBrRrPrSnsmapr6getr'r_build_qnamerYrZr)r+rAr`rFr.)r r?Zparent_nsmapr\rrPZ
element_nsmapZnew_prefixesr)r/ZattribsZattr_valuesZattr_qnamesZattr_ns_namer=Z
attr_ns_tupleZsax_attributesr0r:r*rRchildrrrr`s\


z%ElementTreeProducer._recursive_saxifycsvdkr|S|s$||kr$|}n:fdd|D}t|dkrN|dn|rZt|nd}|dkrj|S|d|S)Ncs$g|]\}}|dk	r|kr|qS)Nr)rGpfxr*)r/rrrJsz4ElementTreeProducer._build_qname.<locals>.<listcomp>rr:)rer6lenmin)r r/r0rdrbrcr)
candidatesr)r/rrfsz ElementTreeProducer._build_qnameN)r
rrr
rrar`rfrrrrrUs
6rUcCst||S)zlOne-shot helper to generate SAX events from an XML tree and fire
    them against a SAX ContentHandler.
    )rUra)r[r\rrrrasraN)r

__future__rZxml.sax.handlerrlxmlrZ
lxml.etreerrrrZ	LxmlErrorr	rrobjectrUrarrrr<module>
s|s