
    ghW                        S r SSKrSSKJr  \(       a0  SSKJr  SSKJr  SSKJr  SSKJr  SSKJ	r	  SS	KJ
r
  SS
KJr  SSKJr  SSKJr  \S:  a  SSKJr  OSr SSKJr  S r " S S5      r\" 5       rg! \ a	    SSKJr   N#f = f)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                 n     U R                   nU$ ! [         a    U R                  R                   n U$ f = f)z5Utility method for django's deprecated resolver.regex)regexAttributeErrorpattern)resolver_or_patternr   s     n/home/kali/devsecops-assessor/venv/lib/python3.13/site-packages/sentry_sdk/integrations/django/transactions.py	get_regexr   #   s@    2#)) L  2#++11L2s     44c                      \ rS rSr\R
                  " S5      r\R
                  " S5      r\R
                  " S5      r\R
                  " S5      r	\R
                  " S5      r
\R
                  " S5      r0 rS rSS
 jr SS jrSrg	)RavenResolver-   z<(?:([^>:]+):)?([^>]+)>z\(\?\:([^\)]+)\)z\(\?P<(\w+)>[^\)]+\)+z
\([^\)]+\)z\[([^\]]+)\|([^\]]+)\]z([A-Z]+)([a-z])c                    [         bj  [        US5      (       aY  [        UR                  [         5      (       a:  U R                  R                  S [        UR                  R                  5      5      $ [        U5      R                  nU R                  R                  S U5      nU R                  R                  S U5      nU R                  R                  SU5      nU R                  R                  S U5      nUR                  SS5      R                  S	S5      R                  S
S5      R                  SS5      R                  SS5      R                  SS5      R                  SS5      nU$ )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                 *    SU R                  S5      -  $ )N{%s}r   groupms    r   <lambda>)RavenResolver._simplify.<locals>.<lambda>M   s    &1771:-    c                 *    SU R                  S5      -  $ )Nz%s   r   r   s    r   r!   r"   V   s    D1771:<Mr#   c                 *    SU R                  S5      -  $ )Nr   r%   r   r   s    r   r!   r"   Y   s    !''!*9Lr#   z{var}c                 $    U R                  S5      $ )Nr%   r   r   s    r   r!   r"   _   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   	_simplifyRavenResolver._simplify:   s6    $++7??L9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                 R  ^  [        U5      R                  U5      nU(       d  g Uc  U/nO
X;  a  X1/-   nX$R                  5       S  nUR                   Hd  nUR                  (       d  T R                  XeU5      nU(       a  Us  $ M3  [        U5      R                  U5      (       d  MT   T R                  U   s  $    g ! [         a     Of = fSR                  U 4S jU 5       5      nUT R                  U5      -   n	U	R                  S5      (       d  SU	-   n	U	T R                  U'   U	s  $ )Nr)   c              3   F   >#    U  H  nTR                  U5      v   M     g 7fN)r;   ).0pr9   s     r   	<genexpr>)RavenResolver._resolve.<locals>.<genexpr>   s     @1T^^A..s   !r,   )r   searchendurl_patternscallback_resolve_cacheKeyErrorjoinr;   
startswith)
r9   resolverpathparentsmatchnew_pathr   match_prefixr:   s
   `         r   rH   RavenResolver._resolven   s    (#**40?jG$
*G		&,,G##w'B!Mw'..x88{{7++ -,    WW@@@FdnnW55F$$S))v#)DKK Ms   (B<<
C	C	c                 >    [        U5      nU R                  X15      nU$ r?   )r   rH   )r9   rN   urlconfrM   rP   s        r   resolveRavenResolver.resolve   s!      (h-r#    r?   )__name__
__module____qualname____firstlineno__recompiler0   r4   r5   r6   r7   	_camel_rerI   r;   rH   rW   __static_attributes__rY   r#   r   r   r   -   s    !zz"  !jj)<=::&>?!zz-8ZZ(AB

-.IF2h$R r#   r   )__doc__r^   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>rk      sx    
  10 ,V2L6(
o od  /A  656s   A5 5BB