%PDF- %PDF-
Mini Shell

Mini Shell

Direktori : /snap/core22/current/usr/share/subiquity/subiquitycore/ui/__pycache__/
Upload File :
Create Path :
Current File : //snap/core22/current/usr/share/subiquity/subiquitycore/ui/__pycache__/form.cpython-310.pyc

o

K��^�:�@sJddlZddlZddlmZddlmZmZmZmZm	Z	m
ZmZm
Z
mZddlmZmZddlmZmZddlmZmZmZmZddlmZddlmZmZmZdd	l m!Z!m"Z"m#Z#m$Z$dd
l%m&Z&e�'d�Z(e)�Z*e)�Z+Gdd
�d
ed�e�Z,Gdd�de�Z-Gdd�dej.�Z/Gdd�de)�Z0dedd�iZ1Gdd�de)�Z2dd�Z3e3e�Z4e3e�Z5e3e�Z6e3e�Z7Gdd�de�Z8Gdd�de/�Z9Gd d!�d!ee0�Z:e3e:�Z;Gd"d#�d#e/�Z<Gd$d%�d%e
�Z=Gd&d'�d'e/�Z>Gd(d)�d)e�Z?Gd*d+�d+e/�Z@Gd,d-�d-e	�ZAGd.d/�d/e)eAd0�ZBGd1d2�d2e�ZCGd3d4�d4e/�ZDGd5d6�d6eB�ZEdS)7�N)�urlparse)	�CheckBox�connect_signal�delegate_to_widget_mixin�emit_signal�MetaSignals�Padding�RadioButton�Text�WidgetDecoration)�
cancel_btn�done_btn)�Pile�
WidgetWrap)�PasswordEditor�
IntegerEditor�StringEditor�EmailEditor)�Selector)�ColSpec�	TablePile�TableRow)�button_pile�Color�disabled�screen)�widget_widthzsubiquitycore.ui.formc@s2eZdZdZdd�Zedd��Zejdd��ZdS)�
ToggleableTcCs||_d|_d|_dS)NFT)�original�_enabled�enabled)�selfr�r"�-/usr/share/subiquity/subiquitycore/ui/form.py�__init__Ns
zToggleable.__init__cC�|jS�N�r�r!r"r"r#r S�zToggleable.enabledcCs4|r
|js
|j|_n|s|jrt|j�|_||_dSr&)rr�original_widgetr�r!�valr"r"r#r Ws




N)�__name__�
__module__�__qualname__�has_original_widthr$�propertyr �setterr"r"r"r#rIs
r�_original_widgetcs,eZdZ�fdd�Zdd�Zdd�Z�ZS)�
_Validatorcs||_t��|�dSr&)�field�superr$)r!r5�w��	__class__r"r#r$b�z_Validator.__init__cC�
t|j�Sr&)r�_wr(r"r"r#�get_natural_widthf�
z_Validator.get_natural_widthcCs4d|j_t|jjdd�}|dur|�|j��dS)NF�
lost_focus)r5�
showing_extra�getattrr<�base_widget�validate)r!�lfr"r"r#r?is
z_Validator.lost_focus)r-r.r/r$r=r?�
__classcell__r"r"r8r#r4`sr4c@s8eZdZdZdZdZd
dd�Zejdd��Z	dd	�Z
dS)�	FormFieldrTNcCs&||_||_tj|_tjd7_dS)N�)�caption�helprF�
next_index�index)r!rHrIr"r"r#r$wszFormField.__init__cCsdSr&r"�r!�formr"r"r#�_make_widget}szFormField._make_widgetcCs|�|�}t|||�Sr&)rN�BoundFormField)r!rM�widgetr"r"r#�bind�s
zFormField.bind�NN)r-r.r/rJ�takes_default_style�
caption_firstr$�abc�abstractmethodrNrQr"r"r"r#rFqs

