3
)�2Y�% � @ sx d dl mZmZ d dlmZmZ d dlmZmZmZm Z d dlm
Z
d dlZye W n e
k
rl eZY nX dddd d
dgZG dd� 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 G d-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 @ s e Zd ZdZdS )r z*
Raised when no form can be found
N)�__name__�
__module__�__qualname__�__doc__� r r � /usr/lib64/python3.6/formfill.pyr s zKdescendant-or-self::form[name=$name]|descendant-or-self::x:form[name=$name]�x)Z
namespaces�|c C s g | ]}d | �qS )zdescendant-or-self::r )�.0Z_tagr r r �
<listcomp> s r �input�select�textarea�x:input�x:select�
x:textareaz-//label[@for=$for_id]|//x:label[@for=$for_id]z"descendant-or-self::*[@name=$name]c C s t | ||d�} t| |� d S )N)�form_id�
form_index)�
_find_form�
_fill_form)�el�valuesr! r"