
    h3'                         d dl Z d dlmZ d dlmZmZmZ d dlmZ ddl	m
Z
mZ  ed      Zd Z ed	      Z ed
      Z ed      Z ed      Z ed      Z ed      ZddZy)    N)StringIO)TRANSLATOR_COMMENT_MARKLexer	TokenType)_lazy_re_compile   )TranslatorCommentWarningtrim_whitespacez\Sc                 .    t         j                  ||       S )zg
    Change every non-whitespace character to the given char.
    Used in the templatize function.
    )dot_resub)srcchars     d/var/www/html/ranktracker/api/venv/lib/python3.12/site-packages/django/utils/translation/template.pyblankoutr      s    
 ::dC      z.^\s+.*context\s+((?:"[^"]*?")|(?:'[^']*?'))\s*z^\s*trans(?:late)?\s+((?:"[^"]*?")|(?:'[^']*?'))(?:\s*\|\s*[^\s:]+(?::(?:[^\s'":]+|(?:"[^"]*?")|(?:'[^']*?')))?)*(\s+.*context\s+((?:"[^"]*?")|(?:'[^']*?')))?\s*zM^\s*blocktrans(?:late)?(\s+.*context\s+((?:"[^"]*?")|(?:'[^']*?')))?(?:\s+|$)z^\s*endblocktrans(?:late)?$z^\s*plural$z_\(((?:".*?")|(?:'.*?'))\)c                    t        d      }d}d}d}d}g }g }d}	g }
i }d}d}d)d}t        |       j                         D ]  }|	r|j                  t        j
                  k(  r|j                  dk(  rdj                  |
      }d}t        |j                  d            D ]+  \  }}|j                         j                  t              s*|}- t        |j                  d            D ]2  \  }}|||k\  r|j                  d|z         "|j                  d	       4 d}	g }
|
j                  |j                         |r|j                  t        j
                  k(  rt        j!                  |j                        }t"        j!                  |j                        }|r1|r|r3|j                  d
j%                  | |||       |||      |             n1|j                  dj%                   |||       |||      |             |D ]  }|j                  t'        |d              |D ]  }|j                  t'        |d              nx|r+|j                  dj%                  | |||      |             n)|j                  dj%                   |||      |             |D ]  }|j                  t'        |d              d}d}d}g }g }|rd}d}|rd|z  }t)        d|j                  ||j*                  fz        |j                  t        j,                  k(  rB|r |j                  d|j                  z         |j                  d|j                  z         #|j                  t        j.                  k(  sB|j                  j1                  dd      }|r|j                  |       s|j                  |       ||j*                  |j                  j3                  d      z   }||k(  rX|j                  t        j4                  k7  ra||   D ]-  }d}|rd|z  }d|||fz  }t7        j8                  |t:               / g ||<   n&|j                  ddj                  ||         z         d}|j                  t        j
                  k(  rMt<        j!                  |j                        }t>        j!                  |j                        }t@        jC                  |j                        }|r|d   }|d   dk(  r|jE                  d      }n|d   dk(  r|jE                  d      }|j1                  dd      }|d   rwtF        j!                  |d         } | d   }|d   dk(  r|jE                  d      }n|d   dk(  r|jE                  d      }|j                  dj%                  |||             d}x|j                  dj%                  ||             |rt@        jC                  |j                        D ]  }!|j                  d|!z          |d   rPtF        j!                  |d         } | d   }|d   dk(  r|jE                  d      }n|d   dk(  r|jE                  d      }d}d}d |jI                         v }g }g }G|r|D ]  }"|j                  d|"z          f|j                  d!k(  rd}	y|j                  t'        |j                  d"             |j                  t        j,                  k(  r|j                  jK                  d#      }#t@        j!                  |#d         }"|"r|j                  d|"d   z         |#dd D ]Y  }$|$jM                  d$      dk\  r(|j                  d%|$jK                  d&d      d   z         ?|j                  t'        |$d'             [ l|j                  t        j4                  k(  rr|j                  j                         j                  t              s|jO                  |j*                  g       j                  |j                         |j*                  }|j                  t'        |j                  d(             " |jQ                         S )*z
    Turn a Django template into something that is understood by xgettext. It
    does so by translating the Django translation tags into standard gettext
    function invocations.
     NFuc                 B    dj                  |       }|rt        |      }|S )Nr   )joinr
   )tokenstrimmessages      r   join_tokensztemplatize.<locals>.join_tokens7   s!    ''&/%g.Gr   
