
    ihQ                     B    S SK Jr  SSKJr  SSKJr  Sr " S S\5      rg	)
    )unset_value   )widgets   )Field)	FormFieldc                      ^  \ rS rSrSr\R                  " 5       r SU 4S jjr\	S4S jr
SS jrS rS rS	 rS
 r\S 5       r\S 5       rSrU =r$ )r   	   a  
Encapsulate a form as a field in another form.

:param form_class:
    A subclass of Form that will be encapsulated.
:param separator:
    A string which will be suffixed to this field's name to create the
    prefix to enclosed fields. The default is fine for most uses.
Nc                    > [         TU ]  " X#40 UD6  Xl        X@l        S U l        U R
                  (       a  [        S5      eU(       a  [        S5      eg )NzGFormField cannot take filters, as the encapsulated data is not mutable.zTFormField does not accept any validators. Instead, define them on the enclosed form.)super__init__
form_class	separator_objfilters	TypeError)selfr   label
validatorsr   kwargs	__class__s         V/home/kali/devsecops-assessor/venv/lib/python3.13/site-packages/wtforms/fields/form.pyr   FormField.__init__   s]     	5f5$"	<<(  5      c                 f   U(       a  [        S5      eU[        L a   U R                  5       nX l        X l        U R
                  U R                  -   n[        U[        5      (       a  U R                  " SXS.UD6U l
        g U R                  XUS9U l
        g ! [          a    U R                  n Nf = f)NzFFormField cannot take filters, as the encapsulateddata is not mutable.)formdataprefix)r   objr    )r   r   defaultr   object_datanamer   
isinstancedictr   form)r   r   dataextra_filtersr   s        r   processFormField.process(   s    ' 
 ;$||~ IT^^+dD!!QQDQDIFSDI  $||$s   B B0/B0c                 Z    U(       a  [        S5      eU R                  R                  5       $ )NzWFormField does not accept in-line validators, as it gets errors from the enclosed form.)r   r%   validate)r   r%   extra_validatorss      r   r+   FormField.validate>   s,    7  yy!!##r   c                     [        XS 5      nUc$  U R                  c  [        S5      eU R                  nU R                  R	                  U5        [        XU5        g )NzZpopulate_obj: cannot find a value to populate from the provided obj or input data/defaults)getattrr   r   r%   populate_objsetattr)r   r   r"   	candidates       r   r0   FormField.populate_objF   sW    Ct,	yy ?  		I		y)9%r   c                 ,    [        U R                  5      $ N)iterr%   r   s    r   __iter__FormField.__iter__S   s    DIIr   c                      U R                   U   $ r5   )r%   r   r"   s     r   __getitem__FormField.__getitem__V   s    yyr   c                 .    [        U R                  U5      $ r5   )r/   r%   r;   s     r   __getattr__FormField.__getattr__Y   s    tyy$''r   c                 .    U R                   R                  $ r5   )r%   r&   r7   s    r   r&   FormField.data\   s    yy~~r   c                 .    U R                   R                  $ r5   )r%   errorsr7   s    r   rD   FormField.errors`   s    yyr   )r   r%   r   r!   r   )NN-)r   )__name__
__module____qualname____firstlineno____doc__r   TableWidgetwidgetr   r   r(   r+   r0   r8   r<   r?   propertyr&   rD   __static_attributes____classcell__)r   s   @r   r   r   	   sr       "F BE$ &1 T,$&(      r   r   N)wtforms.utilsr    r   corer   __all__r   r   r   r   <module>rU      s!    %  
Y  Y r   