+
    yj                         ^ RI t ^ RIHt ^ RIHt ^ RIHt Rt ! R R	]4      t ! R
 R]4      t	 ! R R]	4      t
 ! R R]	4      tR# )    N)widgets)Field)ValidationErrorSelectFieldSelectMultipleField
RadioFieldc                      a a ] tR t^t o]P
                  ! 4       t R	V 3R lltR tR t	R t
R t ! R R]4      tRtVtV ;t# )
SelectFieldBasec                B   < \         SV `  ! W3/ VB  Ve	   W0n        R # R # N)super__init__option_widget)selflabel
validatorsr   kwargs	__class__s   &&&&,J/var/www/html/2rare/lib/python3.14/site-packages/wtforms/fields/choices.pyr   SelectFieldBase.__init__   s&    5f5$!. %    c                    \        4       h)z~
Provides data for choice widget rendering. Must return a sequence or
iterable of (value, label, selected, render_kw) tuples.
NotImplementedErrorr   s   &r   iter_choicesSelectFieldBase.iter_choices   s    
 "##r   c                    R # )F r   s   &r   
has_groupsSelectFieldBase.has_groups%   s    r   c                    \        4       hr   r   r   s   &r   iter_groupsSelectFieldBase.iter_groups(   s    !##r   c           
   #    "   \        V P                  V P                  V P                  V P                  R V P
                  R7      p\        V P                  4       4       Fi  w  r#\        V4      ^8X  d   Vw  rErgMVw  rEp/ pV P                  ! RRVRRV P                  V3,          /VBVB pVP                  R V4       Whn        Vx  Kk  	  R # 5i)N)widgetr   name	render_kw_form_metar   idz%s-%dr   )dictr   r   r'   r(   meta	enumerater   len_Optionr+   processchecked)	r   optsichoicevaluer   r2   r(   opts	   &        r   __iter__SelectFieldBase.__iter__+   s     %%nn))
 #4#4#4#67IA6{a390gy(.%g	,,  '477A, 6:>BKC KKe$!KI 8s   CCc                   *   a  ] tR t^Bt o RtR tRtV tR# )SelectFieldBase._OptionFc                ,    \        V P                  4      # r   )strdatar   s   &r   _valueSelectFieldBase._Option._valueE   s    tyy>!r   r   N)__name__
__module____qualname____firstlineno__r2   r?   __static_attributes____classdictcell____classdict__s   @r   r0   r;   B   s     	" 	"r   r0   )r   )NNN)rA   rB   rC   rD   r   Optionr   r   r   r    r#   r8   r   r0   rE   rF   __classcell__r   rH   s   @@r   r
   r
      s@     NN$M/$$."% " "r   r
   c                      a a ] tR t^It o]P
                  ! 4       tRR]RR3V 3R lltR t	R t
R tR tR tR	 tR
 tRtVtV ;t# )r   NTc                   < \         SV `  ! W3/ VB  W0n        \        V4      '       d   V! 4       pVe*   \	        V\
        4      '       d   TM
\        V4      V n        MR V n        WPn        R # r   )	r   r   coercecallable
isinstancer,   listchoicesvalidate_choice)r   r   r   rN   rR   rS   r   r   s   &&&&&&,r   r   SelectField.__init__L   sZ     	5f5GiG&0$&?&?7T']DLDL.r   c                (   V P                   '       g   . pMm\        V P                   \        4      '       dB   \        \        P
                  P                  V P                   P                  4       4      4      pMV P                   pV P                  V4      # r   )	rR   rP   r,   rQ   	itertoolschainfrom_iterablevalues_choices_generator)r   rR   s   & r   r   SelectField.iter_choices_   sa    |||Gd++9??889L9L9NOPGllG&&w//r   c                6    \        V P                  \        4      # r   )rP   rR   r,   r   s   &r   r    SelectField.has_groupsi   s    $,,--r   c              #     "   \        V P                  \        4      '       d:   V P                  P                  4        F  w  rWP	                  V4      3x  K  	  R # R # 5ir   )rP   rR   r,   itemsrZ   )r   r   rR   s   &  r   r#   SelectField.iter_groupsl   sH     dllD))"&,,"4"4"655g>?? #7 *s   AAc              #    "   V'       g   . pM1\        V^ ,          \        \        34      '       d   TpM\        W4      pV FE  vr4pV P	                  V4      V P
                  8H  p\        V4      '       d
   V^ ,          M/ pW4Wg3x  KG  	  R# 5ir   N)rP   rQ   tupleziprN   r>   r/   r   rR   _choicesr6   r   
