
    lh]                         d dl Z d dlmZ d dlmZ d dlmZ d dlZd dl	m
Z
 d dlmZ d dlmZ erd dlmZ d d	lmZ d d
lmZ d dlmZ d dlmZ 	 d dlmZ d Zd Zd Zd Zd Zd Zy# e$ r	 d dlmZ Y  w xY w)    N)TemplateSyntaxError)	mark_safe)VERSION)OP)ensure_integration_enabled)TYPE_CHECKING)Any)Dict)Optional)Iterator)Tuple)Origin)LoaderOriginc                 @   t        | d      rt        | j                        S t        | d      rt        | j                        S t        | t              rLt        | d      r@| j                  }t        |t        t        f      rt        |d   t              rt        |      S y )Ntemplate_debugdjango_template_sourcesourcer   )hasattr_get_template_frame_from_debugr   _get_template_frame_from_sourcer   
isinstancer   r   tuplelistr   )	exc_valuer   s     z/var/www/pru.catia.catastroantioquia-mas.com/tasa/lib/python3.12/site-packages/sentry_sdk/integrations/django/templates.py!get_template_frame_from_exceptionr      s     y*+-i.F.FGG
 y23.,,
 	
 )01gi6R!!fudm,F1Iv1N26::    c                 `    t        | t        t        f      r| rdj                  | d         S y | S )Nz	[{}, ...]r   )r   r   r   format)template_names    r   _get_template_name_descriptionr!   3   s6    -$/%%mA&677  r   c                  ^   ddl m}  ddlm | j                  t
        t        j                        fd              }|| _        t        dk  ry dd l	}|j                  j                  t        j                        t              dfd	              }||j                  _        y )Nr   )SimpleTemplateResponse)DjangoIntegrationc                    t        j                  t        j                  t	        | j
                        j                        5 }|j                  d| j                         j                  |       cd d d        S # 1 sw Y   y xY w)Nopnameorigincontext)

sentry_sdk
start_spanr   TEMPLATE_RENDERr!   r    r)   set_datacontext_datafget)selfspanr$   real_rendered_contents     r   rendered_contentz)patch_templates.<locals>.rendered_contentC   so     ""!!/0B0BC$++
 	4 MM)T%6%67(--d3	4 	4 	4s   -A<<B)      c                 R   |xs i }d|vr.t        t        j                         j                               |d<   t        j                  t
        j                  t        |      j                        5 }|j                  d|        | ||g|i |cd d d        S # 1 sw Y   y xY w)Nsentry_trace_metar&   r*   )
r   r+   get_current_scopetrace_propagation_metar,   r   r-   r!   r)   r.   )requestr    r*   argskwargsr2   r$   real_renders         r   renderzpatch_templates.<locals>.renderW   s     -Rg-+4,,.EEG,G'( ""!!/>$++
 	Q MM)W-wwPPP	Q 	Q 	Qs   3 BB&)N)django.template.responser#   sentry_sdk.integrations.djangor$   r4   propertyr   r0   DJANGO_VERSIONdjango.shortcuts	shortcutsr?   	functoolswraps)r#   r4   djangor?   r$   r>   r3   s       @@@r   patch_templatesrI   <   s    ?@2CC 13H3M3MN4 O 4 /?+""))K__[! 1;?Q @ "Q$ %Fr   c                     | y | d   }| d   }|d}g }g }d }| d   D ]5  \  }}||k  r|j                  |       ||kD  r|j                  |       4|}7 |||dd  |d d |ddS )	Nliner(   <django template>source_lines   T)filenamelinenopre_contextpost_contextcontext_linein_app)append)debugrQ   rP   rR   rS   rT   irK   s           r   r   r   n   s    }6]FV}H&KLL(  4v:t$Z%L  "23'$Ra($ r   c              #      K   d | j                  d      }|dk\  r#|dz    | j                  d|dz         }|dk\  r"y y w)Nr   
r5   )find)template_sourceps     r   _linebreak_iterr^      sJ     
GT"A
q&!e  q1u- q&s
   <AAc                 B   | sy | \  }\  }}t        |dd       }|d}|j                         }d }d}g }g }	d }
t        t        |            D ]@  \  }}||| }||k\  r
||k  r|}|}
n%||j	                  |       n|	j	                  |       |}B |
|y |||dd  |	d d |
dS )NloadnamerL   r   rN   rO   )rP   rQ   rR   rS   rT   )getattrreload	enumerater^   rV   )r   r)   startendrP   r\   rQ   uptorR   rS   rT   numnextrK   s                 r   r   r      s    !FLUCvz40H&mmoOFDKLL?@ 
	TtD)D=SD[FL^t$%
 v~ "23'$Ra($ r   )rF   django.templater   django.utils.safestringr   rH   r   rC   r+   sentry_sdk.constsr   sentry_sdk.utilsr   typingr   r	   r
   r   r   r   django.template.baser   ImportErrordjango.template.loaderr   r   r!   rI   r   r^   r    r   r   <module>rr      sl     / - ,    7  >+./%d@.%A  >=>s   A' 'A54A5