§
    ÈtºfJ/  ã                   óŒ  — d Z ddlZddlmZmZmZ  G d„ de¦  «        Z G d„ de¦  «        Z G d„ d	¦  «        Z	 G d
„ de	¦  «        Z
 G d„ de
¦  «        Z G d„ de
¦  «        Z G d„ de
¦  «        Z G d„ de
¦  «        Z G d„ de	¦  «        Z G d„ de¦  «        Z G d„ de	¦  «        Z G d„ de	¦  «        Z G d„ de	¦  «        Z G d„ de¦  «        Z G d „ d!e¦  «        Z G d"„ d#e	¦  «        Z G d$„ d%e	¦  «        Zd&„ Z G d'„ d(e	¦  «        Z G d)„ d*e¦  «        Z G d+„ d,¦  «        Z G d-„ d.¦  «        Z G d/„ d0¦  «        ZdS )1z€
Form-based method objects.

This module contains support for descriptive method signatures that can be used
to format methods.
é    N)ÚAnyÚOptionalÚTuplec                   ó   — e Zd ZdZd„ ZdS )ÚFormExceptionz*An error occurred calling the form method.c                 ó8   — t          j        | g|¢R Ž  || _        d S ©N)Ú	ExceptionÚ__init__Údescriptions)ÚselfÚargsÚkwargss      úX/var/www/surfInsights/venv3-11/lib/python3.11/site-packages/twisted/python/formmethod.pyr   zFormException.__init__   s)   € ÝÔ˜4Ð' $Ð'Ð'Ð'Ð'Ø"ˆÔÐÐó    N)Ú__name__Ú
__module__Ú__qualname__Ú__doc__r   © r   r   r   r      s)   € € € € € Ø4Ð4ð#ð #ð #ð #ð #r   r   c                   ó   — e Zd ZdZdS )Ú
InputErrorz,
    An error occurred with some input.
    N©r   r   r   r   r   r   r   r   r      ó   € € € € € ðð ð ð r   r   c                   óL   — e Zd ZU dZdZeed<   	 dd„Zd„ Zdd„Z	d„ Z
