U Dx`)@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|kr|dd\}}z"|sht|d|||ffVWqtk rtd|YqXn"|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 namespacesdefault_namespaceparsing_attributetokenttypetagprefixurir8/tmp/pip-target-zr53vnty/lib/python/lxml/_elementpath.pyxpath_tokenizerJs&rcs|dfdd}|S)Nrc3s$|D]}|D] }|VqqdSN iterchildrenresultelemerrrselecteszprepare_child..selectrnextrr"rr!r prepare_childcs r%cCs dd}|S)Ncss$|D]}|dD] }|VqqdS)N*rrrrrr"lszprepare_star..selectrr#rrr prepare_starksr'cCs dd}|S)NcSs|Srr)rrrrr"sszprepare_self..selectrr#rrr prepare_selfrsr(csB|}|ddkrdn|ds*|dntdfdd}|S)Nrr&rzinvalid descendantc3s$|D]}|D] }|VqqdSr)Ziterdescendantsrr!rrr"sz"prepare_descendant..select)r r#rr!rprepare_descendantws   r)cCs dd}|S)Ncss$|D]}|}|dk r|VqdSr) getparent)rrparentrrrr"szprepare_parent..selectrr#rrrprepare_parentsr,cs"d}g}|}|ddkrqv|dkr&q|drV|ddddkrVd|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|dddkrdkrtdntdnZ|ddkrtd|dkrzt|ddWntk rtdYnXndfdd }|StddS)Nrr])rrrz'"'-z@-c3s"|D]}|dk r|VqdSrrrr)keyrrr"sz!prepare_predicate..selectz@-='c3s"|D]}|kr|VqdSrr1r2)r3valuerrr"sz-?\d+$c3s(|D]}|D]}|VqqqdSrr)rr_r!rrr"sz.='z-='c3s:|D]0}|D] }d|kr|VqqqdSNr)rjoinitertextr)rr4rrr"s c3s&|D]}d|kr|VqdSr6)r7r8r2)r4rrr"sz-()z-()-z3indices in path predicates are 1-based, not 0-basedzpath index >= 1 expectedlastzunsupported functionzunsupported expressionc 3s\|D]R}|}|dkrqz&t||j}||kr>|VWqtk rTYqXqdSr)r*listrr IndexError)rrr+elems)indexrrr"s  zinvalid predicate)appendrematchintr ValueError)r$r signature predicater"r)r>r3rr4rprepare_predicatesf   &       rF)rr&.z..z//[cCs|dddkr|d7}|f}|rd|krd|krZ|d|dkrZtd|d|df||dfttdd|D7}n|tt|7}z t|WStk rYnXttd krt|dd dkrtd t t ||}z |j }Wnt k r|j }YnXz |}Wntk rBtd YnXg}z|t|d ||Wntk rtdYnXz|}|d dkr|}Wntk rYqYnXqH|t|<|S)zcompile selector patternr/N/r&rz2Ambiguous default namespace provided: %r versus %rcss|]}|ddk r|VqdS)rNr).0itemrrr s z'_build_path_iterator..drz#cannot use absolute path on elementzempty path expressionrz invalid path)rCtuplesorteditems_cacher lenclearr iterrr$AttributeError__next__ StopIterationr?ops)pathr cache_keystream_nextrselectorrrr_build_path_iteratorsX      r^cCs*t||}t|f}|D] }||}q|Sr)r^rT)rrYrr]rr"rrriterfind7s    r_cCs2t|||}z t|WStk r,YdSXdSr)r_r$rW)rrYritrrrfindBs   racCstt|||Sr)r;r_)rrYrrrrr Msr cCs&t|||}|dkr|S|jp dSdSr6)ratext)rrYdefaultrelrrrfindtextTs re)N)N)N)N)NN) __future__rr@compiler rr%r'r(r)r,rFrXrQr^r_rar rerrrr:s0  c 9