HEX
Server: LiteSpeed
System: Linux s787.bom1.mysecurecloudhost.com 4.18.0-477.13.1.lve.el8.x86_64 #1 SMP Thu Jun 1 16:40:47 EDT 2023 x86_64
User: mobilech (5348)
PHP: 8.1.34
Disabled: NONE
Upload Files
File: //usr/local/lib64/python3.6/site-packages/lxml/html/__pycache__/formfill.cpython-36.pyc
3

��?e�%�@sxddlmZmZddlmZmZddlmZmZmZm	Z	ddlm
Z
ddlZyeWne
k
rleZYnXdddd	d
dgZGdd�de�Zed
deid�Zedjdd�d7D��deid�Zeddeid�Zed�Zd8dd�Zd9dd�Zdd�Zdd �Zd!d"�Zd#d$�Zd%d&�Zd'd(�Zd:d)d*�Zd+d,�Z Gd-d�de!�Z"e"�Z#ddd.e#fd/d	�Z$d0d
�Z%d1d2�Z&d3d4�Z'd5d6�Z(dS);�)�XPath�ElementBase)�
fromstring�XHTML_NAMESPACE)�_forms_xpath�_options_xpath�_nons�_transform_result)�defsN�FormNotFound�	fill_form�fill_form_html�
insert_errors�insert_errors_html�DefaultErrorCreatorc@seZdZdZdS)rz*
    Raised when no form can be found
    N)�__name__�
__module__�__qualname__�__doc__�rr�2/tmp/pip-build-_veujq9v/lxml/lxml/html/formfill.pyrszKdescendant-or-self::form[name=$name]|descendant-or-self::x:form[name=$name]�x)�
namespaces�|cCsg|]}d|�qS)zdescendant-or-self::r)�.0Z_tagrrr�
<listcomp>sr�input�select�textarea�x:input�x:select�
x:textareaz-//label[@for=$for_id]|//x:label[@for=$for_id]z"descendant-or-self::*[@name=$name]cCst|||d�}t||�dS)N)�form_id�
form_index)�
_find_form�
_fill_form)�el�valuesr"r#rrrrscCs@t|�}t|t�rt|�}n
tj|�}t||||d�t||�S)N)r"r#)�type�
isinstance�
basestringr�copy�deepcopyrr	)�htmlr'r"r#�result_type�docrrrr
&s


cCs�i}t|d�r|j�}t|�}x�|D]�}|jd�}|s8q$t|�rl|j|g�}t|ttf�s`|g}t||�q$||krxq$q$|j|d�}|d||<||}t|ttf�r�y||}Wq�t	k
r�w$Yq�Xn
|dkr�q$t
||�q$WdS)N�mixed�namer�)�hasattrr0�_input_xpath�get�_takes_multipler)�list�tuple�_fill_multiple�
IndexError�_fill_single)r&r'�counts�inputsrr1�value�indexrrrr%/s4



r%cCs<t|j�dkr|jd�rdS|jdd�j�}|d	kr8dSdS)
Nr�multipleTr(��radio�checkboxF)rBrC)r�tagr5�lower)rr(rrrr6Msr6cCs�|jdd�j�}|dkrj|jd�}|dkrZ|s4d}n|d}t|t�rN|dk}t||�q�t|||k�nn|dkr�|jd�}t|||k�nLt|j�d	ks�t�x8t|�D],}|jd�}|dkr�|j	�}t
|||k�q�WdS)
Nr(rArCr>Fr�onrBr)r5rEr)r*�_checkrrD�AssertionErrorrZtext_content�_select)rr>r(�v�result�optionrrrr9Vs(



r9cCs(|r|jdd�nd|jkr$|jd=dS)N�checkedrA)�set�attrib)r&�checkrrrrGrs
rGcCs(|r|jdd�nd|jkr$|jd=dS)N�selectedrA)rNrO)r&rrrrrIys
rIcCs&t|j�dkr||_n|jd|�dS)Nrr>)rrD�textrN)rr>rrrr;�sr;cCs�|dkr0|dkr0t|�}x|D]}|SWtd��|dk	r�|j|�}|dk	rN|St||d�}|rf|dStdtdjt|��f��|dk	r�t|�}y||Stk
r�td|t|�f��YnXdS)NzNo forms in page)r1rz-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_xpath�id�join�_find_form_idsr:�len)r&r"r#�forms�formrrrr$�s0

r$ccs�t|�}|sdVdSxtt|�D]h\}}|jd�rf|jd�rXd|jd�|jd�fVq�|jd�Vq |jd�r~|jd�Vq d|Vq WdS)Nz
(no forms)rUr1z%s or %sz(unnamed form %s))r�	enumerater5)r&rYr?rZrrrrW�s



rWc@s4eZdZdZdZdZdZdZdZdd�Z	dd	�Z
d
S)rT�divz
error-messagezerror-blockZInvalidcKs<x6|j�D]*\}}t||�s(td|��t|||�q
WdS)NzUnexpected keyword argument: %s)�itemsr3�	TypeError�setattr)�self�kwr1r>rrr�__init__�s


zDefaultErrorCreator.__init__cCs|j|j�}|jr |jd|j�|rH|jrH|jd|jdd�d|j�|dksX|dkr^|j}t|t�rt|j	|�n"t|t
�s�td|��|p�|j|_|r�|j
r�|jr�|j|_d|_|jd|�n
|j	|�nD|j�}|j|�}|jr�|j||�n|j|_d|_|j|d|�dS)N�classrA� z.Bad message; should be a string or element: %rrr2)�makeelement�error_container_tag�error_message_classrN�error_block_classr5�default_messager)r�appendr*rHrR�block_inside�
insert_before�tail�insertZ	getparentr?)r`r&�is_block�message�error_el�parent�posrrr�__call__�s2




zDefaultErrorCreator.__call__N)rrrrlrkrfrgrhrirbrtrrrrr�s�errorc
Cszt|||d�}xf|j�D]Z\}}|dkr*qxFt|||�D]6\}}	t|	ttd�tf�s`td|	��t||	||�q8WqWdS)N)r"r#zBad message: %r)	r$r]�_find_elements_for_namer)r*r(rrH�
_insert_error)
r&�errorsr"r#�error_class�
error_creatorr1rurqrprrrr�s
cKs>t|�}t|t�rt|�}n
tj|�}t||f|�t||�S)N)r(r)r*rr+r,rr	)r-r'rar.r/rrrr�s


cCs�t|j�tjkst|j�dkr$d}nd}t|j�dkrD|rDt||�|jd�r|t||jd�d�}|r|x|D]}t||�qjW||||�dS)NrFTrZrU)Zfor_id)rrDr
Z
empty_tags�
_add_classr5�_label_for_xpath)r&ruryrzro�labels�labelrrrrws


rwcCs6|jd�r&|jd|jd�d|�n|jd|�dS)Nrcrd)r5rN)r&�
class_namerrrr{s
r{ccs�|dkr||fVdS|jd�rH|j|dd��}|dk	rD||fVdSt||d�}|s\dSt|ttf�s||d|fVdSx*t||�D]\}}|dkr�q�||fVq�WdS)N�#r2)r1r)�
startswithrS�_name_xpathr)r7r8�zip)rZr1rur&Zels�errrrrrvs$


rv)rrrrr r!)NN)NN)NN))Z
lxml.etreerrZ	lxml.htmlrrrrrr	r
r+r*�	NameError�str�__all__�LookupErrorrrTrVr4r|r�rr
r%r6r9rGrIr;r$rW�objectrZdefault_error_creatorrrrwr{rvrrrr�<module>sN


		
.