
    lhW                         d Z ddlZddlmZ er0d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d
lmZ ddlmZ ddlmZ edk\  rddlmZ ndZ	 ddlmZ d Z G d d      Z e       Zy# e$ r	 ddlmZ Y "w xY w)zr
Copied from raven-python.

Despite being called "legacy" in some places this resolver is very much still
in use.
    N)TYPE_CHECKING)URLResolver)Dict)List)Optional)
URLPattern)Tuple)Union)Pattern)VERSION)   r   )RoutePattern)get_resolverc                 l    	 | j                   }|S # t        $ r | j                  j                   }Y |S w xY w)z5Utility method for django's deprecated resolver.regex)regexAttributeErrorpattern)resolver_or_patternr   s     }/var/www/pru.catia.catastroantioquia-mas.com/tasa/lib/python3.12/site-packages/sentry_sdk/integrations/django/transactions.py	get_regexr   #   s@    2#)) L  2#++11L2s    33c                       e Zd Z ej                  d      Z ej                  d      Z ej                  d      Z ej                  d      Z ej                  d      Z	 ej                  d      Z
i Zd Zdd	Z	 dd
Zy)RavenResolverz<(?:([^>:]+):)?([^>]+)>z\(\?\:([^\)]+)\)z\(\?P<(\w+)>[^\)]+\)+z
\([^\)]+\)z\[([^\]]+)\|([^\]]+)\]z([A-Z]+)([a-z])c                    t         `t        |d      rTt        |j                  t               r:| j                  j                  d t        |j                  j                              S t        |      j                  }| j                  j                  d |      }| j                  j                  d |      }| j                  j                  d|      }| j                  j                  d |      }|j                  dd      j                  d	d      j                  d
d      j                  dd      j                  dd      j                  dd      j                  dd      }|S )z
        Clean up urlpattern regexes into something readable by humans:

        From:
        > "^(?P<sport_slug>\w+)/athletes/(?P<athlete_slug>\w+)/$"

        To:
        > "{sport_slug}/athletes/{athlete_slug}/"
        r   c                 *    d| j                  d      z  S )N{%s}r   groupms    r   <lambda>z)RavenResolver._simplify.<locals>.<lambda>M   s    &1771:-     c                 *    d| j                  d      z  S )Nz%s   r   r   s    r   r    z)RavenResolver._simplify.<locals>.<lambda>V   s    D1771:<M r!   c                 *    d| j                  d      z  S )Nr   r#   r   r   s    r   r    z)RavenResolver._simplify.<locals>.<lambda>Y   s    !''!*9L r!   z{var}c                 $    | j                  d      S )Nr#   r   r   s    r   r    z)RavenResolver._simplify.<locals>.<lambda>_   s    1771: r!   ^ $?z\Az\Zz///\)r   hasattr
isinstancer   _new_style_group_matchersubstr_router   _optional_group_matcher_named_group_matcher_non_named_group_matcher_either_option_matcherreplace)selfr   results      r   	_simplifyzRavenResolver._simplify:   s0    $+7??L90044-s7??3I3I/J  7#++ --112MvV **../LfU ..227FC ,,001EvN NN3#WS"WS"WUBWUBWT3WT2 	 r!   Nc                     t        |      j                  |      }|sy ||g}n
||vr||gz   }||j                         d  }|j                  D ]T  }|j                  s j                  |||      }|r|c S )t        |      j                  |      sD	  j                  |   c S  y # t        $ r Y nw xY wdj                   fd|D              }| j                  |      z   }	|	j                  d      sd|	z   }	|	 j                  |<   |	c S )Nr'   c              3   @   K   | ]  }j                  |        y wN)r9   ).0pr7   s     r   	<genexpr>z)RavenResolver._resolve.<locals>.<genexpr>   s     @1T^^A.@s   r*   )r   searchendurl_patternscallback_resolve_cacheKeyErrorjoinr9   
startswith)
r7   resolverpathparentsmatchnew_pathr   match_prefixr8   s
   `         r   rD   zRavenResolver._resolven   s#    (#**40?jGW$
*G		&,, 	G##w'B!Mw'..x8{{7++	,    WW@@@FdnnW55F$$S)v#)DKK Ms   B&&	B21B2c                 @    t        |      }| j                  ||      }|S r<   )r   rD   )r7   rJ   urlconfrI   rL   s        r   resolvezRavenResolver.resolve   s#      (h-r!   r<   )__name__
__module____qualname__recompiler.   r2   r3   r4   r5   	_camel_rerE   r9   rD   rR    r!   r   r   r   -   s    )rzz"  )bjj)<=%2::&>?)rzz-8'RZZ(AB

-.IF2h$R r!   r   )__doc__rV   typingr   django.urls.resolversr   r   r   r   r   r	   r
   r   djangor   DJANGO_VERSIONr   django.urlsr   ImportErrordjango.core.urlresolversr   r   LEGACY_RESOLVERrY   r!   r   <module>rc      sx    
  10 ,V2L6(
o od  /A  656s   A/ /A=<A=