ž 7’ReGc@sddlmZmZmZddlmZddlmZddlm Z ddl m Z e Z ddl m Z dd l mZd d „ZGd d „d eƒZGdd„deƒZGdd„deƒZGdd„deƒZGdd„de jƒZdS(i(uabsolute_importudivisionuunicode_literals(u text_type(uetreei(u tag_regexp(ugettexti(u_base(uihatexmlcCs7|dkrdSt|tƒr#|S|jddƒSdS(Nuutf-8ustrict(uNoneu isinstanceu text_typeudecode(us((uC/tmp/pip-zej_zi-build/pip/_vendor/html5lib/treewalkers/lxmletree.pyu ensure_strs  u ensure_strcBsD|EeZdZdd„Zdd„Zdd„Zdd„Zd S( uRootcCsà||_g|_|jjrd|jjt|t|jjƒt|jjƒt|jj ƒƒƒn|j ƒ}|}x"|j ƒdk rš|j ƒ}qyWx,|dk rÉ|jj|ƒ|j ƒ}qžWd|_d|_dS(N(u elementtreeuchildrenudocinfou internalDTDuappenduDoctypeu ensure_stru root_nameu public_idu system_urlugetrootu getpreviousuNoneugetnextutextutail(uselfueturootunode((uC/tmp/pip-zej_zi-build/pip/_vendor/html5lib/treewalkers/lxmletree.pyu__init__s      u Root.__init__cCs |j|S(N(uchildren(uselfukey((uC/tmp/pip-zej_zi-build/pip/_vendor/html5lib/treewalkers/lxmletree.pyu __getitem__-suRoot.__getitem__cCsdS(N(uNone(uself((uC/tmp/pip-zej_zi-build/pip/_vendor/html5lib/treewalkers/lxmletree.pyugetnext0su Root.getnextcCsdS(Ni((uself((uC/tmp/pip-zej_zi-build/pip/_vendor/html5lib/treewalkers/lxmletree.pyu__len__3su Root.__len__N(u__name__u __module__u __qualname__u__init__u __getitem__ugetnextu__len__(u __locals__((uC/tmp/pip-zej_zi-build/pip/_vendor/html5lib/treewalkers/lxmletree.pyuRoots   uRootcBs,|EeZdZdd„Zdd„ZdS(uDoctypecCs:||_||_||_||_d|_d|_dS(N(u root_nodeunameu public_idu system_iduNoneutextutail(uselfu root_nodeunameu public_idu system_id((uC/tmp/pip-zej_zi-build/pip/_vendor/html5lib/treewalkers/lxmletree.pyu__init__8s      uDoctype.__init__cCs|jjdS(Ni(u root_nodeuchildren(uself((uC/tmp/pip-zej_zi-build/pip/_vendor/html5lib/treewalkers/lxmletree.pyugetnextAsuDoctype.getnextN(u__name__u __module__u __qualname__u__init__ugetnext(u __locals__((uC/tmp/pip-zej_zi-build/pip/_vendor/html5lib/treewalkers/lxmletree.pyuDoctype7s uDoctypecBs,|EeZdZdd„Zdd„ZdS(u FragmentRootcs0‡fdd†|Dƒˆ_dˆ_ˆ_dS(Ncsg|]}tˆ|ƒ‘qS((uFragmentWrapper(u.0uchild(uself(uC/tmp/pip-zej_zi-build/pip/_vendor/html5lib/treewalkers/lxmletree.pyu Gs u)FragmentRoot.__init__..(uchildrenuNoneutextutail(uselfuchildren((uselfuC/tmp/pip-zej_zi-build/pip/_vendor/html5lib/treewalkers/lxmletree.pyu__init__FsuFragmentRoot.__init__cCsdS(N(uNone(uself((uC/tmp/pip-zej_zi-build/pip/_vendor/html5lib/treewalkers/lxmletree.pyugetnextJsuFragmentRoot.getnextN(u__name__u __module__u __qualname__u__init__ugetnext(u __locals__((uC/tmp/pip-zej_zi-build/pip/_vendor/html5lib/treewalkers/lxmletree.pyu FragmentRootEs u FragmentRootcBs€|EeZdZdd„Zdd„Zdd„Zdd„Zd d „Zd d „Zd d„Z dd„Z dd„Z dS(uFragmentWrappercCs»||_||_t|jdƒr<t|jjƒ|_n d|_t|jdƒrot|jjƒ|_n d|_t|tƒp“t|t ƒ|_ |j r·t|jƒ|_ndS(Nutextutail( u root_nodeuobjuhasattru ensure_strutextuNoneutailu isinstanceustrubytesuisstring(uselfu fragment_rootuobj((uC/tmp/pip-zej_zi-build/pip/_vendor/html5lib/treewalkers/lxmletree.pyu__init__Os    ! uFragmentWrapper.__init__cCst|j|ƒS(N(ugetattruobj(uselfuname((uC/tmp/pip-zej_zi-build/pip/_vendor/html5lib/treewalkers/lxmletree.pyu __getattr___suFragmentWrapper.__getattr__cCsE|jj}|j|ƒ}|t|ƒdkr=||dSdSdS(Ni(u root_nodeuchildrenuindexulenuNone(uselfusiblingsuidx((uC/tmp/pip-zej_zi-build/pip/_vendor/html5lib/treewalkers/lxmletree.pyugetnextbs   uFragmentWrapper.getnextcCs |j|S(N(uobj(uselfukey((uC/tmp/pip-zej_zi-build/pip/_vendor/html5lib/treewalkers/lxmletree.pyu __getitem__jsuFragmentWrapper.__getitem__cCs t|jƒS(N(ubooluobj(uself((uC/tmp/pip-zej_zi-build/pip/_vendor/html5lib/treewalkers/lxmletree.pyu__bool__msuFragmentWrapper.__bool__cCsdS(N(uNone(uself((uC/tmp/pip-zej_zi-build/pip/_vendor/html5lib/treewalkers/lxmletree.pyu getparentpsuFragmentWrapper.getparentcCs t|jƒS(N(ustruobj(uself((uC/tmp/pip-zej_zi-build/pip/_vendor/html5lib/treewalkers/lxmletree.pyu__str__ssuFragmentWrapper.__str__cCs t|jƒS(N(ustruobj(uself((uC/tmp/pip-zej_zi-build/pip/_vendor/html5lib/treewalkers/lxmletree.pyu __unicode__vsuFragmentWrapper.__unicode__cCs t|jƒS(N(ulenuobj(uself((uC/tmp/pip-zej_zi-build/pip/_vendor/html5lib/treewalkers/lxmletree.pyu__len__ysuFragmentWrapper.__len__N( u__name__u __module__u __qualname__u__init__u __getattr__ugetnextu __getitem__u__bool__u getparentu__str__u __unicode__u__len__(u __locals__((uC/tmp/pip-zej_zi-build/pip/_vendor/html5lib/treewalkers/lxmletree.pyuFragmentWrapperNs        uFragmentWrappercBsP|EeZdZdd„Zdd„Zdd„Zdd„Zd d „Zd S( u TreeWalkercCsbt|dƒrt|ƒ}nt|tƒr<t|ƒ}ntjj||ƒtj ƒ|_ dS(Nugetroot( uhasattruRootu isinstanceulistu FragmentRootu_baseuNonRecursiveTreeWalkeru__init__uihatexmlu InfosetFilterufilter(uselfutree((uC/tmp/pip-zej_zi-build/pip/_vendor/html5lib/treewalkers/lxmletree.pyu__init__~s uTreeWalker.__init__c Cs0t|tƒrY|\}}|dks=ttdƒ|ƒ‚tjtt||ƒƒfSt|tƒrrtj fSt|t ƒrtj |j |j |jfSt|tƒrÅ|jrÅtj|jfS|jtjkrítjt|jƒfS|jtjkrtjt|jƒdd…fStjt|jƒƒ}|rR|jƒ\}}nd}t|jƒ}i}x…t|jjƒƒD]n\}}t|ƒ}t|ƒ}tj|ƒ}|rá|||j dƒ|j dƒfs  /