HEX
Server: LiteSpeed
System: Linux s1049.use1.mysecurecloudhost.com 4.18.0-477.27.2.lve.el8.x86_64 #1 SMP Wed Oct 11 12:32:56 UTC 2023 x86_64
User: xedaptot (3356)
PHP: 8.3.31
Disabled: NONE
Upload Files
File: //usr/local/lib64/python3.8/site-packages/lxml/html/__pycache__/formfill.cpython-38.pyc
U

O��i�%�@svddlmZmZddlmZmZddlmZmZmZm	Z	ddlm
Z
ddlZzeWne
k
rleZYnXdddd	d
dgZGdd�de�Zed
deid�Zed�dd�dD��deid�Zeddeid�Zed�Zd2dd�Zd3dd�Zdd�Zdd�Zdd�Zdd�Zd d!�Zd"d#�Zd4d$d%�Zd&d'�Z Gd(d�d�Z!e!�Z"ddd)e"fd*d	�Z#d+d
�Z$d,d-�Z%d.d/�Z&d0d1�Z'dS)5�)�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�4/tmp/pip-install-gdmoqxf6/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�textareazx:inputzx:selectz
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
t�|�}t||||d�t||�Sr)�type�
isinstance�
basestringr�copy�deepcopyrr	)�htmlr&r!r"�result_type�docrrrr
&s


c	Cs�i}t|d�r|��}t|�}|D]�}|�d�}|s6q"t|�rj|�|g�}t|ttf�s^|g}t||�q"||krvq"q"|�|d�}|d||<||}t|ttf�r�z||}Wq�t	k
r�Yq"Yq�Xn
|dkr�q"t
||�q"dS)N�mixed�namer�)�hasattrr/�_input_xpath�get�_takes_multipler(�list�tuple�_fill_multiple�
IndexError�_fill_single)r%r&�counts�inputsrr0�value�indexrrrr$/s4

r$cCs<t|j�dkr|�d�rdS|�dd���}|dkr8dSdS)Nr�multipleTr'�)�radio�checkboxF)r�tagr4�lower)rr'rrrr5Msr5cCs�|�dd���}|dkrj|�d�}|dkrZ|s4d}n|d}t|t�rN|dk}t||�q�t|||k�nj|dkr�|�d�}t|||k�nHt|j�d	ks�t�t|�D],}|�d�}|dkr�|�	�}t
|||k�q�dS)
Nr'r@rBr=Fr�onrAr)r4rDr(r)�_checkrrC�AssertionErrorrZtext_content�_select)rr=r'�v�result�optionrrrr8Vs(



r8cCs(|r|�dd�nd|jkr$|jd=dS)N�checkedr@��set�attrib)r%�checkrrrrFrs
rFcCs(|r|�dd�nd|jkr$|jd=dS)N�selectedr@rM)r%rrrrrHys
rHcCs&t|j�dkr||_n|�d|�dS)Nrr=)rrC�textrN)rr=rrrr:�sr:cCs�|dkr0|dkr0t|�}|D]
}|Std��|dk	r�|�|�}|dk	rN|St||d�}|rf|dStdtd�t|��f��|dk	r�t|�}z
||WStk
r�td|t|�f��YnXdS)NzNo forms in page�r0rz-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_idsr9�len)r%r!r"�forms�formrrrr#�s:�
��

��r#ccs�t|�}|sdVdSt|�D]h\}}|�d�rd|�d�rVd|�d�|�d�fVq�|�d�Vq|�d�r||�d�Vqd|VqdS)Nz
(no forms)rVr0z%s or %sz(unnamed form %s))r�	enumerater4)r%rZr>r[rrrrX�s


�

rXc@s4eZdZdZdZdZdZdZdZdd�Z	dd	�Z
d
S)rT�divz
error-messagezerror-blockZInvalidcKs8|��D]*\}}t||�s&td|��t|||�qdS)NzUnexpected keyword argument: %s)�itemsr2�	TypeError�setattr)�self�kwr0r=rrr�__init__�s
�zDefaultErrorCreator.__init__cCs|�|j�}|jr |�d|j�|rH|jrH|�d|�dd�d|j�|dksX|dkr^|j}t|t�rt|�	|�n"t|t
�s�td|��|p�|j|_|r�|j
r�|jr�|j|_d|_|�d|�n
|�	|�nD|��}|�|�}|jr�|�||�n|j|_d|_|�|d|�dS)N�classr@� z.Bad message; should be a string or element: %rrr1)�makeelement�error_container_tag�error_message_classrN�error_block_classr4�default_messager(r�appendr)rGrR�block_inside�
insert_before�tail�insertZ	getparentr>)rar%�is_block�message�error_el�parent�posrrr�__call__�s4

�

zDefaultErrorCreator.__call__N)rrrrmrlrgrhrirjrcrurrrrr�s�errorc
Csrt|||d�}|��D]V\}}|dkr(qt|||�D]6\}}	t|	ttd�tf�s\td|	��t||	||�q4qdS)Nr zBad message: %r)	r#r^�_find_elements_for_namer(r)r'rrG�
_insert_error)
r%�errorsr!r"�error_class�
error_creatorr0rvrrrqrrrr�s�cKs>t|�}t|t�rt|�}n
t�|�}t||f|�t||�S)N)r'r(r)rr*r+rr	)r,r&rbr-r.rrrr�s


cCs�t|j�tjkst|j�dkr$d}nd}t|j�dkrD|rDt||�|�d�rxt||�d�d�}|rx|D]}t||�qh||||�dS)NrFTr[rV)Zfor_id)rrCr
Z
empty_tags�
_add_classr4�_label_for_xpath)r%rvrzr{rp�labels�labelrrrrxs

rxcCs6|�d�r&|�d|�d�d|�n|�d|�dS)Nrdre)r4rN)r%�
class_namerrrr|s
r|ccs�|dkr||fVdS|�d�rH|�|dd��}|dk	rD||fVdSt||d�}|s\dSt|ttf�s||d|fVdSt||�D]\}}|dkr�q�||fVq�dS)N�#r1rSr)�
startswithrT�_name_xpathr(r6r7�zip)r[r0rvr%Zels�errrrrrws$


rw)NN)NN)NN)(Z
lxml.etreerrZ	lxml.htmlrrrrrr	r
r*r)�	NameError�str�__all__�LookupErrorrrUrWr3r}r�rr
r$r5r8rFrHr:r#rXrZdefault_error_creatorrrrxr|rwrrrr�<module>sZ
����
	
		
.