a a%@snddlmZmZddlmZmZddlmZmZmZm Z ddlm Z ddl Z ze Wne yjeZ Yn0gdZGdddeZed d eid Zed d ddDd eid Zedd eid ZedZd3ddZd4ddZddZddZddZddZddZd d!Zd5d"d#Zd$d%Z Gd&d'd'e!Z"e"Z#ddd(e#fd)d*Z$d+d,Z%d-d.Z&d/d0Z'd1d2Z(dS)6)XPath ElementBase) fromstringXHTML_NAMESPACE) _forms_xpath_options_xpath_nons_transform_result)defsN) FormNotFound fill_formfill_form_html insert_errorsinsert_errors_htmlDefaultErrorCreatorc@seZdZdZdS)r z* Raised when no form can be found N)__name__ __module__ __qualname____doc__rr8/usr/lib64/python3.9/site-packages/lxml/html/formfill.pyr sr zKdescendant-or-self::form[name=$name]|descendant-or-self::x:form[name=$name]x)Z namespaces|cCsg|] }d|qS)zdescendant-or-self::r).0Z_tagrrr r)inputselecttextareazx:inputzx:selectz x:textareaz-//label[@for=$for_id]|//x:label[@for=$for_id]z"descendant-or-self::*[@name=$name]cCst|||d}t||dSN)form_id form_index) _find_form _fill_form)elvaluesr r!rrrr sr cCs@t|}t|trt|}n t|}t||||dt||Sr)type isinstance basestringrcopydeepcopyr r )htmlr%r r! result_typedocrrrr &s    r c Csi}t|dr|}t|}|D]}|d}|s6q"t|rj||g}t|ttfs^|g}t||q"||vrvq"q"||d}|d||<||}t|ttfrz ||}Wqt yYq"Yq0n |dkrq"t ||q"dS)Nmixednamer) hasattrr. _input_xpathget_takes_multipler'listtuple_fill_multiple IndexError _fill_single)r$r%ZcountsZinputsrr/valueindexrrrr#/s4         r#cCs<t|jdkr|drdS|dd}|dvr8dSdS)NrZmultipleTr&)radiocheckboxF)rtagr3lower)rr&rrrr4Ms r4cCs|dd}|dkrj|d}|durZ|s4d}n|d}t|trN|dk}t||qt|||vnX|dkr|d}t|||vn6t|D],}|d}|dur|}t|||vqdS) Nr&r<r>r:FrZonr=)r3r@r'r(_checkrZ text_content_select)rr:r&vresultoptionrrrr7Vs&      r7cCs(|r|ddnd|jvr$|jd=dS)Ncheckedr<setZattrib)r$checkrrrrArs rAcCs(|r|ddnd|jvr$|jd=dS)NZselectedr<rG)r$rrrrrBys rBcCs&t|jdkr||_n |d|dS)Nrr:)rr?textrH)rr:rrrr9sr9cCs|dur0|dur0t|}|D] }|Std|dur||}|durN|St||d}|rf|dStdtdt|f|durt|}z ||WStytd|t|fYn0dS)NzNo forms in pager/rz-No form with the name or id of %r (forms: %s)z, z3There is no form with the index %r (%i forms found)) rr get_element_by_id_form_name_xpathidjoin_find_form_idsr8len)r$r r!formsformrrrr"s:     r"ccst|}|sdVdSt|D]h\}}|drd|drVd|d|dfVq|dVq|dr||dVqd|VqdS)Nz (no forms)rNr/z%s or %sz(unnamed form %s))r enumerater3)r$rRr;rSrrrrPs     rPc@s4eZdZdZdZdZdZdZdZddZ dd Z d S) rTZdivz error-messagez error-blockZInvalidcKs8|D]*\}}t||s&td|t|||qdS)NzUnexpected keyword argument: %s)itemsr1 TypeErrorsetattr)selfkwr/r:rrr__init__s  zDefaultErrorCreator.__init__cCs||j}|jr |d|j|rH|jrH|d|ddd|j|dusX|dkr^|j}t|trt| |n |p||j|_ |r|j r|j r|j |_ d|_ |d|q| |nD|}||}|j r|||n|j |_ d|_ ||d|dS)Nclassr< rr0)Z makeelementerror_container_tagerror_message_classrHerror_block_classr3default_messager'rappendrJ block_inside insert_beforetailinsertZ getparentr;)rXr$is_blockmessageerror_elparentposrrr__call__s.        zDefaultErrorCreator.__call__N) rrrrcrbr]r^r_r`rZrkrrrrrsrerrorc CsRt|||d}|D]6\}}|dur(qt|||D]\}} t|| ||q4qdSr)r"rU_find_elements_for_name _insert_error) r$errorsr r! error_class error_creatorr/rlrhrgrrrrs rcKsBt|}t|trt|}n t|}t||fi|t||S)N)r&r'r(rr)r*rr )r+r%rYr,r-rrrrs    rcCst|jtjvst|jdkr$d}nd}t|jdkrD|rDt|||drxt||dd}|rx|D]}t||qh||||dS)NrFTrSrN)Zfor_id)rr?r Z empty_tags _add_classr3_label_for_xpath)r$rlrprqrflabelsZlabelrrrrns   rncCs6|dr&|d|dd|n |d|dS)Nr[r\)r3rH)r$ class_namerrrrrs rrccs|dur||fVdS|drH||dd}|durD||fVdSt||d}|s\dSt|ttfs||d|fVdSt||D]\}}|durq||fVqdS)N#r0rKr) startswithrL _name_xpathr'r5r6zip)rSr/rlr$Zelserrrrrrms$    rm)NN)NN)NN))Z lxml.etreerrZ lxml.htmlrrrrrr r r)r( NameErrorstr__all__ LookupErrorr rMrOr2rsrxr r r#r4r7rArBr9r"rPobjectrZdefault_error_creatorrrrnrrrmrrrrsR      .