endcommentTz # %sz #
z, npgettext({p}{!r}, {p}{!r}, {p}{!r},count) )pz# ngettext({p}{!r}, {p}{!r}, count) SPz pgettext({p}{!r}, {p}{!r}) z gettext({p}{!r}) z	file %s, zDTranslation blocks must not include other block tags: %s (%sline %d)z%%(%s)s%z%%
zjThe translator-targeted comment '%s' (%sline %d) was ignored, because it wasn't the last item on the line.z# %sz | r   r   "'   z _(%s) trimmedcommentB|z:_(z %s :FX)F))r   r   tokenize
token_typer   BLOCKcontentsr   	enumerate
splitlineslstrip
startswithr   writeappendendblock_rematch	plural_reformatr   SyntaxErrorlinenoVARTEXTreplacecountCOMMENTwarningswarnr	   	inline_reblock_reconstant_refindallstrip
context_resplit_contentssplitfind
setdefaultgetvalue)%r   originoutmessage_contextintransinpluralr%   singularplural	incommentr&   lineno_comment_mapcomment_lineno_cache
raw_prefixr   tcontenttranslators_comment_startr;   line	endbmatchpluralmatchpartfilemsgr/   
cur_linenocwarn_msgimatchbmatchcmatchesgcontext_matchfmatchcmatchpartsr   s%                                        r   
templatizerl   #   s    2,COGHGHFIGJ 3Z  " e5||y.1::3M'''*,0)$-g.@.@.F$G ;LFD{{}//0GH4:1; %.g.@.@.F$G *LFD0<KdAd		'D.1		&)	*
 "	qzz*||y.'--ajj9	'ooajj9*II&T&[&[ / +Hg > +FG <",	 '\ '   II&K&R&R +Hg > +FG <", 'S ' 
 %- ;DIIhtS&9:;$* ;DIIhtS&9:; +II&D&K&K / +Hg >", 'L '   II&:&A&A +Hg >", 'B '  %- ;DIIhtS&9:;&*O#G$H!HF #H G"-"6%),-JJ+JK  .MM)ajj"89OOI

$:;/::--c48MM(+OOH- $/XX

(8(8(>>
':5||y'8'88!34H!I 	NA&(G%*5*>!= "#G-A B	(CH
 %MM(4LM	N DF*+?@IIfuzz2DEY2Z'[[\'+$||y."4!

3&..qzz:q	Ats{GGCL1GGCL		#t,Aay(2(8(8(C*7*:*1-4.=.C.CC.HO,Q/36.=.C.CC.HO		"@"G"G+Q* #H #  +/		"6"="=a:"="NO"-"5"5ajj"A 6		)f"456ay(2(8(8(C*7*:*1-4.=.C.CC.HO,Q/36.=.C.CC.HO"G$H'1+;+;+==G!HF"* 6		)f"456ZZ9, $IIIhqzz378.

((-$**584IIi&)34qr 4Avve})		&1773?1+="=>		(1c"23	4
 !2!22::$$&112IJ&11!((B?FFqzzR+,88(		(1::s34Ke5L <<>r   )N)rA   ior   django.template.baser   r   r   django.utils.regex_helperr   r   r	   r
   r   r   rH   rC   rD   r6   r8   rE   rl    r   r   <module>rq      sv      J J 6 7	%	 ! ST
<	 pqAB/0	@A@r   