+
    WBi+                     >    R t ^ RIHt ^ RIHt  ! R R]4      tR tR# )zEgettext message extraction via Babel: https://pypi.org/project/Babel/)extract_python)MessageExtractorc                   >   a a ] tR t^t oV 3R ltR tR tRtVtV ;t	# )BabelMakoExtractorc           
        < Wn         W0n        R RP                  V4      RVP                  RVP                  RR4      4      /V n        \
        SV `  4        R# )comment-tags encodinginput_encodingN)keywordsoptionsjoingetconfigsuper__init__)selfr   comment_tagsr   	__class__s   &&&&9/usr/lib/python3.14/site-packages/mako/ext/babelplugin.pyr   BabelMakoExtractor.__init__   sO     CHH\2 '++j$"?
 	    c                $    V P                  V4      # )N)process_file)r   fileobjs   &&r   __call__BabelMakoExtractor.__call__   s      ))r   c              #     "   V P                   R ,          p\        WP                  W@P                  4       F#  w  ppppW%^,
          ,           VVW8,           3x  K%  	  R# 5i)r   N)r   r   r   r   )	r   codecode_linenotranslator_stringsr   linenofuncnamemessagespython_translator_commentss	   &&&&     r   process_python!BabelMakoExtractor.process_python   s`     {{>2 D--||L
& z*"?	  Ms   AA)r   r   r   )
__name__
__module____qualname____firstlineno__r   r   r%   __static_attributes____classdictcell____classcell__)r   __classdict__s   @@r   r   r      s     	* r   r   c              #  J   "   \        WV4      pV! V 4       Rj  xL
  R#  L5i)a  Extract messages from Mako templates.

:param fileobj: the file-like object the messages should be extracted from
:param keywords: a list of keywords (i.e. function names) that should be
                 recognized as translation functions
:param comment_tags: a list of translator tags to search for and include
                     in the results
:param options: a dictionary of additional options (optional)
:return: an iterator over ``(lineno, funcname, message, comments)`` tuples
:rtype: ``iterator``
N)r   )r   r   r   r   	extractors   &&&& r   extractr1   ,   s!      #87CI!!!s   #!#N)__doc__babel.messages.extractr   mako.ext.extractr   r   r1    r   r   <module>r6      s#    L 1 -) >"r   