
    h1                     d    S SK JrJrJrJrJr  S SKJr  S SKJ	r	  S SK
Jr  S rS rS
S jrSS	 jrg)    )URLResolverincludepathre_pathregister_converter)get_converters)RoutePattern)api_settingsc                    ^ U (       a/  [        U 5      S:X  a  U S   nOSSR                  U 5      -  nSU-  mOSm " U4S jS5      nU$ )	N   r   z(?:%s)|z\.%s/?z\.[a-z0-9]+/?c                   (   > \ rS rSr Y rS rS rSrg)9_get_format_path_converter.<locals>.FormatSuffixConverter   c                 $    UR                  S5      $ )Nz./)stripselfvalues     R/var/www/html/shao/venv/lib/python3.13/site-packages/rest_framework/urlpatterns.py	to_pythonC_get_format_path_converter.<locals>.FormatSuffixConverter.to_python   s    ;;t$$    c                     SU-   S-   $ )N./ r   s     r   to_url@_get_format_path_converter.<locals>.FormatSuffixConverter.to_url   s    ;$$r   r   N)__name__
__module____qualname____firstlineno__regexr   r   __static_attributes__)suffix_patterns   r   FormatSuffixConverterr      s    	%	%r   r'   )lenjoin)allowedallowed_patternr'   r&   s      @r   _get_format_path_converterr,      sO    w<1%ajO&')::O"_4)% % ! r   c                 F    SnU (       a  USSR                  U 5      -   -  nU$ )Ndrf_format_suffix_)r)   )r*   converter_names     r   _generate_converter_namer1      s(    (N# 111r   Nc                    / nU  GH   n[        U[        5      (       a  UR                  R                  R                  nUR                  nUR
                  nUR                  n	[        UR                  UUU5      n
[        UR                  [        5      (       a7  [        c   e[        UR                  5      n[        U[        X4U5      U	5      nO[        U[        X4U5      U	5      nUR                  U5        M  UR                  R                  R                  R                  S5      R                  S5      U-   nUR                   nUR"                  n	UR$                  nU(       d  UR                  U5        [        UR                  [        5      (       aQ  [        c   eUc   e[        UR                  5      R                  S5      R                  S5      U-   n[        XX5      nO[        XmX5      nUR                  U5        GM     U$ )N$r   )
isinstancer   patternr$   	namespaceapp_namedefault_kwargsapply_suffix_patternsurl_patternsr	   r   strr   r   appendrstripcallbackdefault_argsname)urlpatternsr&   suffix_requiredsuffix_routeret
urlpatternr$   r6   r7   kwargspatternsroutenew_patternviewr@   s                  r   r9   r9   %   s   
C!
j+..&&,,44E",,I!**H..F,Z-D-D-;-<-9;H *,,l;;'''J../"5'82F	*RTZ[%eWh5I9-UW]^JJ{# &&,,44;;C@GGL~]E&&D,,F??D"

:& *,,l;;'''#///J../66s;BB3G,V"5=%e6@JJ{#S "V Jr   c                 0   [         R                  nU(       a5  [        U5      S:X  a  US   nOSSR                  U5      -  nSU< SU< S3nOSU-  n[	        U5      nU[        5       ;  a  [        U5      n[        Xv5        S	U< S
U< S3n[        XX5      $ )a  
Supplement existing urlpatterns with corresponding patterns that also
include a '.format' suffix.  Retains urlpattern ordering.

urlpatterns:
    A list of URL patterns.

suffix_required:
    If `True`, only suffixed URLs will be generated, and non-suffixed
    URLs will not be used.  Defaults to `False`.

allowed:
    An optional tuple/list of allowed suffixes.  eg ['json', 'api']
    Defaults to `None`, which allows any suffix.
r   r   z(%s)r   z\.(?P<>z)/?$z\.(?P<%s>[a-z0-9]+)/?$<:)	r
   FORMAT_SUFFIX_KWARGr(   r)   r1   r   r,   r   r9   )	rA   rB   r*   suffix_kwargr+   r&   r0   suffix_converterrC   s	            r   format_suffix_patternsrR   U   s       33Lw<1%ajO$sxx'88O/;_M2\A-g6N^--5g>+< .=L o\\r   )N)FN)django.urlsr   r   r   r   r   django.urls.convertersr   django.urls.resolversr	   rest_framework.settingsr
   r,   r1   r9   rR   r   r   r   <module>rW      s*    O O 1 . 0!,-`!]r   