Your IP : 216.73.216.213


Current Path : /opt/alt/python37/lib64/python3.7/site-packages/twisted/web/__pycache__/
Upload File :
Current File : //opt/alt/python37/lib64/python3.7/site-packages/twisted/web/__pycache__/sux.cpython-37.opt-1.pyc

B

;��]�Q�@s�dZddlmZddlmZddlmZddlmZdZ	dZ
dZdZed	Z
d
d�Zdd
�Zdd�Zdd�Zdd�ZGdd�de�ZGdd�de�ZdS)a�
*S*mall, *U*ncomplicated *X*ML.

This is a very simple implementation of XML/HTML as a network
protocol.  It is not at all clever.  Its main features are that it
does not:

  - support namespaces
  - mung mnemonic entity references
  - validate
  - perform *any* external actions (such as fetching URLs or writing files)
    under *any* circumstances
  - has lots and lots of horrible hacks for supporting broken HTML (as an
    option, they're not on by default).
�)�print_function)�Protocol)�unicode)�prefixedMethodNames��z.-_:z;+#/%~cOsdS)zDo nothing.N�)�args�kwrr�B/opt/alt/python37/lib64/python3.7/site-packages/twisted/web/sux.py�nop'srcGs6g}x|D]}|�|�q
Wtdd�|D��}|��S)NcSsg|]}|df�qS)rr)�.0�xrrr�
<listcomp>/szunionlist.<locals>.<listcomp>)�extend�dict�keys)r	�lr�drrr�	unionlist+s

rcsL|�dt��i}x6tdd�|D��D] �t��fdd�|D��|�<q$W|S)N�defaultcSsg|]}|���qSr)r)r
Zfndictrrrr6szzipfndict.<locals>.<listcomp>csg|]}|�����qSr)�get)r
r)r�keyrrr7s)rrr�tuple)r	r
rr)rrr�	zipfndict3s
 rcst��fdd�t���D��S)Ncsg|]}|t��|�f�qSr)�getattr)r
�name)�clazz�prefixrrr<sz+prefixedMethodClassDict.<locals>.<listcomp>)rr)rrr)rrr�prefixedMethodClassDict;srcs t��fdd�t�j��D��S)Ncsg|]}|t��|�f�qSr)r)r
r)�objrrrr@sz)prefixedMethodObjDict.<locals>.<listcomp>)rr�	__class__)r rr)r rr�prefixedMethodObjDict?sr"c@seZdZdd�Zdd�ZdS)�
ParseErrorcCs||_||_||_||_dS)N)�filename�line�col�message)�selfr$r%r&r'rrr�__init__EszParseError.__init__cCsd|j|j|j|jfS)Nz%s:%s:%s: %s)r$r%r&r')r(rrr�__str__KszParseError.__str__N)�__name__�
__module__�__qualname__r)r*rrrrr#Csr#c@s�eZdZdZdZdZdZdZdZdd�Z	dd�Z
dd	�Zd
d�Zdd
�Z
dd�Zdd�Zdd�Zdd�Zdd�Zdd�Zdd�Zdd�Zdd�Zd d!�Zd"d#�Zd$d%�Zd&d'�Zd(d)�Zd*d+�Zd,d-�Zd.d/�Zd0d1�Zd2d3�Z d4d5�Z!d6d7�Z"d8d9�Z#d:d;�Z$d<Z%d<Z&d=d>�Z'd?d@�Z(dAdB�Z)dCdD�Z*dEdF�Z+dGdH�Z,dIdJ�Z-dKdL�Z.dMdN�Z/dOdP�Z0dQdR�Z1dSdT�Z2dUdV�Z3dWdX�Z4dYdZ�Z5d[d\�Z6d]d^�Z7d_d`�Z8dadb�Z9dcdd�Z:e2Z;e3Z<dedf�Z=dgdh�Z>didj�Z?dkdl�Z@dmdn�ZAdodp�ZBdqdr�ZCdS)s�	XMLParserNz<xml />rcCsd|_d|_g|_dS)Nrr)�lineno�colno�	encodings)r(rrr�connectionMade\szXMLParser.connectionMadecCs|j|jfS)z;Get the line number and column of the last character parsed)r/r0)r(rrr�saveMarkaszXMLParser.saveMarkcCst|jf|��|f��dS)N)r#r$r3)r(r'rrr�_parseErrorfszXMLParser._parseErrorcs8t�jdd�}|dkr4t�fdd�dD��}�j_|S)z;Return a dictionary of begin, do, end state function tuplesZ__stateTableNcsg|]}t�|��qSr)r")r
r)r(rrrqsz.XMLParser._buildStateTable.<locals>.<listcomp>)Zbegin_Zdo_Zend_)rr!rZ_XMLParser__stateTable)r(�
stateTabler)r(r�_buildStateTableis
zXMLParser._buildStateTablecCsVd|jksd|jkr(t|�d@r(td��|jr8|j|}x|jD]}t||�}q@W|S)NzUTF-16zUCS-2rz!UTF-16 must come in pairs for now)r1�len�AssertionError�_prependr)r(�data�encodingrrr�_decodeus
zXMLParser._decodecCs0|jr
dS|jdkr,d|jkr,|�d�dSdS)N�bodydata�script�src�waitforendscript)�endtag�tagName�
tagAttributes�begin_bodydata)r(rrr�
maybeBodyData~s

zXMLParser.maybeBodyDatac	s&|��}|jsD|�d�r>|dd�|_|j�d�|dd�}d|_|jrV|�|�}n
|�d�}|j|j	��|j}|j
}��fdd�}||_
||\}}}zhxb|D]Z}	|	d	kr��d
7�d�n�d
7�||	�}
|
dk	r�|
|kr�|�|
}||\}}}||	�q�WWd||_
��|_|_	X||_dS)N)s��s��rrzUTF-16�beginzutf-8cs��fS)Nrr)r0r/rrr3�sz(XMLParser.dataReceived.<locals>.saveMark�
r)r6�state�
startswithr9r1�appendr<�decoder/r0r3)r(r:r5ZcurStateZ	_saveMarkr3ZbeginFnZdoFnZendFn�byteZnewStater)r0r/r�dataReceived�s>


