+
    Tj&                        ^ RI t ^ RIHt ^ RIHt ^ RIHt ^ RIHt ^ RI	H
t
 ^ RIHtHt ^ RIHt ^ R	IHt R
 tR t ! R R4      t ! R R]4      t ! R R]4      t ! R R]4      t ! R R]]4      t ! R R]]]4      tR tR tR# )    N)UserList)settings)ValidationError)get_default_renderer)timezone)escapeformat_html_join)	mark_safe)gettext_lazyc                V    V '       g   R# V P                  RR4      P                  4       # )z%Convert 'first_name' to 'First name'. _ )replace
capitalize)names   &G/var/www/idalgo/venv/lib/python3.14/site-packages/django/forms/utils.pypretty_namer      s"    <<S!,,..    c                6   . p. pV P                  4        FQ  w  r4\        V\        4      '       d   V'       d   VP                  V34       K7  K9  Vf   K?  VP                  W434       KS  	  \	        RR\        V4      4      \	        RR\        V4      4      ,           # )a  
Convert a dictionary of attributes to a single string.
The returned string will contain a leading space followed by key="value",
XML-style pairs. In the case of a boolean value, the key will appear
without a value. It is assumed that the keys do not need to be
XML-escaped. If the passed dictionary is empty, then return an empty
string.

The result is passed through 'mark_safe' (by way of 'format_html_join').
r   z {}="{}"z {})items
isinstanceboolappendr	   sorted)attrskey_value_attrsboolean_attrsattrvalues   &    r   flatattr!      s     OM{{}eT""$$dW- ""D=1 % B
F?,CDGW
E6-(H  r   c                   8   a  ] tR t^-t o R tRR lt]t]tRtV t	R# )RenderableMixinc                    \        R 4      h)zBSubclasses of RenderableMixin must provide a get_context() method.NotImplementedErrorselfs   &r   get_contextRenderableMixin.get_context.   s    !P
 	
r   Nc                    T;'       g    V P                   pT;'       g    V P                  pT;'       g    V P                  4       p\        VP	                  WB4      4      # N)renderertemplate_namer)   r
   render)r(   r.   contextr-   templates   &&&& r   r/   RenderableMixin.render3   sP    ,,t}} 66D$6$6//T--/;<<r    )NNN)
__name__
__module____qualname____firstlineno__r)   r/   __str____html____static_attributes____classdictcell____classdict__s   @r   r#   r#   -   s     

= GHr   r#   c                   <   a  ] tR t^=t o R tR tR tR t]tRt	V t
R# )RenderableFieldMixinc                "    V P                  4       # r,   )r/   r'   s   &r   as_field_group#RenderableFieldMixin.as_field_group>   s    {{}r   c                    \        R 4      h)zFSubclasses of RenderableFieldMixin must provide an as_hidden() method.r%   r'   s   &r   	as_hiddenRenderableFieldMixin.as_hiddenA       !T
 	
r   c                    \        R 4      h)zFSubclasses of RenderableFieldMixin must provide an as_widget() method.r%   r'   s   &r   	as_widgetRenderableFieldMixin.as_widgetF   rF   r   c                    V P                   P                  '       d(   V P                  4       V P                  RR7      ,           # V P                  4       # )z$Render this field as an HTML widget.T)only_initial)fieldshow_hidden_initialrH   rD   r'   s   &r   r8   RenderableFieldMixin.__str__K   s<    ::)))>>#dnn$n&GGG~~r   r3   N)r4   r5   r6   r7   rA   rD   rH   r8   r9   r:   r;   r<   s   @r   r?   r?   =   s      



  Hr   r?   c                   8   a  ] tR t^Tt o R tR tR tR tRtV t	R# )RenderableFormMixinc                8    V P                  V P                  4      # )zRender as <p> elements.)r/   template_name_pr'   s   &r   as_pRenderableFormMixin.as_pU   s    {{4//00r   c                8    V P                  V P                  4      # )z>Render as <tr> elements excluding the surrounding <table> tag.)r/   template_name_tabler'   s   &r   as_tableRenderableFormMixin.as_tableY   s    {{43344r   c                8    V P                  V P                  4      # )z;Render as <li> elements excluding the surrounding <ul> tag.r/   template_name_ulr'   s   &r   as_ulRenderableFormMixin.as_ul]   s    {{40011r   c                8    V P                  V P                  4      # )zRender as <div> elements.)r/   template_name_divr'   s   &r   as_divRenderableFormMixin.as_diva   s    {{41122r   r3   N)
r4   r5   r6   r7   rS   rW   r\   r`   r:   r;   r<   s   @r   rP   rP   T   s     1523 3r   rP   c                   6   a  ] tR t^ft o RR ltR tR tRtV tR# )RenderableErrorMixinc                L    \         P                  ! V P                  V4      4      # r,   )jsondumpsget_json_data)r(   escape_htmls   &&r   as_jsonRenderableErrorMixin.as_jsong   s    zz$,,[9::r   c                8    V P                  V P                  4      # r,   )r/   template_name_textr'   s   &r   as_textRenderableErrorMixin.as_textj   s    {{42233r   c                8    V P                  V P                  4      # r,   rZ   r'   s   &r   r\   RenderableErrorMixin.as_ulm   s    {{40011r   r3   NF)	r4   r5   r6   r7   ri   rm   r\   r:   r;   r<   s   @r   rc   rc   f   s     ;42 2r   rc   c                   `   a a ] tR t^qt oRtRtRtRtRR/V 3R lltR t	RR	 lt
R
 tRtVtV ;t# )	ErrorDictz
A collection of errors that knows how to display itself in various formats.

