Sindbad~EG File Manager

Current Path : /lib64/python3.6/site-packages/lxml/html/__pycache__/
Upload File :
Current File : //lib64/python3.6/site-packages/lxml/html/__pycache__/formfill.cpython-36.opt-1.pyc

3

)�2Y�%�@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� /usr/lib64/python3.6/formfill.pyrszKdescendant-or-self::form[name=$name]|descendant-or-self::x:form[name=$name]�x)Z
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�)�hasattrr/�_input_xpath�get�_takes_multipler(�list�tuple�_fill_multiple�
IndexError�_fill_single)r%r&ZcountsZinputsrr0�value�indexrrrr$/s4



r$cCs<t|j�dkr|jd�rdS|jdd�j�}|d	kr8dSdS)
NrZmultipleTr'��radio�checkboxF)r>r?)r�tagr4�lower)rr'rrrr5Msr5cCs�|jdd�j�}|dkrj|jd�}|dkrZ|s4d}n|d}t|t�rN|dk}t||�q�t|||k�n\|dkr�|jd�}t|||k�n:x8t|�D],}|jd�}|dkr�|j�}t|||k�q�WdS)	Nr'r=r?r;FrZonr>)r4rAr(r)�_checkrZtext_content�_select)rr;r'�v�resultZoptionrrrr8Vs&



r8cCs(|r|jdd�nd|jkr$|jd=dS)NZcheckedr=)�set�attrib)r%ZcheckrrrrBrs
rBcCs(|r|jdd�nd|jkr$|jd=dS)NZselectedr=)rFrG)r%rrrrrCys
rCcCs&t|j�dkr||_n|jd|�dS)Nrr;)rr@�textrF)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)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#�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)rKr0z%s or %sz(unnamed form %s))r�	enumerater4)r%rOr<rPrrrrM�s



rMc@s4eZdZdZdZdZdZdZdZdd�Z	dd	�Z
d
S)rTZdivz
error-messagezerror-blockZInvalidcKs<x6|j�D]*\}}t||�s(td|��t|||�q
WdS)NzUnexpected keyword argument: %s)�itemsr2�	TypeError�setattr)�self�kwr0r;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|p||j|_
|r�|jr�|jr�|j
|_
d|_
|jd|�q�|j	|�nD|j�}|j|�}|jr�|j||�n|j
|_
d|_
|j|d|�dS)N�classr=� rr1)Zmakeelement�error_container_tag�error_message_classrF�error_block_classr4�default_messager(r�appendrH�block_inside�
insert_before�tail�insertZ	getparentr<)rUr%�is_block�message�error_el�parent�posrrr�__call__�s.



zDefaultErrorCreator.__call__N)rrrr`r_rZr[r\r]rWrhrrrrr�s�errorc
CsZt|||d�}xF|j�D]:\}}|dkr*qx&t|||�D]\}}	t||	||�q8WqWdS)N)r!r")r#rR�_find_elements_for_name�
_insert_error)
r%�errorsr!r"�error_class�
error_creatorr0rirerdrrrr�scKs>t|�}t|t�rt|�}n
tj|�}t||f|�t||�S)N)r'r(r)rr*r+rr	)r,r&rVr-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)NrFTrPrK)Zfor_id)rr@r
Z
empty_tags�
_add_classr4�_label_for_xpath)r%rirmrnrcZlabelsZlabelrrrrks


rkcCs6|jd�r&|jd|jd�d|�n|jd|�dS)NrXrY)r4rF)r%�
class_namerrrros
roccs�|dkr||fVdS|jd�rH|j|dd��}|dk	rD||fVdSt||d�}|s\dSt|ttf�s||d|fVdSx*t||�D]\}}|dkr�q�||fVq�WdS)N�#r1)r0r)�
startswithrI�_name_xpathr(r6r7�zip)rPr0rir%Zels�errrrrrjs$


rj)rrrrrr )NN)NN)NN))Z
lxml.etreerrZ	lxml.htmlrrrrrr	r
r*r)�	NameError�str�__all__�LookupErrorrrJrLr3rprtrr
r$r5r8rBrCr:r#rM�objectrZdefault_error_creatorrrrkrorjrrrr�<module>sN


		
.	

Sindbad File Manager Version 1.0, Coded By Sindbad EG ~ The Terrorists