other_argsselectedr(   s   &&      r   rZ   SelectField._choices_generatorq   sw     H
T5M22H 7,H)1%E:{{5)TYY6H),Z
1bI55 *2s   B
Bc                ~     Ve   V P                  V4      MR V n        R #   \        \        3 d    R T n         R # i ; ir   )rN   r>   
ValueError	TypeErrorr   r6   s   &&r   process_dataSelectField.process_data   s9    	.3.?E*TDII& 	DI	s     <<c                    V'       g   R #  V P                  V^ ,          4      V n        R #   \         d!   p\        T P                  R4      4      ThR p?ii ; i)Nz!Invalid Choice: could not coerce.)rN   r>   rk   gettextr   	valuelistexcs   && r   process_formdataSelectField.process_formdata   sL    	YIaL1DI 	YT\\*MNOUXX	Ys   + AAAc                    V P                   '       g   R # V P                  f   \        V P                  R4      4      hV P	                  4        F  v r#pV'       g   K   R # 	  \        V P                  R4      4      h)NChoices cannot be None.zNot a valid choice.)rS   rR   rl   rq   r   r   )r   form_matchs   &&  r   pre_validateSelectField.pre_validate   sh    ###<<DLL)BCDD#002OAq!u  3 "$,,/D"EFFr   )rR   rN   r>   rS   )rA   rB   rC   rD   r   Selectr&   r=   r   r   r    r#   rZ   rn   ru   r|   rE   rF   rJ   rK   s   @@r   r   r   I   sS     ^^F /&0.@
6YG Gr   c                   b   a  ] tR t^t o Rt]P                  ! RR7      tR tR t	R t
R tRtV tR	# )
r   z
No different from a normal select field, except this one can take (and
validate) multiple choices.  You'll need to specify the HTML `size`
attribute to the select field when rendering.
T)multiplec              #  H  "   V'       g   . pM1\        V^ ,          \        \        34      '       d   TpM\        W4      pV F[  vr4pV P                  RJ;'       d    V P                  V4      V P                  9   p\        V4      '       d
   V^ ,          M/ pW4Wg3x  K]  	  R# 5irb   )rP   rQ   rc   rd   r>   rN   r/   re   s   &&      r   rZ   &SelectMultipleField._choices_generator   s     H
T5M22H 7,H)1%E:yy,PPU1Ctyy1PH),Z
1bI55 *2s   AB"AB"c                |   a   \        V 3R  lV 4       4      S n        R#   \        \        3 d    RS n         R# i ; i)c              3   F   <"   T F  pSP                  V4      x  K  	  R # 5ir   rN   ).0vr   s   & r   	<genexpr>3SelectMultipleField.process_data.<locals>.<genexpr>   s     ;UT[[^^U   !N)rQ   r>   rk   rl   rm   s   f&r   rn    SelectMultipleField.process_data   s5    	;U;;DII& 	DI	s    ;;c                   a   \        V 3R  lV 4       4      S n        R#   \         d!   p\        S P                  R4      4      ThRp?ii ; i)c              3   F   <"   T F  pSP                  V4      x  K  	  R # 5ir   r   )r   xr   s   & r   r   7SelectMultipleField.process_formdata.<locals>.<genexpr>   s     ?YT[[^^Yr   z@Invalid choice(s): one or more data inputs could not be coerced.N)rQ   r>   rk   rq   rr   s   f& r   ru   $SelectMultipleField.process_formdata   sK    	?Y??DI 	V 		s    A
AA
c           	       a V P                   '       d   V P                  '       g   R # V P                  f   \        V P	                  R4      4      hV P                  4        Uu. uF  q P                  V^ ,          4      NK  	  upo\        ;QJ d)    V3R lV P                   4       F  '       g   K   RM	  RM! V3R lV P                   4       4      '       d{   \        V P                  4       Uu. uF  q3S9  g   K  \        V4      NK  	  pp\        V P                  RR\        V4      4      \        RP                  V4      R7      ,          4      hR # u upi u upi )	Nrx   c              3   ,   <"   T F	  qS9  x  K  	  R # 5ir   r   )r   r>   
acceptables   & r   r   3SelectMultipleField.pre_validate.<locals>.<genexpr>   s     <)$:%)s   TFz1'%(value)s' is not a valid choice for this field.z1'%(value)s' are not valid choices for this field.z', ')r6   )rS   r>   rR   rl   rq   r   rN   anysetr=   r   ngettextr/   r,   join)r   ry   r5   r>   unacceptabler   s   &&   @r   r|    SelectMultipleField.pre_validate   s   ###4999<<DLL)BCDD;?;L;L;NO;Nkk&),;NO
3<$))<333<$))<<<&)$))n&4dJ8N	D	n   "GG%
 V[[678 	 = Ps   " E0E=E)r>   N)rA   rB   rC   rD   __doc__r   r~   r&   rZ   rn   ru   r|   rE   rF   rG   s   @r   r   r      s3      ^^T*F6 r   c                   b    ] tR t^tRt]P                  ! RR7      t]P                  ! 4       t	Rt
R# )r   z
Like a SelectField, except displays a list of radio buttons.

Iterating the field will produce subfields (each containing a label as
well) in order to allow custom rendering of the individual radio fields.
F)prefix_labelr   N)rA   rB   rC   rD   r   r   
ListWidgetr&   
RadioInputr   rE   r   r   r   r   r      s'     U3F&&(Mr   )r   r   r   )rV   wtformsr   wtforms.fields.corer   wtforms.validatorsr   __all__r
   r   r   r   r   r   r   <module>r      sO      % .8"e 8"vRG/ RGj;+ ;|	) 	)r   