rFc@�eZdZdZdd�ZdS)�WantsToKnowFormFieldzA marker class.cC�
||_dSr&)�bff)r!rZr"r"r#�set_bound_form_field�r>z)WantsToKnowFormField.set_bound_form_fieldN)r-r.r/�__doc__r[r"r"r"r#rX�srXrGF)�packc@s�eZdZdd�Zdd�Zdd�Zdd�Zd	d
�Zddd
�Zdd�Z	e
dd��Zejdd��Ze
dd��Z
e
jdd��Z
e
dd��Zejdd��Ze
dd��Zejdd��ZdS)rOcCsl||_||_||_d|_d|_d|_d|_|��dt|dg�vr(t	|d|j
�t|t�r4|�
|�dSdS)NFT�change�signals)r5rMrP�in_errorr�_helpr@�_build_tablerAr�_change�
isinstancerXr[)r!r5rMrPr"r"r#r$�s
�zBoundFormField.__init__cCs|j}|jjrt�|�}|jturt|j�|_ntd�|_|jj	t
ur2dt||�fg}d|jfg}n0tt|jj	��|_
|jjrLd|j
_|j
t||�g}nt|t|dt|�d��|j
g}td�|jg}|g}|jturo|�|�dd�|D�|_t|jdtd�|_dS)N���right)�align�widthcSsg|]}tt|���qSr")rr)�.0�rowr"r"r#�
<listcomp>�sz/BoundFormField._build_table.<locals>.<listcomp>)�spacing�colspecs)rPr5rSr�string_inputrI�NO_HELPr
�
under_textrH�
NO_CAPTIONr4�_�caption_textrTrh�UrwidPaddingr�append�_rowsr�
form_colspecs�_table)r!rP�	first_row�
second_row�rowsr"r"r#rb�s8


���

zBoundFormField._build_tablecCs*t|jd|jjd�}|dur||�}|S)N�clean_)rArMr5�name)r!�value�cleanerr"r"r#�clean�szBoundFormField.cleancCsf|js|jr1d|_||_|��}|`|durdSd|_|js*|jtur*|j�|j�|j�	�dSdS)NF)
r`r@�tmpval�	_validaterIrprq�set_textrM�	validated)r!�sender�new_val�rr"r"r#rc�s�zBoundFormField._changec
Csj|jsdSz|jWnty }z
t|�WYd}~Sd}~wwt|jd|jjd�}|dur3|�SdS)N�	validate_)rr�
ValueError�strrArMr5r~)r!�e�	validatorr"r"r#r��s
���zBoundFormField._validateTcCs\|��}|durd|_|js|jtur|j�|j�nd|_|r'|�d|f�|j�	�dS)NFT�
info_error)
r�r`r@rIrprqr��
show_extrarMr�)r!�
show_errorr�r"r"r#rC�s�zBoundFormField.validatecCsd|_|j�|�dS)NT)r@rqr�)r!�extra_markupr"r"r#r��r:zBoundFormField.show_extracCs|�t|d|jj��S)Nr�)r�rArPrr(r"r"r#r�szBoundFormField.valuecCs||j_dSr&)rPrr+r"r"r#rscCsB|jdur|jS|jjdurt|jjt�rt|jj�S|jjSdS�Nre)rar5rIrdr�rsr(r"r"r#rIs
zBoundFormField.helpcCs"|durd}||_|j�|�dSr�)rarqr�r+r"r"r#rIscCs|jjSr&)rt�textr(r"r"r#rHszBoundFormField.captioncCs|j�|�dSr&)rtr�r+r"r"r#rHscCr%r&r'r(r"r"r#r !r)zBoundFormField.enabledcCs||_|jD]}||_qdSr&)rrwr )r!r,rkr"r"r#r %s
�N)T)r-r.r/r$rbr�rcr�rCr�r1rr2rIrHr r"r"r"r#rO�s0%







