ó
    F\hï  ã                   ó.  • S SK r S SKrS SKrS SKrS SKJr  S SKJrJrJ	r	  S SK
Jr  \" \5      S-  S-  S-  r\ R                  " S\ R                  5      r\ R                  " S	5      rS
S.S jrS rS r\	" 5        " S S\R(                  5      5       rS rg)é    N)ÚPath)Ú	REPO_ROOTÚTEST_HOME_DIRÚrequires_subprocess)Úskip_if_missingÚToolsÚi18nzpygettext.pyz)msgid(.*?)(?:msgid_plural|msgctxt|msgstr)z"((?:\\"|[^"])*)"T©Ústdout_onlyc                óÂ   • [         R                  " [        R                  [        SSSU /[         R
                  [         R
                  SS9nU(       a  UR                  $ U$ )Nz--no-locationz-oÚ-T)ÚstdoutÚstderrÚtext)Ú
subprocessÚrunÚsysÚ
executableÚ	pygettextÚPIPEr   )Úpathr   Úress      Ú//usr/lib/python3.13/test/support/i18n_helper.pyÚ_generate_po_filer      sJ   € Ü
�.Š.œ#Ÿ.™.¬)Ø)¨4°°dð<ä *§¡¼
¿¹Ø"ñ$€Cö Ø�z‰zÐØ€Jó    c                 óô   • / n[         R                  U 5       HS  nSR                  [        R                  U5      5      nUR	                  SS5      nU(       d  MB  UR                  U5        MU     [        U5      $ )NÚ z\"Ú")Úmsgid_patternÚfindallÚjoinÚmsgid_string_patternÚreplaceÚappendÚsorted)ÚpoÚmsgidsÚmsgidÚmsgid_strings       r   Ú_extract_msgidsr*      se   € Ø€FÜ×&Ñ& rÖ*ˆØ—w‘wÔ3×;Ñ;¸EÓBÓCˆØ#×+Ñ+¨E°3Ó7ˆßˆ<Ø�M‰M˜,Ö'ñ	 +ô
 �&‹>Ðr   c                 ó2   • [        [        5      S-  U -  S-  $ )NÚtranslationdataz
msgids.txt)r   r   )Úmodule_names    r   Ú_get_snapshot_pathr.   %   s   € Ü”ÓÐ!2Ñ2°[Ñ@À<ÑOÐOr   c                   ó   • \ rS rSrS rSrg)ÚTestTranslationsBaseé)   c                 ód  • [        S5        [        UR                  SS9nU R                  UR                  S5        U R                  UR
                  S5        [        UR                  5      n[        UR                  5      nUR                  5       R                  5       nU R                  X55        g)zDAssert that msgids extracted from a given module match a
snapshot.

r	   Fr
   r   r   N)r   r   Ú__file__ÚassertEqualÚ
returncoder   r*   r   r.   Ú__name__Ú	read_textÚ
splitlinesÚassertListEqual)ÚselfÚmoduler   r'   Úsnapshot_pathÚsnapshots         r   ÚassertMsgidsEqualÚ&TestTranslationsBase.assertMsgidsEqual,   s…   € ô
 	˜ÔÜ §¡¸UÑCˆØ×Ñ˜Ÿ™¨Ô+Ø×Ñ˜Ÿ™ RÔ(Ü  §¡Ó,ˆÜ*¨6¯?©?Ó;ˆØ ×*Ñ*Ó,×7Ñ7Ó9ˆØ×Ñ˜VÕ.r   © N)r6   Ú
__module__Ú__qualname__Ú__firstlineno__r>   Ú__static_attributes__r@   r   r   r0   r0   )   s   † õ/r   r0   c                 ó®   • [        U R                  5      n[        U5      n[        U R                  5      nUR                  SR                  U5      5        g )NÚ
)r   r3   r*   r.   r6   Ú
write_textr!   )r;   Úcontentsr'   r<   s       r   Úupdate_translation_snapshotsrI   ;   s?   € Ü  §¡Ó1€HÜ˜XÓ&€FÜ& v§¡Ó7€MØ×Ñ˜TŸY™Y vÓ.Õ/r   )Úrer   r   ÚunittestÚpathlibr   Útest.supportr   r   r   Útest.test_toolsr   r   ÚcompileÚDOTALLr   r"   r   r*   r.   ÚTestCaser0   rI   r@   r   r   Ú<module>rR      s�   ðÛ 	Û Û 
Û Ý ß FÑ FÝ +ñ �‹O˜gÑ%¨Ñ.°Ñ?€	à—
’
ÐGØŸ9™9ó&€à—z’zÐ"6Ó7Ð ð ,0õ òòPñ Óô/˜8×,Ñ,ó /ó ð/ó"0r   