d	„ Zd
„ ZdS )ÚArgumentzBase class for form arguments.NÚdefaultDefaulté   c                 ót   — || _         || _        |€| j        }|| _        || _        || _        |si }|| _        d S r	   )ÚnameÚ	allowNoner   ÚdefaultÚ	shortDescÚlongDescÚhints)r   r    r"   r#   r$   r%   r!   s          r   r   zArgument.__init__%   sL   € ð ˆŒ	Ø"ˆŒØˆ?ØÔ)ˆGØˆŒØ"ˆŒØ ˆŒØð 	ØˆEØˆŒ
ˆ
ˆ
r   c                 ó:   — | j                              |¦  «         d S r	   )r%   Úupdate)r   r   s     r   ÚaddHintszArgument.addHints3   s   € ØŒ
×Ò˜&Ñ!Ô!Ð!Ð!Ð!r   c                 ó8   — | j                              ||¦  «        S r	   )r%   Úget)r   r    r"   s      r   ÚgetHintzArgument.getHint6   s   € ØŒz�~Š~˜d GÑ,Ô,Ð,r   c                 óB   — | j         p| j                             ¦   «         S r	   )r#   r    Ú
capitalize©r   s    r   ÚgetShortDescriptionzArgument.getShortDescription9   s   € ØŒ~Ð7 ¤×!5Ò!5Ñ!7Ô!7Ð7r   c                 ó   — | j         pdS )NÚ )r$   r.   s    r   ÚgetLongDescriptionzArgument.getLongDescription<   s   € ØŒ}Ð" Ð"r   c                 ó    — t          d¦  «        ‚)z(Convert the value to the correct format.zimplement in subclass)ÚNotImplementedError©r   Úvals     r   ÚcoercezArgument.coerce?   s   € å!Ð"9Ñ:Ô:Ð:r   )NNNNr   r	   )r   r   r   r   r   r   Ú__annotations__r   r(   r+   r/   r2   r7   r   r   r   r   r      s™   € € € € € € Ø(Ð(ð €N�CÐÐÑð XYðð ð ð ð"ð "ð "ð-ð -ð -ð -ð8ð 8ð 8ð#ð #ð #ð;ð ;ð ;ð ;ð ;r   r   c                   óF   — e Zd ZU dZdZeed<   dZdZ	 	 	 	 	 	 	 d	d„Z	d„ Z
dS )
ÚStringzA single string.r1   r   r   Nr   c	           	      ód   — t                                | ||||||¬¦  «         || _        || _        d S )N)r"   r#   r$   r%   r!   )r   r   ÚminÚmax)	r   r    r"   r#   r$   r%   r!   r<   r=   s	            r   r   zString.__init__K   sJ   € õ 	×ÒØØØØØØØð 	ñ 	
ô 	
ð 	
ð ˆŒØˆŒˆˆr   c                 ó  — t          |¦  «        }t          |¦  «        | j        k     rt          d| j        z  ¦  «        ‚| j        �/t          |¦  «        | j        k    rt          d| j        z  ¦  «        ‚t          |¦  «        S )Nú)Value must be at least %s characters longú(Value must be at most %s characters long)ÚstrÚlenr<   r   r=   )r   r6   Úss      r   r7   zString.coerceb   sq   € Ý�‰HŒHˆÝˆq‰6Œ6�D”HÒÐÝÐHÈ4Ì8ÑSÑTÔTÐTØŒ8Ð¥C¨¡F¤F¨T¬XÒ$5Ð$5ÝÐGÈ$Ì(ÑRÑSÔSÐSÝ�3‰xŒxˆr   )NNNNr   r   N)r   r   r   r   r   rA   r8   r<   r=   r   r7   r   r   r   r:   r:   D   sp   € € € € € € ØÐà€N�CÐÐÑØ
€CØ
€Cð
 ØØØØØØðð ð ð ð.ð ð ð ð r   r:   c                   ó   — e Zd ZdZdS )ÚTextzA long string.Nr   r   r   r   rE   rE   k   s   € € € € € ØÐÐÐr   rE   c                   ó   — e Zd ZdZdS )ÚPasswordz-A string which should be obscured when input.Nr   r   r   r   rG   rG   o   s   € € € € € Ø7Ð7Ð7Ð7r   rG   c                   ó   — e Zd ZdZd„ ZdS )ÚVerifiedPasswordzCA string that should be obscured when input and needs verification.c                 ób  — t          |¦  «        dk    s|d         |d         k    rt          d¦  «        ‚t          |d         ¦  «        }t          |¦  «        | j        k     rt          d| j        z  ¦  «        ‚| j        �/t          |¦  «        | j        k    rt          d| j        z  ¦  «        ‚|S )Né   r   r   z%Please enter the same password twice.r?   r@   )rB   r   rA   r<   r=   )r   ÚvalsrC   s      r   r7   zVerifiedPassword.coercev   sŸ   € Ýˆt‰9Œ9˜Š>ˆ>˜T !œW¨¨Q¬Ò/Ð/ÝÐDÑEÔEÐEÝ��Q”‰LŒLˆÝˆq‰6Œ6�D”HÒÐÝÐHÈ4Ì8ÑSÑTÔTÐTØŒ8Ð¥C¨¡F¤F¨T¬XÒ$5Ð$5ÝÐGÈ$Ì(ÑRÑSÔSÐSØˆr   N)r   r   r   r   r7   r   r   r   rI   rI   s   s)   € € € € € ØMÐMðð ð ð ð r   rI   c                   ó   — e Zd ZdZdS )ÚHiddenzSA string which is not displayed.

    The passed default is used as the value.
    Nr   r   r   r   rN   rN   �   s   € € € € € ðð ð ð r   rN   c                   ó>   — e Zd ZU dZdZee         ed<   	 dd„Zd„ Z	dS )ÚIntegerzA single integer.Nr   r   c           	      óF   — t                                | ||||||¦  «         d S r	   ©r   r   ©r   r    r!   r"   r#   r$   r%   s          r   r   zInteger.__init__�   ó*   € õ 	×Ò˜$  g¨y¸(ÀEÈ9ÑUÔUÐUÐUÐUr   c                 ó¼   — |                      ¦   «         s	| j        rd S 	 t          |¦  «        S # t          $ r# t	          d                     |¦  «        ¦  «        ‚w xY w)Nz5{} is not valid, please enter a whole number, e.g. 10)Ústripr!   ÚintÚ
