a a)@sddlmZddlZedZdddZddZdd Zd d Zd d Z ddZ ddZ eeee e e dZ iZ ddZdddZdddZd ddZd!ddZdS)")absolute_importNzY('[^']*'|"[^"]*"|::|//?|\.\.|\(\)|[/.*:\[\]\(\)@=])|((?:\{[^}]+\})?[^/\[\]\(\)@=\s]+)|\s+c cs|r|dp|dnd}d}t|D]}|\}}|r|ddkrd|vr|dd\}}z"|sht|d|||ffVWqtytd|Yq0n"|r|s|d||ffVn|Vd}q*|V|d k}q*dS) NFr{:z{%s}%sz!prefix %r not found in prefix map@)getxpath_tokenizer_refindallsplitKeyError SyntaxError) pattern namespacesZdefault_namespaceZparsing_attributetokenZttypetagprefixZurir7/usr/lib64/python3.9/site-packages/lxml/_elementpath.pyxpath_tokenizerJs& rcs|dfdd}|S)Nrc3s$|D]}|D] }|VqqdSN iterchildrenresultelemerrrselecteszprepare_child..selectrnextrrrrr prepare_childcs r!cCs dd}|S)Ncss$|D]}|dD] }|VqqdS)N*rrrrrrlszprepare_star..selectrrrrr prepare_starksr#cCs dd}|S)NcSs|Srr)rrrrrsszprepare_self..selectrrrrr prepare_selfrsr$csB|}|ddkrdn|ds*|dntdfdd}|S)Nrr"rzinvalid descendantc3s$|D]}|D] }|VqqdSr)Ziterdescendantsrrrrrsz"prepare_descendant..select)r rrrrprepare_descendantws   r%cCs dd}|S)Ncss$|D]}|}|dur|VqdSr) getparent)rrparentrrrrszprepare_parent..selectrrrrrprepare_parentsr(cs d}g}|}|ddkrqv|dkr&q|drV|ddddvrVd|dddf}||dpbd 7}||dq|d kr|dfd d }|S|d kr|d|dfdd }|S|d krtd|ds|dfdd }|S|dks|dkrLtd|dsL|d|dr<fdd }n fdd }|S|d ksj|dksj|dkr|d krt|dddkrdkrtdntdnX|ddkrtd|dkrzt|ddWntytdYn0ndfdd }|StddS)Nrr])rrrz'"'-z@-c3s"|D]}|dur|VqdSrrrr)keyrrrsz!prepare_predicate..selectz@-='c3s"|D]}|kr|VqdSrr-r.)r/valuerrrsz-?\d+$c3s(|D]}|D]}|VqqqdSrr)rr_rrrrsz.='z-='c3s:|D]0}|D] }d|kr|VqqqdSNr)rjoinitertextr)rr0rrrs c3s&|D]}d|kr|VqdSr2)r3r4r.)r0rrrsz-()z-()-z3indices in path predicates are 1-based, not 0-basedzpath index >= 1 expectedZlastzunsupported functionzunsupported expressionc 3sZ|D]P}|}|durqz&t||j}||ur>|VWqtyRYq0qdSr)r&listrr IndexError)rrr'Zelems)indexrrrs   zinvalid predicate)appendrematchintr ValueError)r rZ signature predicaterr)r8r/rr0rprepare_predicatesf   &       r?)rr".z..z//[cCs|dddkr|d7}|f}|rd|vrd|vrZ|d|dkrZtd|d|df||dfttdd|D7}n|tt|7}z t|WStyYn0ttd krt|dd dkrtd t t ||}z |j }Wnt y|j }Yn0z |}Wnty<td Yn0g}z|t|d ||WntyztdYn0z|}|d dkr|}WntyYqYn0qB|t|<|S)zcompile selector patternr+N/r"rz2Ambiguous default namespace provided: %r versus %rcss|]}|ddur|VqdS)rNr).0itemrrr sz'_build_path_iterator..drz#cannot use absolute path on elementzempty path expressionrz invalid path)r=tuplesorteditems_cacher lenclearr iterrr AttributeError__next__ StopIterationr9ops)pathrZ cache_keystreamZ_nextrselectorrrr_build_path_iteratorsV        rUcCs*t||}t|f}|D] }||}q|Sr)rUrM)rrRrrTrrrrriterfind7s    rVcCs0t|||}z t|WSty*YdS0dSr)rVr rP)rrRritrrrfindBs    rXcCstt|||Sr)r6rV)rrRrrrrr Msr cCs&t|||}|dur|S|jp dSdSr2)rXtext)rrRdefaultrelrrrfindtextTs r\)N)N)N)N)NN)Z __future__rr:compiler rr!r#r$r%r(r?rQrJrUrVrXr r\rrrr:s0  c 9