a [f;@shddlmZmZmZddlmZddlmZddlm Z m Z ddlm Z d e Z Gd d d ej Z d S) )absolute_importdivisionunicode_literals) text_type)base) namespaces voidElements)spaceCharacterscs*eZdZdZdfdd ZddZZS)FilterzgLints the token stream for errors If it finds any errors, it'll raise an ``AssertionError``. Tcstt||||_dS)zCreates a Filter :arg source: the source token stream :arg require_matching_tags: whether or not to require matching tags N)superr __init__require_matching_tags)selfsourcer __class__E/usr/lib/python3.9/site-packages/pip/_vendor/html5lib/filters/lint.pyrszFilter.__init__c csDg}tj|D],}|d}|dvrF|d}|d}|dusNt|tsNJ|dksZJt|tshJ|dkstJt|dtsJ|r|tdkr|tvr|dksJn |d ksJ|d kr|jr| ||f|d D]`\\}}}|dust|tsJ|dksJt|ts$J|dks2Jt|tsJqn|d kr|d}|d}|duszt|tszJ|dksJt|tsJ|dksJ|r|tdkr|tvrd sJd d |in"|jr8| }|||fks8Jn6|dkr(|d}t|ts8Jn|dvrx|d}t|tsJJ|dksXJ|dkr8| t dks8Jn|dkr|d}|dust|tsJ|ddust|tsJ|ddus8t|ts8JnV|dkrt|dts8Jn6|dkr"t|dts8Jnd s8Jdd|i|VqdS)Ntype)StartTagEmptyTag namespacenamer dataZhtmlrrZEndTagFz.Void element reported as EndTag token: %(tag)stagComment)Z CharactersSpaceCharactersrZDoctypeZpublicIdZsystemIdZEntityZSerializerErrorzUnknown token type: %(type)s)rr __iter__ isinstancerdictr r rappenditemspopstripr ) rZ open_elementstokenrrrvaluestartrrrrr sl            zFilter.__iter__)T)__name__ __module__ __qualname____doc__rr __classcell__rrrrr s r N)Z __future__rrrZpip._vendor.sixrr rZ constantsr r r joinr rrrrs