ValueErrorr   Úformatr5   s     r   r7   zInteger.coerce—   so   € Ø�yŠy‰{Œ{ð 	˜tœ~ð 	Ø�4ð	Ý�s‘8”8ˆOøÝð 	ð 	ð 	ÝØJ×QÒQÐRUÑVÔVñô ð ð	øøøs	   Ÿ. ®-A©r   NNNN)
r   r   r   r   r   r   rW   r8   r   r7   r   r   r   rP   rP   ˆ   s^   € € € € € € ØÐà$(€N�H˜S”MÐ(Ð(Ñ(ð UYðVð Vð Vð Vðð ð ð ð r   rP   c                   ó&   — e Zd Z	 	 	 	 	 dd„Zd„ ZdS )ÚIntegerRanger   Nc	           	      ód   — || _         || _        t                               | ||||||¬¦  «         d S )N)r!   r"   r#   r$   r%   )r<   r=   rP   r   )	r   r    r<   r=   r!   r"   r#   r$   r%   s	            r   r   zIntegerRange.__init__£   sN   € ð ˆŒØˆŒÝ×ÒØØØØØØØð 	ñ 	
ô 	
ð 	
ð 	
ð 	
r   c                 ó&  — t                                | |¦  «        }| j        r|d k    r|S || j        k     r(t	          d                     || j        ¦  «        ¦  «        ‚|| j        k    r(t	          d                     || j        ¦  «        ¦  «        ‚|S )Nz/Value {} is too small, it should be at least {}z.Value {} is too large, it should be at most {})rP   r7   r!   r<   r   rY   r=   )r   r6   Úresults      r   r7   zIntegerRange.coerceº   s§   € Ý—’  cÑ*Ô*ˆØŒ>ð 	˜f¨šn˜nØˆMØ�D”HÒÐÝØA×HÒHØ˜DœHñô ñô ð ð
 �D”HÒÐÝØ@×GÒGØ˜DœHñô ñô ð ð
 ˆr   rZ   ©r   r   r   r   r7   r   r   r   r\   r\   ¢   sH   € € € € € ð ØØØØð
ð 
ð 
ð 
ð.ð ð ð ð r   r\   c                   ó:   — e Zd ZU dZee         ed<   	 dd„Zd„ ZdS )ÚFloatNr   r   c           	      óF   — t                                | ||||||¦  «         d S r	   rR   rS   s          r   r   zFloat.__init__Ð   rT   r   c                 óœ   — |                      ¦   «         s	| j        rd S 	 t          |¦  «        S # t          $ r t	          d|z  ¦  «        ‚w xY w)NzInvalid float: %s)rV   r!   ÚfloatrX   r   r5   s     r   r7   zFloat.coerceÚ   s`   € Ø�yŠy‰{Œ{ð 	˜tœ~ð 	Ø�4ð	8Ý˜‘:”:ÐøÝð 	8ð 	8ð 	8ÝÐ0°3Ñ6Ñ7Ô7Ð7ð	8øøøs	   Ÿ. ®ArZ   )	r   r   r   r   r   re   r8   r   r7   r   r   r   rb   rb   Í   sX   € € € € € € Ø&*€N�H˜U”OÐ*Ð*Ñ*ð UYðVð Vð Vð Vð8ð 8ð 8ð 8ð 8r   rb   c                   ó,   — e Zd ZdZg g ddddfd„Zd„ ZdS )ÚChoiceaÐ  
    The result of a choice between enumerated types.  The choices should
    be a list of tuples of tag, value, and description.  The tag will be
    the value returned if the user hits "Submit", and the description
    is the bale for the enumerated type.  default is a list of all the
    values (seconds element in choices).  If no defaults are specified,
    initially the first item will be selected.  Only one item can (should)
    be selected at once.
    Nr   c           	      ó    — || _         |r#|s!|                     |d         d         ¦  «         t                               | ||||||¬¦  «         d S )Nr   r   ©r!   )ÚchoicesÚappendr   r   )r   r    rj   r"   r#   r$   r%   r!   s           r   r   zChoice.__init__î   sj   € ð ˆŒØð 	*˜7ð 	*Ø�NŠN˜7 1œ: aœ=Ñ)Ô)Ð)Ý×ÒØ�$˜ ¨H°eÀyð 	ñ 	