zXMLParser.dataReceivedcCs|��}||jt�dS)z0
        End the last state we were in.
        N)r6rH�END_HANDLER)r(�reasonr5rrr�connectionLost�szXMLParser.connectionLostcCs8|��rdS|dkr4|jr$||_dS|�d|f�dS)N�<r=z$First char of document [%r] wasn't <�tagstart)�isspace�beExtremelyLenient�_leadingBodyDatar4)r(rLrrr�do_begin�szXMLParser.do_begincCs
d|_dS)N�)�
commentbuf)r(rLrrr�
begin_comment�szXMLParser.begin_commentcCs6|j|7_|j�d�r2|�|jdd��dSdS)Nz-->���r=)rX�endswith�
gotComment)r(rLrrr�
do_comment�szXMLParser.do_commentcCsd|_i|_d|_d|_dS)NrWr)rBrC�termtagrA)r(rLrrr�begin_tagstart�szXMLParser.begin_tagstartcCs4|��s|tkr0|j|7_|jdkr,dS�n|��rX|jrL|jrHdSdS|�d�n�|dkr�|jrv|�|j�dS|�|ji�|jr�dp�|�	�Sn�|dkr�|jr�d	Sd
|_n||dkr�|jr�|js�|�d�n|j|7_d
|_
nF|d
k�r|jdk�rdS|�d�n |j�r"d|_dS|�d|�dS)Nz!--�comment�	waitforgt�attrszWhitespace before tag-name�>r=�/�
afterslashrz!?zInvalid character in tag-name�[�!ZexpectcdatazInvalid '[' in tag-namerQZunentityzInvalid tag character: %r)�isalnum�
identCharsrBrSrAr4�	gotTagEnd�gotTagStartrTrEr^r=)r(rLrrr�do_tagstart�sD

zXMLParser.do_tagstartcCs|j|7_dS)N)r=)r(rLrrr�begin_unentityszXMLParser.begin_unentitycCs|j|7_dS)Nr=)r=)r(rLrrr�do_unentityszXMLParser.do_unentitycCs|�|j�dS)N)�gotTextr=)r(rrr�end_unentityszXMLParser.end_unentitycCs
||_dS)N)�cdatabuf)r(rLrrr�begin_expectcdataszXMLParser.begin_expectcdatacCsj|j|7_|j}d}t|�t|�krJ|�|�r6dS|jr@dS|�d�||kr\d|_dS|�d�dS)Nz[CDATA[razMal-formed CDATA headerrW�cdata)rqr7rIrTr4)r(rLZcdbZcdrrr�do_expectcdatas

zXMLParser.do_expectcdatacCs2|j|7_|j�d�r.|jdd�|_dSdS)Nz]]>rZr=)rqr[)r(rLrrr�do_cdata1szXMLParser.do_cdatacCs|�|j�d|_dS)NrW)�gotCDatarq)r(rrr�	end_cdata7szXMLParser.end_cdatacCs�|��s|tkr4|jdkrdS|jddkr0dSdS|��r@dS|dkrl|�|j|j�|jrddpj|��S|d	krxd
S|jr�dS|�d|�dS)Nz!DOCTYPE�doctyperz!?ra�attrnamercr=rdrezUnexpected character: %r)	rhrirBrSrkrCrTrEr4)r(rLrrr�do_attrs;s 
zXMLParser.do_attrscCs
||_dS)N)rx)r(rLrrr�
begin_doctypePszXMLParser.begin_doctypecCs|dkrdS|j|7_dS)Nrcr=)rx)r(rLrrr�
do_doctypeSszXMLParser.do_doctypecCs|�|j�d|_dS)N)�
gotDoctyperx)r(rrr�end_doctypeXszXMLParser.end_doctypecCs$|dkr |js|jsdS|��SdS)Nrcr=)rArTrE)r(rLrrr�do_waitforgt\szXMLParser.do_waitforgtcCs||_d|_dS)Nr)ry�_attrname_termtag)r(rLrrr�begin_attrnamebszXMLParser.begin_attrnamecCs�|��s|tkr"|j|7_dS|dkr.dS|��r:dS|jr�|dkrLdS|tks\|��rn|j|7_dS|dkr�d|_dS|dkr�d	|_|j|j|j<|�	|j
|j�|jr�|�|j
�d
S|��SdS|�
d|j|f�dS)N�=�
beforeattrvalZbeforeeqz"'�attrvalrdrrc�Truer=zInvalid attribute name: %r %r)rhriryrSrT�lenientIdentCharsr�r�rCrkrBrjrEr4)r(rLrrr�do_attrnamefs4zXMLParser.do_attrnamecCs�|dkrdS|��rdS|jrr|tks.|��r2dS|dkrfd|_|j|j|j<|�|j|j�|�	�S|dkrrdS|�
d|�dS)Nz"'r�Z	messyattrrcr��\zEInvalid initial attribute value: %r; Attribute values must be quoted.)rSrTr�rhr�rCryrkrBrEr4)r(rLrrr�do_beforeattrval�szXMLParser.do_beforeattrvalrWcCs
d|_dS)Nr)�_beforeeq_termtag)r(rLrrr�begin_beforeeq�szXMLParser.begin_beforeeqcCs�|dkrdS|��rdS|jr�|��s.|tkrFd|_|j|j|j<dS|dkr�d|_|j|j|j<|�|j|j�|j	r�|�
|j�dS|��S|dkr�d|_	dS|�d	�dS)
Nr�r�r�ryrcr=rdrzInvalid attribute)
rSrTrhrir�rCryrkrBr�rjrEr4)r(rLrrr�do_beforeeq�s*zXMLParser.do_beforeeqcCs||_d|_dS)NrW)�	quotetyper�)r(rLrrr�
begin_attrval�szXMLParser.begin_attrvalcCs ||jkrdS|j|7_dS)Nrb)r�r�)r(rLrrr�
do_attrval�s
zXMLParser.do_attrvalcCs|j|j|j<d|_|_dS)NrW)r�rCry)r(rrr�end_attrval�szXMLParser.end_attrvalcCs
||_dS)N)r�)r(rLrrr�begin_messyattr�szXMLParser.begin_messyattrcCs�|��rdS|dkrrd}|j�d�r8d}|jdd�|_|j|j|j<|�|j|j�|rj|�|j�dS|��S|j|7_dS)Nrbrcrrdr���r=)	rSr�r[rCryrkrBrjrE)r(rLZendTagrrr�do_messyattr�szXMLParser.do_messyattrcCs|jr|j|j|j<dS)N)r�rCry)r(rrr�
end_messyattr�szXMLParser.end_messyattrcCs
d|_dS)Nr)�_after_slash_closed)r(rLrrr�begin_afterslash�szXMLParser.begin_afterslashcCsR|jr|�d�|dkr,|jr"dS|�d�d|_|�|j|j�|�|j�dS)Nz
Mal-formedrczNo data allowed after '/'rr=)r�r4rTrkrBrCrj)r(rLrrr�
do_afterslash�s

zXMLParser.do_afterslashcCs|jr|j|_|`nd|_dS)NrW)rUr=)r(rLrrrrD�szXMLParser.begin_bodydatacCs*|dkrdS|dkrdS|j|7_dS)NrQrR�&Z	entityref)r=)r(rLrrr�do_bodydata�s
zXMLParser.do_bodydatacCs|�|j�d|_dS)NrW)ror=)r(rrr�end_bodydata�szXMLParser.end_bodydatacCs|dkrdS|j|7_dS)NrQ�waitscriptendtag)r=)r(rLrrr�do_waitforendscript�szXMLParser.do_waitforendscriptcCsd|_d|_d|_dS)NrWr)�temptagdatarBrA)r(rLrrr�begin_waitscriptendtagsz XMLParser.begin_waitscriptendtagcCs�|j|7_|dkrd|_n�|js<|jd|j7_dS|��sL|tkr�|j|7_d�|j�s~|jd|j7_dS|jdkr�|�|j�|�|j�dSn$|�	�r�dS|jd|j7_dSdS)NrdTrQr@r>rar�)
r�rAr=rhrirBrIrorjrS)r(rLrrr�do_waitscriptendtags&

zXMLParser.do_waitscriptendtagcCsd|_d|_dS)NrW)�erefbuf�	erefextra)r(rLrrr�begin_entityref0szXMLParser.begin_entityrefcCs~|��s|dkr^|jrR|jr.|jdkr.|j|_d|_|dkr@dS|j|7_dS|�d�n|dkrv|j|7_ndSdS)NrQZamprRZ
spacebodydatazBad entity reference�;r=)rSrTr�r�r4)r(rLrrr�do_entityref4szXMLParser.do_entityrefcCs|�|j�dS)N)�gotEntityReferencer�)r(rrr�
end_entityrefFszXMLParser.end_entityrefcCs|j|_d|_dS)N)r�r=)r(rLrrr�begin_spacebodydataKszXMLParser.begin_spacebodydatacCstd||�dS)zCEncountered an opening tag.

        Default behaviour is to print.rFN)�print)r(rZ
attributesrrrrkSszXMLParser.gotTagStartcCstdt|��dS)z8Encountered text

        Default behaviour is to print.ztext:N)r��repr)r(r:rrrroYszXMLParser.gotTextcCstd|�dS)zMEncountered mnemonic entity reference

        Default behaviour is to print.zentityRef: &%s;N)r�)r(Z	entityRefrrrr�_szXMLParser.gotEntityReferencecCsdS)z=Encountered comment.

        Default behaviour is to ignore.Nr)r(r`rrrr\eszXMLParser.gotCommentcCs|�|�dS)zJEncountered CDATA

        Default behaviour is to call the gotText methodN)ro)r(rsrrrrvkszXMLParser.gotCDatacCstdt|��dS)z�Encountered DOCTYPE

        This is really grotty: it basically just gives you everything between
        '<!DOCTYPE' and '>' as an argument.
        z!DOCTYPEN)r�r�)r(rxrrrr}qszXMLParser.gotDoctypecCstd|�dS)z?Encountered closing tag

        Default behaviour is to print.�endN)r�)r(rrrrrjyszXMLParser.gotTagEnd)Dr+r,r-rHr1r$rTr9rUr2r3r4r6r<rErMrPrVrYr]r_rlrmrnrprrrtrurwrzr{r|r~rr�r�r�ryr�r�r�r�r�r�r�r�r�r�r�rDr�r�r�r�r�r�r�r�r�Zdo_spacebodydataZend_spacebodydatarkror�r\rvr}rjrrrrr.Os�	-

,(r.N)�__doc__Z
__future__rZtwisted.internet.protocolrZtwisted.python.compatrZtwisted.python.reflectrZ
BEGIN_HANDLERZ
DO_HANDLERrNrir�rrrrr"�	Exceptionr#r.rrrr�<module>s