rOcsG�fdd�dt�}|S)NcseZdZ�fdd�ZdS)zsimple_field.<locals>.Fieldcs��Sr&r"rL��widget_makerr"r#rN.sz(simple_field.<locals>.Field._make_widgetN)r-r.r/rNr"r�r"r#�Field-sr�)rF)r�r�r"r�r#�simple_field,sr�c@�*eZdZdZedd��Zejdd��ZdS)�RadioButtonEditor�cCr%r&��stater(r"r"r#r=r)zRadioButtonEditor.valuecCrYr&r�r+r"r"r#rA�
N�r-r.r/�reserve_columnsr1rr2r"r"r"r#r�9�
r�cs.eZdZdZdZd�fdd�	Zdd�Z�ZS)�RadioButtonFieldFNcs.|durg}|�|�||_t��||�dSr&)rv�groupr6r$)r!r�rHrIr8r"r#r$Ks

zRadioButtonField.__init__cCs2|jD]}|j|jvr|jj}nqg}t|d�Sr�)�_fieldsr5r�rPr�)r!rM�bfr�r"r"r#rNRs
�
zRadioButtonField._make_widgetrR)r-r.r/rTrSr$rNrEr"r"r8r#r�Fs
r�cs8eZdZeddg�f�fdd�	Zejjdd��Z�ZS)�	URLEditor�http�httpscs||_t���dSr&)�allowed_schemesr6r$)r!r�r8r"r#r$]szURLEditor.__init__cCs�|��}|dkr
|St|�}|j|jvr\g}t|j�D]}|�|�qt|�dkr;d�|dd��td�|d}nt|�dkrN|dtd�|d}n|d}t	td	�j
|d
���|S)Nrerfz, ���z, or rz or rGz#This field must be a {schemes} URL.)�schemes)�
get_edit_textr�schemer��sortedrv�len�joinrsr��format)r!�v�parsedr��sr"r"r#ras&$��zURLEditor.value)	r-r.r/�	frozensetr$rr�getterrEr"r"r8r#r�\sr�cs0eZdZdZddgf�fdd�	Zdd�Z�ZS)�ChoiceFieldFNcst��||�||_dSr&)r6r$�choices)r!rHrIr�r8r"r#r$~s
zChoiceField.__init__cCr;r&)rr�rLr"r"r#rN�r>zChoiceField._make_widget�r-r.r/rSr$rNrEr"r"r8r#r�zsr�c@s&eZdZedd��Zejdd��ZdS)�ReadOnlyWidgetcCr%r&)r�r(r"r"r#r�r)zReadOnlyWidget.valuecCs|�|�dSr&)r�r+r"r"r#r�sN)r-r.r/r1rr2r"r"r"r#r��s

r�c@rW)�
ReadOnlyFieldFcC�td�Sr�)r�rLr"r"r#rN��zReadOnlyField._make_widgetN)r-r.r/rSrNr"r"r"r#r��sr�c@r�)�CheckBoxEditorr�cCr%r&r�r(r"r"r#r�r)zCheckBoxEditor.valuecCrYr&r�r+r"r"r#r�r�Nr�r"r"r"r#r��r�r�c@seZdZdZdZdd�ZdS)�BooleanFieldFcCr�r�)r�rLr"r"r#rN�r�zBooleanField._make_widgetN)r-r.r/rTrSrNr"r"r"r#r��sr�c�eZdZ�fdd�Z�ZS)�MetaFormcsnt��|||�g}|��D]\}}t|t�r)||_|jdur$|d|_|�|�q|jdd�d�||_	dS)N�:cSr%r&)rK)�fr"r"r#�<lambda>�sz#MetaForm.__init__.<locals>.<lambda>)�key)
r6r$�itemsrdrFr~rHrv�sort�_unbound_fields)r!r~�bases�attrsr��kr�r8r"r#r$�s