ô 	
ð 	
ð 	
ð 	
r   c                 óV   — | j         D ]\  }}}||k    r|c S Œt          d|z  ¦  «        ‚)NzInvalid Choice: %s)rj   r   )r   ÚinIdentÚidentr6   Údescs        r   r7   zChoice.coerceÿ   sI   € Ø $¤ð 	=ð 	=ÑˆE�3˜Ø˜ÒÐØ�
�
�
ð  õ Ð1°GÑ;Ñ<Ô<Ð<r   ©r   r   r   r   r   r7   r   r   r   rg   rg   ã   sU   € € € € € ðð ð ØØØØØð
ð 
ð 
ð 
ð"=ð =ð =ð =ð =r   rg   c                   ó,   — e Zd ZdZ	 	 	 	 	 	 dd„Zd„ ZdS )ÚFlagsa¸  
    The result of a checkbox group or multi-menu.  The flags should be a
    list of tuples of tag, value, and description. The tag will be
    the value returned if the user hits "Submit", and the description
    is the bale for the enumerated type.  default is a list of all the
    values (second elements in flags).  If no defaults are specified,
    initially nothing will be selected.  Several items may be selected at
    once.
    r   Nr   c           	      óV   — || _         t                               | ||||||¬¦  «         d S ©Nri   )Úflagsr   r   )r   r    ru   r"   r#   r$   r%   r!   s           r   r   zFlags.__init__  sA   € ð ˆŒ
