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.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>)�begin_Zdo_�end_)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)r8�state�
startswithr;r1�appendr>�decoder/r0r3)r(r<r7ZcurStateZ	_saveMarkr3ZbeginFnZdoFnZendFn�byteZnewStater)r0r/r�dataReceived�s>


zXMLParser.dataReceivedcCs|��}||jt�dS)z0
        End the last state we were in.
        N)r8rJ�END_HANDLER)r(�reasonr7rrr�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(rNrrr�do_begin�szXMLParser.do_begincCs
d|_dS)N�)�
commentbuf)r(rNrrr�
begin_comment�szXMLParser.begin_commentcCs6|j|7_|j�d�r2|�|jdd��dSdS)Nz-->���r?)rZ�endswith�
gotComment)r(rNrrr�
do_comment�szXMLParser.do_commentcCsd|_i|_d|_d|_dS)NrYr)rDrE�termtagrC)r(rNrrr�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-namerSZunentityzInvalid tag character: %r)�isalnum�
identCharsrDrUrCr4�	gotTagEnd�gotTagStartrVrGr`r?)r(rNrrr�do_tagstart�sD

zXMLParser.do_tagstartcCs|j|7_dS)N)r?)r(rNrrr�begin_unentityszXMLParser.begin_unentitycCs|j|7_dS)Nr?)r?)r(rNrrr�do_unentityszXMLParser.do_unentitycCs|�|j�dS)N)�gotTextr?)r(rrr�end_unentityszXMLParser.end_unentitycCs
||_dS)N)�cdatabuf)r(rNrrr�begin_expectcdataszXMLParser.begin_expectcdatacCsj|j|7_|j}d}t|�t|�krJ|�|�r6dS|jr@dS|�d�||kr\d|_dS|�d�dS)Nz[CDATA[rczMal-formed CDATA headerrY�cdata)rsr9rKrVr4)r(rNZcdbZcdrrr�do_expectcdatas

zXMLParser.do_expectcdatacCs2|j|7_|j�d�r.|jdd�|_dSdS)Nz]]>r\r?)rsr])r(rNrrr�do_cdata1szXMLParser.do_cdatacCs|�|j�d|_dS)NrY)�gotCDatars)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!?rc�attrnamerer?rfrgzUnexpected character: %r)	rjrkrDrUrmrErVrGr4)r(rNrrr�do_attrs;s 
zXMLParser.do_attrscCs
||_dS)N)rz)r(rNrrr�
begin_doctypePszXMLParser.begin_doctypecCs|dkrdS|j|7_dS)Nrer?)rz)r(rNrrr�
do_doctypeSszXMLParser.do_doctypecCs|�|j�d|_dS)N)�
gotDoctyperz)r(rrr�end_doctypeXszXMLParser.end_doctypecCs$|dkr |js|jsdS|��SdS)Nrer?)rCrVrG)r(rNrrr�do_waitforgt\szXMLParser.do_waitforgtcCs||_d|_dS)Nr)r{�_attrname_termtag)r(rNrrr�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"'�attrvalrfrre�Truer?zInvalid attribute name: %r %r)rjrkr{rUrV�lenientIdentCharsr�r�rErmrDrlrGr4)r(rNrrr�do_attrnamefs4zXMLParser.do_attrnamecCs�|dkrdS|��rdS|jrr|tks.|��r2dS|dkrfd|_|j|j|j<|�|j|j�|�	�S|dkrrdS|�
d|�dS)Nz"'r�Z	messyattrrer��\zEInvalid initial attribute value: %r; Attribute values must be quoted.)rUrVr�rjr�rEr{rmrDrGr4)r(rNrrr�do_beforeattrval�szXMLParser.do_beforeattrvalrYcCs
d|_dS)Nr)�_beforeeq_termtag)r(rNrrr�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�r{rer?rfrzInvalid attribute)
rUrVrjrkr�rEr{rmrDr�rlrGr4)r(rNrrr�do_beforeeq�s*zXMLParser.do_beforeeqcCs||_d|_dS)NrY)�	quotetyper�)r(rNrrr�
begin_attrval�szXMLParser.begin_attrvalcCs ||jkrdS|j|7_dS)Nrd)r�r�)r(rNrrr�
do_attrval�s
zXMLParser.do_attrvalcCs|j|j|j<d|_|_dS)NrY)r�rEr{)r(rrr�end_attrval�szXMLParser.end_attrvalcCs
||_dS)N)r�)r(rNrrr�begin_messyattr�szXMLParser.begin_messyattrcCs�|��rdS|dkrrd}|j�d�r8d}|jdd�|_|j|j|j<|�|j|j�|rj|�|j�dS|��S|j|7_dS)Nrdrerrfr���r?)	rUr�r]rEr{rmrDrlrG)r(rNZendTagrrr�do_messyattr�szXMLParser.do_messyattrcCs|jr|j|j|j<dS)N)r�rEr{)r(rrr�
end_messyattr�szXMLParser.end_messyattrcCs
d|_dS)Nr)�_after_slash_closed)r(rNrrr�begin_afterslash�szXMLParser.begin_afterslashcCsR|jr|�d�|dkr,|jr"dS|�d�d|_|�|j|j�|�|j�dS)Nz
Mal-formedrezNo data allowed after '/'rr?)r�r4rVrmrDrErl)r(rNrrr�
do_afterslash�s

zXMLParser.do_afterslashcCs|jr|j|_|`nd|_dS)NrY)rWr?)r(rNrrrrF�szXMLParser.begin_bodydatacCs*|dkrdS|dkrdS|j|7_dS)NrSrT�&Z	entityref)r?)r(rNrrr�do_bodydata�s
zXMLParser.do_bodydatacCs|�|j�d|_dS)NrY)rqr?)r(rrr�end_bodydata�szXMLParser.end_bodydatacCs|dkrdS|j|7_dS)NrS�waitscriptendtag)r?)r(rNrrr�do_waitforendscript�szXMLParser.do_waitforendscriptcCsd|_d|_d|_dS)NrYr)�temptagdatarDrC)r(rNrrr�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)NrfTrSrBr@rcr�)
r�rCr?rjrkrDrKrqrlrU)r(rNrrr�do_waitscriptendtags&

zXMLParser.do_waitscriptendtagcCsd|_d|_dS)NrY)�erefbuf�	erefextra)r(rNrrr�begin_entityref0szXMLParser.begin_entityrefcCs~|��s|dkr^|jrR|jr.|jdkr.|j|_d|_|dkr@dS|j|7_dS|�d�n|dkrv|j|7_ndSdS)NrSZamprTZ
spacebodydatazBad entity reference�;r?)rUrVr�r�r4)r(rNrrr�do_entityref4szXMLParser.do_entityrefcCs|�|j�dS)N)�gotEntityReferencer�)r(rrr�
end_entityrefFszXMLParser.end_entityrefcCs|j|_d|_dS)N)r�r?)r(rNrrr�begin_spacebodydataKszXMLParser.begin_spacebodydatacCstd||�dS)zCEncountered an opening tag.

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

        Default behaviour is to print.ztext:N)r��repr)r(r<rrrrqYszXMLParser.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(rbrrrr^eszXMLParser.gotCommentcCs|�|�dS)zJEncountered CDATA

        Default behaviour is to call the gotText methodN)rq)r(rurrrrxkszXMLParser.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(rzrrrrqszXMLParser.gotDoctypecCstd|�dS)z?Encountered closing tag

        Default behaviour is to print.�endN)r�)r(rrrrrlyszXMLParser.gotTagEnd)Dr+r,r-rJr1r$rVr;rWr2r3r4r8r>rGrOrRrXr[r_rarnrorprrrtrvrwryr|r}r~r�r�r�r�r�r{r�r�r�r�r�r�r�r�r�r�r�rFr�r�r�r�r�r�r�r�r�Zdo_spacebodydataZend_spacebodydatarmrqr�r^rxrrlrrrrr.Os�	-

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