�
zMetaForm.__init__�r-r.r/r$rEr"r"r8r#r���r�c@sreZdZddgZed�Zed�Zifdd�Zdd�Zd	d
�Z	dd�Z
d
d�Zdd�Zddd�Z
dd�Zdd�ZdS)�Form�submit�cancel�Done�CancelcCs�ttt|j�|jd��|_ttt|j�|jd��|_t|j|jg�|_	g|_
|jD] }|�|�}t
||jj|�|j
�|�|j|vrI||j|_q)|j
D]}|jdd�qM|��dS)N)�on_pressF)r�)rr
rs�ok_label�_click_doner�cancel_label�
_click_cancelr�buttonsr�r�rQ�setattrr5r~rvrrCr�)r!�initialr5r�r"r"r#r$�s$
�
�


�
z
Form.__init__cCs,|jD]}|jj|vr||jj|j_qdSr&)r�r5r~r)r!�datar�r"r"r#�
enter_data�s

��zForm.enter_datacC�t|d|�dS)Nr��r�r!r�r"r"r#r���zForm._click_donecCr�)Nr�r�r�r"r"r#r��r�zForm._click_cancelcCs8g}|jD]
}|jj|kr|�|�q||jdd�<dSr&)r�r5r~rv)r!�
field_name�
new_fieldsr�r"r"r#�remove_field�s

�zForm.remove_fieldcCsdt|j�dkr	gS|jdj}|g}|jdd�D]}|�td��|j}|�|�|�|�q|S)NrrGre)r�r�ryrvr
rQ)r!�t0r|r5�tr"r"r#�as_rows�s
zForm.as_rowsTNFcCst|��|j|||d�S)N)�
focus_buttons�excerpt�narrow_rows)rr�r�)r!r�r�r�r"r"r#�	as_screen�s

�zForm.as_screencCs\d}|jD]	}|jrd}nq|r"d|jjjdd_d|jj_dSd|jjjdd_dS)NFTrrG)r�r`r�rB�contentsr �focus_position)r!r`r�r"r"r#r��s
�zForm.validatedcCs(i}|jD]}|jr|j||jj<q|Sr&)r�r rr5r~)r!r�r5r"r"r#�as_datas
�zForm.as_data)TNF)r-r.r/r_rsr�r�r$r�r�r�r�r�r�r�r�r"r"r"r#r��s
r�)�	metaclasscs6eZdZ�fdd�Zedd��Zejdd��Z�ZS)�
SubFormWidgetcs||_t��t|����dSr&)rMr6r$rr�rLr8r"r#r$szSubFormWidget.__init__cCs
|j��Sr&)rMr�r(r"r"r#rr�zSubFormWidget.valuecCs$|��D]\}}|t|j|�_qdSr&)r�rArMr)r!r�r�r�r"r"r#rs�)r-r.r/r$r1rr2rEr"r"r8r#r�s
r�cs*eZdZdZd�fdd�	Zdd�Z�ZS)�SubFormFieldFNcst�j||d�||_dS)N)rHrI)r6r$�form_cls)r!r�rHrIr8r"r#r$"s
zSubFormField.__init__cCs|�|�}t|�Sr&)r�r�rLr"r"r#rN&s
zSubFormField._make_widgetrRr�r"r"r8r#r�sr�cr�)�SubFormcs||_t�jdi|��dS)Nr")�parentr6r$)r!r��kwr8r"r#r$-szSubForm.__init__r�r"r"r8r#r�+r�r�)FrU�logging�urllib.parser�urwidrrrrrrrur	r
r�subiquitycore.ui.buttonsrr
�subiquitycore.ui.containerrr�subiquitycore.ui.interactiverrrr�subiquitycore.ui.selectorr�subiquitycore.ui.tablerrr�subiquitycore.ui.utilsrrrr�subiquitycore.ui.widthr�	getLogger�log�objectrrrprr4�ABCrFrXrxrOr��StringField�
PasswordField�IntegerField�
EmailFieldr�r�r��URLFieldr�r�r�r�r�r�r�r�r�r�r"r"r"r#�<module>sT,
�

	P

Zerion Mini Shell 1.0