Ý×ÒØ�$˜ ¨H°eÀyð 	ñ 	
ô 	
ð 	
ð 	
ð 	
r   c                 ó–   — |sg S g }|D ]?}| j         D ]#\  }}}||k    r|                     |¦  «          nŒ$t          d|z  ¦  «        ‚Œ@|S )NzInvalid Flag: %s)ru   rk   r   )r   Ú
inFlagKeysÚoutFlagsÚ	inFlagKeyÚflagKeyÚflagValÚflagDescs          r   r7   zFlags.coerce!  sˆ   € Øð 	ØˆIØˆØ#ð 	Að 	AˆIØ.2¬jð Að AÑ*�˜ (Ø Ò'Ð'Ø—O’O GÑ,Ô,Ð,Ø�Eð (õ !Ð!3°iÑ!?Ñ@Ô@Ð@ð ð ˆr   )r   r   NNNr   rp   r   r   r   rr   rr     sU   € € € € € ðð ð ØØØØØð
ð 
ð 
ð 
ðð ð ð ð r   rr   c                   ó   — e Zd ZdS )Ú
CheckGroupN©r   r   r   r   r   r   r~   r~   /  ó   € € € € € Ø€Dr   r~   c                   ó   — e Zd ZdS )Ú
RadioGroupNr   r   r   r   r‚   r‚   3  r€   r   r‚   c                   ó   — e Zd Zd„ ZdS )ÚBooleanc                 ó\   — |sdS t          |¦  «                             ¦   «         }|dv rdS dS )Nr   )ÚnoÚnÚfÚfalseÚ0r   )rA   Úlower)r   ÚinValÚlInVals      r   r7   zBoolean.coerce8  s<   € Øð 	Ø�1Ý�U‘”×!Ò!Ñ#Ô#ˆØÐ3Ð3Ð3Ø�1Øˆqr   N)r   r   r   r7   r   r   r   r„   r„   7  s#   € € € € € ðð ð ð ð r   r„   c                   ó   — e Zd Zdd„Zd„ ZdS )ÚFiler   Nc           	      óH   — t                                | |d ||||¬¦  «         d S rt   rR   )r   r    r!   r#   r$   r%   s         r   r   zFile.__init__B  s8   € Ý×ÒØ�$˜˜i¨°5ÀIð 	ñ 	
ô 	
ð 	
ð 	
ð 	
r   c                 ó>   — |s	| j         rd S |r|S t          d¦  «        ‚)NzInvalid File)r!   r   )r   Úfiles     r   r7   zFile.coerceG  s3   € Øð 	-˜œð 	-Ø�4Øð 	-ØˆKå˜^Ñ,Ô,Ð,r   )r   NNNr`   r   r   r   r�   r�   A  s7   € € € € € ð
ð 
ð 
ð 
ð
-ð -ð -ð -ð -r   r�   c                 ó>   — t          | ¦  «        } | dk    rt          ‚| S )Nr   )rW   rX   )Úxs    r   ÚpositiveIntr•   P  s!   € ÝˆA‰Œ€AØˆA‚v€vÝÐØ€Hr   c                   óP   — e Zd ZU dZdZeeeeef                  ed<   	 dd„Z	d„ Z
dS )ÚDatez#A date -- (year, month, day) tuple.Nr   r   c                 óh   — t                                | |||||¦  «         || _        |s	d| _        d S d S )N)i²  r   r   )r   r   r!   r   rS   s          r   r   zDate.__init__\  sI   € õ 	×Ò˜$  g¨y¸(ÀEÑJÔJÐJØ"ˆŒØð 	/Ø".ˆDÔÐÐð	/ð 	/r   c                 ó¦  — t          |¦  «        dk    r	| j        rdS 	 t          t          |¦  «        \  }}}n# t          $ r t          d¦  «        ‚w xY w||fdk    r+t          j        |¦  «        st          d|z  ¦  «        ‚|||fS 	 t          j        |         }n# t          $ r t          d¦  «        ‚w xY w||k    rt          d¦  «        ‚|||fS )z(Return tuple of ints (year, month, day).)r1   r1   r1   NzInvalid date)rK   é   z%d was not a leap year)
Útupler!   Úmapr•   rX   r   ÚcalendarÚisleapÚmdaysÚ
IndexError)r   r   ÚyearÚmonthÚdayrŸ   s         r   r7   zDate.coerced  s  € å�‰;Œ;˜,Ò&Ð&¨4¬>Ð&Ø�4ð	-Ý"¥;°Ñ5Ô5ÑˆD�%˜˜øÝð 	-ð 	-ð 	-Ý˜^Ñ,Ô,Ð,ð	-øøøà�3ˆ<˜7Ò"Ð"Ý”? 4Ñ(Ô(ð (Ý Ð!9¸DÑ!@ÑAÔAÐAà˜U CÐ'Ð'ð	-Ý”N 5Ô)ˆEˆEøÝð 	-ð 	-ð 	-Ý˜^Ñ,Ô,Ð,ð	-øøøà�Š;ˆ;Ý˜^Ñ,Ô,Ð,Ø�U˜CÐÐs   ž8 ¸AÂ	B ÂB6rZ   )r   r   r   r   r   r   r   rW   r8   r   r7   r   r   r   r—   r—   W  sf   € € € € € € Ø-Ð-à59€N�H˜U 3¨¨S =Ô1Ô2Ð9Ð9Ñ9ð UYð/ð /ð /ð /ð ð  ð  ð  ð  r   r—   c                   ó.   — e Zd ZdZdgdddddfd„Zd„ ZdS )ÚSubmitz0Submit button or a reasonable facsimile thereof.)r¥   ÚsubmitzSubmit formr   Nc                 ób   — t                                | |||||¬¦  «         || _        || _        d S )N)rj   r#   r$   r%   )rg   r   r!   Úreset)r   r    rj   r¨   r#   r$   r!   r%   s           r   r   zSubmit.__init__~  sE   € õ 	�ŠØØØØØØð 	ñ 	
ô 	
ð 	
ð #ˆŒØˆŒ
ˆ
ˆ
r   c                 óN   — | j         r|sd S t                               | |¦  «        S r	   )r!   rg   r7   )r   Úvalues     r   r7   zSubmit.coerce“  s,   € ØŒ>ð 	. %ð 	.Ø�4å—=’=  uÑ-Ô-Ð-r   rp   r   r   r   r¥   r¥   {  sT   € € € € € Ø:Ð:ð
 5Ð5ØØØØØðð ð ð ð*.ð .ð .ð .ð .r   r¥   c                   ó   — e Zd ZdZdS )ÚPresentationHintz(
    A hint to a particular system.
    Nr   r   r   r   r¬   r¬   š  r   r   r¬   c                   ó&   — e Zd ZdZd„ Zd„ Zdd„ZdS )ÚMethodSignaturez$
    A signature of a callable.
    c                 ó   — || _         dS )r1   N)ÚmethodSignature)r   ÚsigLists     r   r   zMethodSignature.__init__¥  s   € à&ˆÔÐÐr   c                 ó8   — | j         D ]}|j        |k    r|c S Œd S r	   )r°   r    )r   r    Úas      r   ÚgetArgumentzMethodSignature.getArgument©  s7   € ØÔ%ð 	ð 	ˆAØŒv˜Š~ˆ~Ø���ð ð	ð 	r   Fc                 ó$   — t          | ||¦  «        S r	   )Ú
FormMethod)r   ÚcallableÚtakesRequests      r   ÚmethodzMethodSignature.method®  s   € Ý˜$ ¨,Ñ7Ô7Ð7r   N©F)r   r   r   r   r   r´   r¹   r   r   r   r®   r®      sP   € € € € € ðð ð'ð 'ð 'ðð ð ð
8ð 8ð 8ð 8ð 8ð 8r   r®   c                   ó&   — e Zd ZdZdd„Zd„ Zd„ ZdS )r¶   z#A callable object with a signature.Fc                 ó0   — || _         || _        || _        d S r	   )Ú	signaturer·   r¸   )r   r½   r·   r¸   s       r   r   zFormMethod.__init__µ  s   € Ø"ˆŒØ ˆŒØ(ˆÔÐÐr   c                 ó4   — t          | j        j        ¦  «        S r	   )r›   r½   r°   r.   s    r   ÚgetArgszFormMethod.getArgsº  s   € Ý�T”^Ô3Ñ4Ô4Ð4r   c                 ó   —  | j         |i |¤ŽS r	   )r·   )r   r   Úkws      r   ÚcallzFormMethod.call½  s   € ØˆtŒ}˜dÐ) bÐ)Ð)Ð)r   Nrº   )r   r   r   r   r   r¿   rÂ   r   r   r   r¶   r¶   ²  sL   € € € € € Ø-Ð-ð)ð )ð )ð )ð
5ð 5ð 5ð*ð *ð *ð *ð *r   r¶   )r   r�   Útypingr   r   r   r
   r   r   r   r:   rE   rG   rI   rN   rP   r\   rb   rg   rr   r~   r‚   r„   r�   r•   r—   r¥   r¬   r®   r¶   r   r   r   ú<module>rÄ      së  ððð ð €€€Ø 'Ð 'Ð 'Ð 'Ð 'Ð 'Ð 'Ð 'Ð 'Ð 'ð#ð #ð #ð #ð #�Iñ #ô #ð #ðð ð ð ð �ñ ô ð ð";ð ";ð ";ð ";ð ";ñ ";ô ";ð ";ðJ$ð $ð $ð $ð $ˆXñ $ô $ð $ðNð ð ð ð ˆ6ñ ô ð ð8ð 8ð 8ð 8ð 8ˆvñ 8ô 8ð 8ðð ð ð ð �vñ ô ð ðð ð ð ð ˆVñ ô ð ðð ð ð ð ˆhñ ô ð ð4(ð (ð (ð (ð (�7ñ (ô (ð (ðV8ð 8ð 8ð 8ð 8ˆHñ 8ô 8ð 8ð,!=ð !=ð !=ð !=ð !=ˆXñ !=ô !=ð !=ðH%ð %ð %ð %ð %ˆHñ %ô %ð %ðP	ð 	ð 	ð 	ð 	�ñ 	ô 	ð 	ð	ð 	ð 	ð 	ð 	�ñ 	ô 	ð 	ðð ð ð ð ˆhñ ô ð ð-ð -ð -ð -ð -ˆ8ñ -ô -ð -ðð ð ð! ð ! ð ! ð ! ð ! ˆ8ñ ! ô ! ð ! ðH.ð .ð .ð .ð .ˆVñ .ô .ð .ð>ð ð ð ð ñ ô ð ð8ð 8ð 8ð 8ð 8ñ 8ô 8ð 8ð$*ð *ð *ð *ð *ñ *ô *ð *ð *ð *r   