Ë
    %´˜jï  ã                   ó,  — d dl Z d dlZd dlZd dlZd dlmZ d dlmZmZm	Z	 d dl
mZ  ee«      dz  dz  dz  Z e j                  de j                  «      Z e j                  d	«      Zd
dœd„Zd„ Zd„ Z e	«        G d„ dej(                  «      «       Zd„ Zy)é    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                ó¼   — t        j                  t        j                  t        ddd| gt         j
                  t         j
                  d¬«      }|r|j                  S |S )Nz--no-locationz-oÚ-T)ÚstdoutÚstderrÚtext)Ú
subprocessÚrunÚsysÚ
executableÚ	pygettextÚPIPEr   )Úpathr   Úress      ú*lib/python3.12/test/support/i18n_helper.pyÚ_generate_po_filer      sJ   € Ü
�.‰.œ#Ÿ.™.¬)Ø)¨4°°dð<ä *§¡¼
¿¹Ø"ô$€Cñ Ø�z‰zÐØ€Jó    c                 óä   — g }t         j                  | «      D ]L  }dj                  t        j                  |«      «      }|j	                  dd«      }|sŒ<|j                  |«       ŒN t        |«      S )NÚ z\"Ú")Úmsgid_patternÚfindallÚjoinÚmsgid_string_patternÚreplaceÚappendÚsorted)ÚpoÚmsgidsÚmsgidÚmsgid_strings       r   Ú_extract_msgidsr*      sc   € Ø€FÜ×&Ñ& rÖ*ˆØ—w‘wÔ3×;Ñ;¸EÓBÓCˆØ#×+Ñ+¨E°3Ó7ˆÚØ�M‰M˜,Õ'ð	 +ô
 �&‹>Ðr   c                 ó2   — t        t        «      dz  | z  dz  S )NÚtranslationdataz
msgids.txt)r   r   )Úmodule_names    r   Ú_get_snapshot_pathr.   %   s   € Ü”ÓÐ!2Ñ2°[Ñ@À<ÑOÐOr   c                   ó   — e Zd Zd„ Zy)ÚTestTranslationsBasec                 ól  — t        d«       t        |j                  d¬«      }| j                  |j                  d«       | j                  |j
                  d«       t        |j                  «      }t        |j                  «      }|j                  «       j                  «       }| j                  ||«       y)zTAssert 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   ÚassertMsgidsEqualz&TestTranslationsBase.assertMsgidsEqual,   s‡   € ô
 	˜ÔÜ §¡¸UÔCˆØ×Ñ˜Ÿ™¨Ô+Ø×Ñ˜Ÿ™ RÔ(Ü  §¡Ó,ˆÜ*¨6¯?©?Ó;ˆØ ×*Ñ*Ó,×7Ñ7Ó9ˆØ×Ñ˜V XÕ.r   N)r5   Ú
__module__Ú__qualname__r=   © r   r   r0   r0   )   s   „ ó/r   r0   c                 ó®   — t        | j                  «      }t        |«      }t        | j                  «      }|j                  dj                  |«      «       y )NÚ
)r   r2   r*   r.   r5   Ú
write_textr!   )r:   Úcontentsr'   r;   s       r   Úupdate_translation_snapshotsrE   ;   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   rE   r@   r   r   Ú<module>rN      s¡   ðÛ 	Û Û 
Û Ý ß FÑ FÝ +ñ �‹O˜gÑ%¨Ñ.°Ñ?€	à�—
‘
ÐGØŸ9™9ó&€à!�r—z‘zÐ"6Ó7Ð ð ,0ô òòPñ Óô/˜8×,Ñ,ó /ó ð/ó"0r   