Ë
    ûûàgÇ  ã                   ól   — d Z ddl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 G d„ d«      Zy)zP
Utility functions to return a formatted name and description for a given view.
é    N)Ú	force_str)Úescape)Ú	mark_safe)Úapply_markdownc                 óP   — | j                  |«      r| |k7  r| dt        |«        S | S )z|
    Strip trailing component `trailing` from `content` if it exists.
    Used when generating names from view classes.
    N)ÚendswithÚlen)ÚcontentÚtrailings     ú]/var/www/skyplay_api_hub/venv/lib/python3.12/site-packages/rest_framework/utils/formatting.pyÚremove_trailing_stringr      s1   € ð
 ×Ñ˜Ô! g°Ò&9Ø�œ˜X›˜Ð'Ð'Ø€Nó    c                 óÞ  — t        | «      } | j                  «       dd D �cg c]  }|j                  «       sŒ|‘Œ }}|�rt        |D �cg c](  }t	        |«      t	        |j                  d«      «      z
  ‘Œ* c}«      }t        |D �cg c](  }t	        |«      t	        |j                  d«      «      z
  ‘Œ* c}«      }|rQdd|z  z   }t        j                  t        j                  |t
        j                  «      d| «      } | j                  «       S |rAdd|z  z   }t        j                  t        j                  |t
        j                  «      d| «      } | j                  «       S c c}w c c}w c c}w )a  
    Remove leading indent from a block of text.
    Used when generating descriptions from docstrings.

    Note that python's `textwrap.dedent` doesn't quite cut it,
    as it fails to dedent multiline docstrings that include
    unindented text on the initial line.
    é   Nú ú	ú^Ú )
r   Ú
splitlinesÚlstripÚminr	   ÚreÚsubÚcompileÚ	MULTILINEÚstrip)r
   ÚlineÚlinesÚwhitespace_countsÚ
tab_countsÚwhitespace_patterns         r   Údedentr"      s-  € ô ˜Ó €GØ%×0Ñ0Ó2°1°2Ð6ÖH�d¸$¿+¹+½-ŠTÐH€EÐHò ÜÈuÖ UÀt¤ T£¬S°·±¸SÓ1AÓ-BÓ!BÒ UÓVÐÜÈÖOÀœ#˜d›)¤c¨$¯+©+°dÓ*;Ó&<Ó<ÒOÓPˆ
ÙØ!$¨Ð.?Ñ(?Ñ!@ÐÜ—f‘fœRŸZ™ZÐ(:¼B¿L¹LÓIÈ2ÈwÓWˆGð �=‰=‹?Ðñ Ø!$¨¨zÑ(9Ñ!:ÐÜ—f‘fœRŸZ™ZÐ(:¼B¿L¹LÓIÈ2ÈwÓWˆGØ�=‰=‹?Ðùò Iùò !VùÚOs   ¡E ·E Á	-E%Â-E*c                 ó¬   — d}t        j                  |d| «      j                  «       } dj                  | j	                  d«      «      j                  «       S )zm
    Translate 'CamelCaseNames' to 'Camel Case Names'.
    Used when generating names from view classes.
    z&(((?<=[a-z])[A-Z])|([A-Z](?![A-Z]|$)))z \1r   Ú_)r   r   r   ÚjoinÚsplitÚtitle)r
   Úcamelcase_boundarys     r   Úcamelcase_to_spacesr)   0   sH   € ð
 BÐÜ�f‰fÐ'¨°Ó9×?Ñ?ÓA€GØ�8‰8�G—M‘M #Ó&Ó'×-Ñ-Ó/Ð/r   c                 ó–   — t         rt        | «      } t        | «      S t        | «      j                  dd«      } d| z   dz   } t        | «      S )z5
    Apply HTML markup to the given description.
    ú
z<br />z<p>z</p>)r   r   Úreplacer   )Údescriptions    r   Úmarkup_descriptionr.   :   sQ   € õ Ü$ [Ó1ˆô �[Ó!Ð!ô ˜[Ó)×1Ñ1°$¸ÓAˆØ˜kÑ)¨FÑ2ˆÜ�[Ó!Ð!r   c                   ó&   — e Zd ZdZdZd„ Zd„ Zd„ Zy)Úlazy_formatz¯
    Delay formatting until it's actually needed.

    Useful when the format string or one of the arguments is lazy.

    Not using Django's lazy because it is too slow.
    )Úformat_stringÚargsÚkwargsÚresultc                 ó<   — d | _         || _        || _        || _        y ©N)r4   r1   r2   r3   )Úselfr1   r2   r3   s       r   Ú__init__zlazy_format.__init__P   s   € ØˆŒØ*ˆÔØˆŒ	Øˆ�r   c                 óÆ   — | j                   €J | j                  j                  | j                  i | j                  ¤Ž| _         d\  | _        | _        | _        | j                   S )N)NNN)r4   r1   Úformatr2   r3   )r7   s    r   Ú__str__zlazy_format.__str__V   sP   € Ø�;‰;ÐØ3˜$×,Ñ,×3Ñ3°T·Y±YÐNÀ$Ç+Á+ÑNˆDŒKØ9IÑ6ˆDÔ ¤	¨4¬;Ø�{‰{Ðr   c                 ó   — t        | «      |z  S r6   )Ústr)r7   Úvalues     r   Ú__mod__zlazy_format.__mod__\   s   € Ü�4‹y˜5Ñ Ð r   N)Ú__name__Ú
__module__Ú__qualname__Ú__doc__Ú	__slots__r8   r;   r?   © r   r   r0   r0   F   s   „ ñð >€Iòòó!r   r0   )rC   r   Údjango.utils.encodingr   Údjango.utils.htmlr   Údjango.utils.safestringr   Úrest_framework.compatr   r   r"   r)   r.   r0   rE   r   r   ú<module>rJ      s9   ðñó 
å +Ý $Ý -å 0òòò20ò	"÷!ò !r   