bgW?dZddlZejdjZejdjZejdZejdZejdZ[Gdd e Z dS) aShared support for scanning document type declarations in HTML and XHTML. Backported for python-future from Python 3.3. Reason: ParserBase is an old-style class in the Python 2.7 source of markupbase.py, which I suspect might be the cause of sporadic unit-test failures on travis-ci.org with test_htmlparser.py. The test failures look like this: ====================================================================== ERROR: test_attr_entity_replacement (future.tests.test_htmlparser.AttributesStrictTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/travis/build/edschofield/python-future/future/tests/test_htmlparser.py", line 661, in test_attr_entity_replacement [("starttag", "a", [("b", "&><"'")])]) File "/home/travis/build/edschofield/python-future/future/tests/test_htmlparser.py", line 93, in _run_check collector = self.get_collector() File "/home/travis/build/edschofield/python-future/future/tests/test_htmlparser.py", line 617, in get_collector return EventCollector(strict=True) File "/home/travis/build/edschofield/python-future/future/tests/test_htmlparser.py", line 27, in __init__ html.parser.HTMLParser.__init__(self, *args, **kw) File "/home/travis/build/edschofield/python-future/future/backports/html/parser.py", line 135, in __init__ self.reset() File "/home/travis/build/edschofield/python-future/future/backports/html/parser.py", line 143, in reset _markupbase.ParserBase.reset(self) TypeError: unbound method reset() must be called with ParserBase instance as first argument (got EventCollector instance instead) This module is used as a foundation for the html.parser module. It has no documented public API and should not be used directly. Nz[a-zA-Z][-_.a-zA-Z0-9]*\s*z(\'[^\']*\'|"[^"]*")\s*z--\s*>z ]\s*]\s*>z]\s*>cteZdZdZdZdZdZdZdZdZ dZ dd Z dd Z d Z d ZdZdZdZdZdZdS) ParserBaseziParser base class which provides some common support methods used by the SGML/HTML and XHTML parsers.c@|jturtddS)Nz)_markupbase.ParserBase must be subclassed) __class__r RuntimeErrorselfs m/builddir/build/BUILD/cloudlinux-venv-1.0.7/venv/lib/python3.11/site-packages/future/backports/_markupbase.py__init__zParserBase.__init__6s, >Z ' ';== = ( 'c td)Nz.subclasses of ParserBase must override error())NotImplementedError)r messages r errorzParserBase.error;s! <>> >r c"d|_d|_dS)Nrlinenooffsetrs r resetzParserBase.reset?s  r c|j|jfS)z&Return current line number and offset.rrs r getposzParserBase.getposCs{DK''r c||kr|S|j}|d||}|r4|j|z|_|d||}||dzz |_n|j|z|z |_|S)N r)rawdatacountrrindexr)r ijrnlinesposs r updateposzParserBase.updateposKs 66H,tQ**  ,+.DK..q!,,CSU)DKK+/!+DKr c2|j}|dz}|||dks Jd|||dzdkr|dzS|||dzdvrdSt|}|||dzdkr||S||d kr||S|||\}}|d kr|S|d krd |_||kr@||}|dkrC||dz|}|d kr||n|||dzS|d vr)t||}|sdS| }n|dvr|||\} }n||jvr|dz}n|d krb|d kr| |dz|}n`|tgdvr| d|zn4| dn| d||z|d kr|S||k@dS)N)-r#z--[rdoctyper#z"'4abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ)attlistlinktypelinkelementz&unsupported '[' char in %s declarationz"unexpected '[' char in declarationz!unexpected %r char in declaration) rlen parse_commentparse_marked_section _scan_name_decl_otherchars handle_decl unknown_decl_declstringlit_matchend_parse_doctype_subsetsetr) r rrrndecltypecdatamnames r parse_declarationzParserBase.parse_declaration[s, Eqs|t###%K### 1QqS5>S q5L 1QqS5>Y & &2 LL 1QqS5>T ! !%%a(( ( QZ3   ,,Q// ///!Q//KHa q55H y $&D !!ee ACxxqs1u~y(($$T**** %%d+++1u Ezz(!442EEGGLLL//!Q//aad+++Ecy((221q5!<V # # JJ; < < <$$Wac22 2  1 AA   !Q 0 0 0yy||r c|j}t|}|}||kr[||}|dkr$|||dz}|dkrdS|dkr1|||dz|d|z|dz|krdS|dz|krdS|||dzdkr ||d }|d kr|S||dz|\}}|dkrdS|t gd vr1|||dz|d |zt|d |z} | ||}|d kr|Sn!|dkrA|dz|krdS||dz|\}}|d kr|S||dkr|dz}n|dkr|dz}||kr?||r%|dz}||kr||%||kr:||dkr|S||||dnJdS|r|dz}n.||||d|z||k[dS)NsrAmeths r r:z ParserBase._parse_doctype_subsets, LL !ee ACxxAacEN88299NN<Q777JJKaOPPPEa<<2EQ;;21QqS5>V++**1Q*77A1uu //!a%>>a772s#O#O#OPPPPNN<Q777JJCdJLLLt%6%=>>DL))q55HcEa<<2q1ul;;1q55H1:$$AAcE!ee 2 2 4 4eAA!ee 2 2 4 4eq55qzS(( NN<333JJFGGGG2 HE|Q/// BQFGGGu!eexrr c|||\}}|dkrdS|j}d||dvr|d|dzSdS)Nr)r'r)r4rfind)r rrcrArrs r _parse_doctype_elementz!ParserBase._parse_doctype_elements_//!\22a 772, '!""+  <<Q''!+ +rr cl|j}|||\}}|||dz}|dkrdS|dkr|dzS |||\}}|dkr|S|||dz}|dkrdS|dkrxd||dvr|d|dz}ndS|||dzr$|dz}|||dz$||dsdSn|||\}}|||dz}|sdS|dvr:t ||}|r|}ndS|||dz}|sdS|d krE||dd krdS||dz|\}}|dkr|S|||dz}|sdS|dkr|dzSt) Nrr#r)r'r()'"#)rr4rgrbr8r9)r rrcrrArr>r@s r _parse_doctype_attlistz!ParserBase._parse_doctype_attlistsE,//!\22a AacEN 772 88q5L. ooa66GD!1uu!A#ABwwrCxx'!""+%% S!,,q0AA2a!en,,..AAa!en,,..qrr{2//!\::a!A#A rEzz(!44AA2AacEN2Cxx122;#%%2//!a%>>aq55HAacEN2Cxx1u ]. r c*|||\}}|dkr|S|j} |||dz}|sdS|dkr|dzS|dvr)t||}|sdS|}n!|||\}}|dkr|Sk)Nrrr)r'rl)r4rr8r9)r rrcrArrr>r@s r _parse_doctype_notationz"ParserBase._parse_doctype_notationXs//!\22a q55H, !A#A rCxx1u Ezz(!442EEGG//!\::aq55H r c|j}|||dzdkr4|dz} |||dz}|sdS|r|dz}nn-n|}|||\}}|dkr|S |j||dz}|sdS|dvr)t||}|r|}n.dS|dkr|dzS|||\}}|dkr|Sp)Nrr^r)rrlr')rrbr4r8r9)r rrcrrr>rAr@s r _parse_doctype_entityz ParserBase._parse_doctype_entityos4, 1QqS5>S AA AacEN299;;AAA A//!\22a q55H  QqsU#A rEzz(!44AA2c1u //!\::aq55H r c|j}t|}||krdSt||}|rh|}|}|t|z|krdS||fS||||d|||dzzdS)N)Nr)zexpected name token at %r) rr1_declname_matchgroupstriplowerr9r"r)r rrcrr<r@rdrAs r r4zParserBase._scan_names, LL 668 GQ ' ' @ A7799DCFF q  x::<<( ( NN< + + + JJ2 l2o!=>? @ @ @ @ @r cdS)N)r r?s r r7zParserBase.unknown_decls r N)r)__name__ __module__ __qualname____doc__r rrrr"r5rBr3r2r:rhrnrprrr4r7rzr r rr2s++=== >>>(((   NNNd,    @@@F666r.   H@@@$     r r) r~recompilerSrur8rWrMrOobjectrrzr r rs  D "*:;;A!rz"<==C 9%%  bj.. # 8,,t t t t t t t t t t r