g% ddlmZmZddlmZmZddlmZmZmZm Z ddlm Z ddl Z e gdZGddeZed d ei Zed j'd Dcgc]}d|z c}d ei Zedd ei ZedZ d#dZd#dZdZdZdZdZdZdZd#dZdZ GddZ!e!Z"ddde"fdZ#dZ$d Z%d!Z&d"Z'y#e $reZ YwxYwcc}w)$)XPath ElementBase) fromstringXHTML_NAMESPACE) _forms_xpath_options_xpath_nons_transform_result)defsN) FormNotFound fill_formfill_form_html insert_errorsinsert_errors_htmlDefaultErrorCreatorceZdZdZy)r z* Raised when no form can be found N)__name__ __module__ __qualname____doc__C/opt/hc_python/lib64/python3.12/site-packages/lxml/html/formfill.pyr r srr zKdescendant-or-self::form[name=$name]|descendant-or-self::x:form[name=$name]x) namespaces|)inputselecttextareazx:inputzx:selectz x:textareazdescendant-or-self::z-//label[@for=$for_id]|//x:label[@for=$for_id]z"descendant-or-self::*[@name=$name]c8t|||}t||yNform_id form_index) _find_form _fill_form)elvaluesr#r$s rr r s BJ ?Br6rct|}t|tr t|}nt j |}t ||||t||Sr!)type isinstance basestringrcopydeepcopyr r )htmlr(r#r$ result_typedocs rrr&sHt*K$ #mmD! c67zB [# ..rci}t|dr|j}t|}|D]}|jd}|st |r8|j|g}t |t tfs|g}t||Z||vr_|j|d}|dz||<||}t |t tfr ||}n|dkDrt||y#t$rYwxYw)Nmixednamer) hasattrr3 _input_xpathget_takes_multipler+listtuple_fill_multiple IndexError _fill_single)r'r(countsinputsrr4valueindexs rr&r&/s Fvw " Fyy   5 !JJtR(EedE]3 5% (   JJtQ'E 19F4L4LE%$/!%LE  &-$"sC C('C(ct|jdk(r|jdry|jddj}|dvryy)NrmultipleTr*)radiocheckboxF)r tagr8lower)rr*s rr9r9MsI UYY8# *(= 99VR & & (D $$ rc|jddj}|dk(rN|jd}|,|sd}n|d}t|tr|dk(}t ||yt |||vy|dk(r |jd}t |||vyt |j d k(sJt|D]3}|jd}||j}t|||v5y) Nr*rErGrAFronrFr) r8rIr+r,_checkr rHr text_content_select)rrAr*vresultoptions rr<r<Vs 99VR & & (D z IIg  9qeZ0#t^F 5& ! 5!u* %  IIg ua5j!UYY8+++$U+F 7#Ay'') FAJ ' ,rcf|r|jddyd|jvr|jd=yy)NcheckedrEsetattrib)r'checks rrLrLrs0  y"  ! )$ "rcf|r|jddyd|jvr|jd=yy)NselectedrErT)r'rs rrNrNys0  z2  " *% #rcht|jdk(r||_y|jd|y)NrrA)r rHtextrU)rrAs rr>r>s( UYY:%  '5!rc p|"| t|}|D]}|cStd|W|j|}||St||}|r|dStdtddj t |d|t|} ||Sy#t$rtd|t|fzwxYw) NzNo forms in pager4rzNo form with the name or id of z (forms: z, )z3There is no form with the index %r (%i forms found)) rr get_element_by_id_form_name_xpathidjoin_find_form_idsr=len)r'r#r$formsforms rr%r%s:-R DK   ##G,  K '2 8Otyy!3467 7R  ,$ $ ,Es5z*+, , ,s B#B5c#jKt|}|sdyt|D]\}}|jdrM|jdr(|jdd|jdP|jdd|jdr|jdd|zyw)Nz (no forms)rar4z or z(unnamed form %s))r enumerater8)r'rerBrfs rrcrcs  E  ' t 88D>xx$(HHTN%)XXf%577hhtn$ XXf ((6" "%- -(sB1B3c0eZdZdZdZdZdZdZdZdZ dZ y) rTdivz error-messagez error-blockInvalidc |jD],\}}t||std|zt|||.y)NzUnexpected keyword argument: %s)itemsr6 TypeErrorsetattr)selfkwr4rAs r__init__zDefaultErrorCreator.__init__sA88:KD%4&5<>> D$ & &rcZ|j|j}|jr|jd|j|r>|jr2|jd|j dddz|jz||dk(r |j }t|tr|j|n/t|ts Jd|z|xs |j |_ |rU|jrI|jr+|j|_d|_ |jd|y|j|y|j!}|j#|}|jr|j||y|j|_d|_|j|dz|y)NclassrE z.Bad message; should be a string or element: %rrr5) makeelementerror_container_tagerror_message_classrUerror_block_classr8default_messager+rappendr,r[ block_inside insert_beforetailinsert getparentrB)rpr'is_blockmessageerror_elparentposs r__call__zDefaultErrorCreator.__call__sZ>>$":":;  # # LL$":": ; .. LL(,,w";C"?@V@V"V W ?gm**G g{ + OOG $gz2 L@7J L2#;t';';HM ))!! "  !X& (#\\^F,,r"C!! c8, "  c!eX.rN) rrrr}r|rwrxryrzrrrrrrrrs-ML)%O'/rrerrorc t|||}|jD]U\}}| t|||D]=\}} t| tt dt fs Jd| zt|| ||?Wy)Nr"zBad message: %r)r%rm_find_elements_for_namer+r,r*r _insert_error) r'errorsr#r$ error_class error_creatorr4rrrs rrrs BJ ?B||~ e = !8T5!I Hgg DJ 'LM -!G+ -M (G[- H"J&rc t|}t|tr t|}nt j |}t ||fi|t||S)N)r*r+r,rr-r.rr )r/r(rqr0r1s rrrsIt*K$ #mmD!#v$$ [# ..rclt|jtjvst|jdk(rd}nd}t|jdk7r|r t |||j dr1t ||j d}|r|D]}t ||||||y)NrFTrfra)for_id)r rHr empty_tags _add_classr8_label_for_xpath)r'rrrrlabelslabels rrrs RVV}'5=J+F RVV};2{# vvd|!"RVVD\: 5+. "h&rc|jdr(|jd|jddz|zy|jd|y)Nrtru)r8rU)r' class_names rrrs; vvg ww+J67 w #rc#K|||fy|jdr|j|dd}|||fyt||}|syt|tt fs |d|fyt ||D]\}}| ||fyw)N#r5r]r) startswithr_ _name_xpathr+r:r;zip)rfr4rr'elserrs rrrs |Ek s  # #DH - >e)O d &C  edE] +!femsE?C ; #g #sBB)NN)( lxml.etreerr lxml.htmlrrrrr r r r-r, NameErrorstr__all__ LookupErrorr r`rbr7rrr rr&r9r<rLrNr>r%rcrdefault_error_creatorrrrrr)_tags0rrsU)1LL   "; ftwyHtIJSXXHGHHGt5d:HGHI+.*?A H+.*?A89  /'<(8%&" ,6.*,/,/\,- ' I"/ '$ YJHsC C CC