The dictionary keys are the field names, and the values are the errors.
z%django/forms/errors/dict/default.htmlz!django/forms/errors/dict/text.txtz django/forms/errors/dict/ul.htmlr-   Nc               Z   < \         SV `  ! V/ VB  T;'       g    \        4       V n        R # r,   )super__init__r   r-   )r(   r-   argskwargs	__class__s   &$*,r   rv   ErrorDict.__init__|   s(    $)&) ::$8$:r   c                r    V P                  4        UUu/ uF  w  rWP                  4       bK  	  upp# u uppi r,   )r   as_data)r(   fes   &  r   r|   ErrorDict.as_data   s*    +/::<8<4199;<888s   3c                t    V P                  4        UUu/ uF  w  r#W#P                  V4      bK  	  upp# u uppi r,   )r   rg   )r(   rh   r}   r~   s   &&  r   rg   ErrorDict.get_json_data   s.    <@JJLILDA??;//LIIIs   4c                *    R V P                  4       RR/# )errorserror_class	errorlist)r   r'   s   &r   r)   ErrorDict.get_context   s    djjl;
 	
r   )r-   rq   )r4   r5   r6   r7   __doc__r.   rl   r[   rv   r|   rg   r)   r:   r;   __classcell__ry   r=   s   @@r   rs   rs   q   s>      <M<9;t ;9J
 
r   rs   c                      a a ] tR t^t oRtRtRtRtRV 3R lltR t	V 3R lt
RR ltR	 tR
 tR tR tR tV 3R ltRtVtV ;t# )	ErrorListzM
A collection of errors that knows how to display itself in various formats.
z%django/forms/errors/list/default.htmlz!django/forms/errors/list/text.txtz django/forms/errors/list/ul.htmlc                   < \         SV `  V4       Vf	   RV n        MRP                  V4      V n        T;'       g    \	        4       V n        W@n        R # )Nr   zerrorlist {})ru   rv   r   formatr   r-   field_id)r(   initlistr   r-   r   ry   s   &&&&&r   rv   ErrorList.__init__   sI    "*D-44[AD ::$8$: r   c                @    \        V P                  4      P                  # r,   )r   data
error_listr'   s   &r   r|   ErrorList.as_data   s    tyy)444r   c                h   < \         SV `  4       pV P                  Vn        V P                  Vn        V# r,   )ru   copyr   r-   )r(   r   ry   s   & r   r   ErrorList.copy   s,    w|~++r   c                    . pV P                  4        FS  p\        \        V4      4      pTP                  R V'       d   \	        V4      MTRVP
                  ;'       g    R/4       KU  	  V# )messagecoder   )r|   nextiterr   r   r   )r(   rh   r   errorr   s   &&   r   rg   ErrorList.get_json_data   s[    \\^E4;'GMM+vg7EJJ,," $ r   c                "    R V RV P                   /# )r   r   )r   r'   s   &r   r)   ErrorList.get_context   s    d4++
 	
r   c                *    \        \        V 4      4      # r,   )reprlistr'   s   &r   __repr__ErrorList.__repr__   s    DJr   c                    V\        V 4      9   # r,   r   )r(   items   &&r   __contains__ErrorList.__contains__   s    tDz!!r   c                    \        V 4      V8H  # r,   r   )r(   others   &&r   __eq__ErrorList.__eq__   s    DzU""r   c                    V P                   V,          p\        V\        4      '       d   \        \	        V4      4      # V# r,   )r   r   r   r   r   )r(   ir   s   && r   __getitem__ErrorList.__getitem__   s0    		!e_--U$$r   c                L   < \         \        V `
  ! V/ VB pVR ,          R,           # ):N   N)NN)ru   r   __reduce_ex__)r(   rw   rx   infory   s   &*, r   r   ErrorList.__reduce_ex__   s*     Xt2DCFCBx,&&r   )r   r   r-   )NNNNrq   )r4   r5   r6   r7   r   r.   rl   r[   rv   r|   r   rg   r)   r   r   r   r   r   r:   r;   r   r   s   @@r   r   r      sT      <M<9!5

 "#' 'r   r   c           	     v   \         P                  '       dt   V ep   \        P                  ! V 4      '       dT   \        P                  ! 4       p \        P
                  ! W4      '       d   \        R4      h\        P                  ! W4      # V #   \         d"   p\        \        R4      RRT RT/R7      ThRp?ii ; i)zq
When time zone support is enabled, convert naive datetimes
entered in the current time zone to aware datetimes.
NzAmbiguous or non-existent time.ur   %(datetime)s couldn’t be interpreted in time zone %(current_timezone)s; it may be ambiguous or it may not exist.ambiguous_timezonedatetimecurrent_timezone)r   params)r   USE_TZr   is_naiveget_current_timezone _datetime_ambiguous_or_imaginary
ValueError
make_aware	Exceptionr   r   )r    r   excs   &  r   from_current_timezoner      s    
 5,1B1B51I1I#88:	88QQ !BCC&&u?? L  		!<
 *"E+=?OP 		s   <B B8B33B8c                    \         P                  '       d7   V e3   \        P                  ! V 4      '       d   \        P                  ! V 4      # V # )zu
When time zone support is enabled, convert aware datetimes
to naive datetimes in the current time zone for display.
)r   r   r   is_aware
make_naive)r    s   &r   to_current_timezoner      s8    
 5,1B1B51I1I""5))Lr   )re   collectionsr   django.confr   django.core.exceptionsr   django.forms.renderersr   django.utilsr   django.utils.htmlr   r	   django.utils.safestringr
   django.utils.translationr   r   r   r!   r#   r?   rP   rc   dictrs   r   r   r   r   r3   r   r   <module>r      s         2 7 ! 6 - 6/2  ? .3/ 3$2? 2
* 
8D'$ 4 D'T0r   