§
    ç“?j  ã                   óD   — d dl mZ d dlmZ d dlmZ  G d„ d¦  «        ZdS )é    )Úi18n)ÚWebobInputWrapper©Ú	clean_keyc                   óV   — e Zd ZdZd„ Zd„ Zd„ ZdZdZdZ	dZ
dZd„ ZdZd	Zi Zd
„ Zd„ ZdS )ÚDefaultMetaz‹
    This is the default Meta class which defines all the default values and
    therefore also the 'API' of the class Meta interface.
    c                 ó    —  |j         dd|i|¤ŽS )aŽ  
        bind_field allows potential customization of how fields are bound.

        The default implementation simply passes the options to
        :meth:`UnboundField.bind`.

        :param form: The form.
        :param unbound_field: The unbound field.
        :param options:
            A dictionary of options which are typically passed to the field.

        :return: A bound field
        Úform© )Úbind)Úselfr
   Úunbound_fieldÚoptionss       úS/var/www/stessy.org/copro_gestion/venv/lib/python3.11/site-packages/wtforms/meta.pyÚ
bind_fieldzDefaultMeta.bind_field   s"   € ð "ˆ}Ô!Ð7Ð7 tÐ7¨wÐ7Ð7Ð7ó    c                 ó†   — |�>t          |d¦  «        s.t          |d¦  «        rt          |¦  «        S t          d¦  «        ‚|S )aZ  
        wrap_formdata allows doing custom wrappers of WTForms formdata.

        The default implementation detects webob-style multidicts and wraps
        them, otherwise passes formdata back un-changed.

        :param form: The form.
        :param formdata: Form data.
        :return: A form-input wrapper compatible with WTForms.
        NÚgetlistÚgetallzNformdata should be a multidict-type wrapper that supports the 'getlist' method)Úhasattrr   Ú	TypeError)r   r
   Úformdatas      r   Úwrap_formdatazDefaultMeta.wrap_formdata   sW   € ð Ð­°¸)Ñ(DÔ(DÐÝ�x Ñ*Ô*ð Ý(¨Ñ2Ô2Ð2åð5ñô ð ð ˆr   c                 óÖ   — d„ |                      ¦   «         D ¦   «         }t          |dd¦  «        }|�+d„ |                      ¦   «         D ¦   «         }t          |fi |¤Ž} |j        |fi |¤ŽS )z£
        render_field allows customization of how widget rendering is done.

        The default implementation calls ``field.widget(field, **render_kw)``
        c                 ó4   — i | ]\  }}t          |¦  «        |“ŒS r   r   ©Ú.0ÚkÚvs      r   ú
<dictcomp>z,DefaultMeta.render_field.<locals>.<dictcomp>:   s$   € ÐCÐCÐC©¨¨A•Y˜q‘\”\ 1ÐCÐCÐCr   Ú	render_kwNc                 ó4   — i | ]\  }}t          |¦  «        |“ŒS r   r   r   s      r   r    z,DefaultMeta.render_field.<locals>.<dictcomp>>   s$   € ÐEÐEÐE©D¨A¨q�	 !™œ aÐEÐEÐEr   )ÚitemsÚgetattrÚdictÚwidget)r   Úfieldr!   Úother_kws       r   Úrender_fieldzDefaultMeta.render_field3   s…   € ð DÐC°·²Ñ1BÔ1BÐCÑCÔCˆ	å˜5 +¨tÑ4Ô4ˆØÐØEÐE°H·N²NÑ4DÔ4DÐEÑEÔEˆHÝ˜XÐ3Ð3¨Ð3Ð3ˆIØˆuŒ|˜EÐ/Ð/ YÐ/Ð/Ð/r   FÚ
csrf_tokenNc                 óX   — | j         �|                       ¦   «         S ddlm}  |¦   «         S )a—  
        Build a CSRF implementation. This is called once per form instance.

        The default implementation builds the class referenced to by
        :attr:`csrf_class` with zero arguments. If `csrf_class` is ``None``,
        will instead use the default implementation
        :class:`wtforms.csrf.session.SessionCSRF`.

        :param form: The form.
        :return: A CSRF implementation.
        Nr   )ÚSessionCSRF)Ú
csrf_classÚwtforms.csrf.sessionr,   )r   r
   r,   s      r   Ú
build_csrfzDefaultMeta.build_csrfJ   s:   € ð Œ?Ð&Ø—?’?Ñ$Ô$Ð$à4Ð4Ð4Ð4Ð4Ð4àˆ{‰}Œ}Ðr   Tc                 óð   — | j         }|du rdS | j        rO|rt          |¦  «        nd}| j                             |¦  «        }|€t          j        |¦  «        x}| j        |<   |S t          j        |¦  «        S )zë
        Override in subclasses to provide alternate translations factory.
        See the i18n documentation for more.

        :param form: The form.
        :return: An object that provides gettext() and ngettext() methods.
        FN)ÚlocalesÚcache_translationsÚtupleÚtranslations_cacheÚgetr   Úget_translations)r   r
   r1   Útranslationss       r   r6   zDefaultMeta.get_translationsc   s•   € ð ”,ˆØ�eÐÐØ�4àÔ"ð 
	 à(/Ð9•e˜G‘n”n�n°TˆGàÔ2×6Ò6°wÑ?Ô?ˆLØÐ#ÝBFÔBWØñCô Cð �˜tÔ6°wÑ?ð  ÐåÔ$ WÑ-Ô-Ð-r   c                 ó\   — |                      ¦   «         D ]\  }}t          | ||¦  «         ŒdS )zV
        Given a dictionary of values, update values on this `Meta` instance.
        N)r#   Úsetattr)r   ÚvaluesÚkeyÚvalues       r   Úupdate_valueszDefaultMeta.update_values   s>   € ð !Ÿ,š,™.œ.ð 	&ð 	&‰JˆC�Ý�D˜#˜uÑ%Ô%Ð%Ð%ð	&ð 	&r   )Ú__name__Ú
__module__Ú__qualname__Ú__doc__r   r   r)   ÚcsrfÚcsrf_field_nameÚcsrf_secretÚcsrf_contextr-   r/   r1   r2   r4   r6   r=   r   r   r   r   r      s¦   € € € € € ðð ð8ð 8ð 8ð ð ð ð*0ð 0ð 0ð" €DØ"€OØ€KØ€LØ€Jðð ð ð* €GØÐØÐð.ð .ð .ð8&ð &ð &ð &ð &r   r   N)Úwtformsr   Úwtforms.utilsr   Úwtforms.widgets.corer   r   r   r   r   ú<module>rI      sw   ðØ Ð Ð Ð Ð Ð Ø +Ð +Ð +Ð +Ð +Ð +Ø *Ð *Ð *Ð *Ð *Ð *ð~&ð ~&ð ~&ð ~&ð ~&ñ ~&ô ~&ð ~&ð ~&ð ~&r   