ó
    ç“,jõ  ã                   ó,  • S SK r S SKrS SKJr  S SKrS SKrS SKJr  S SKJ	r	J
r
  S SKJrJrJrJr  S SKJr  S rS r\R&                  R)                  S	S
SS0SS0/0SS0/S/ 0S.SS0/SS/0S./5      S 5       r\R&                  R)                  SS
S/ 00S4S
SS0/0S4S
SSS./0S4S
SS0/0S4S
SS/S./0S4/5      S 5       r\R&                  R)                  S/ SQ5      S 5       rS rS rS  r\R&                  R7                  S!5      S" 5       rg)#é    N)ÚPath)ÚRemoteStorage)ÚProjectConfigSchemaÚvalidate)Úgit_checkoutÚis_subpath_ofÚload_project_configÚmake_tempdir)Úvalidate_project_commandsc                  óš  • Sn SU 0nSS/S./nSS/nX!US.n[        5        n[        R                  " US	-  U5        [        U5      n[        R
                  R                  US-  5      (       d   e[        R
                  R                  XP S
3-  5      (       d   e SSS5        WS   S   S   S   SU  3:X  d   eg! , (       d  f       N&= f)zg
Test that the cli handles interpolation in the directory names correctly when loading project config.
ÚenÚlangÚxzhello ${vars.lang})ÚnameÚscriptÚcfgz${vars.lang}_model)ÚcommandsÚvarsÚdirectorieszproject.ymlÚ_modelNr   r   r   zhello )r
   ÚsrslyÚ
write_yamlr	   ÚosÚpathÚexists)Úlang_varÚ	variablesr   r   ÚprojectÚdr   s          Ú§C:\Users\johnn\AppData\Local\Packages\PythonSoftwareFoundation.Python.3.13_qbz5n2kfra8p0\LocalCache\local-packages\Python313\site-packages\weasel/tests/cli/test_cli.pyÚtest_issue11235r!      sÖ   € ð €HØ˜Ð"€IØÐ)=Ð(>Ñ?Ð@€HØÐ.Ð/€KØ#À{ÑS€GÜ	Œ˜1Ü×Ò˜˜]Ñ*¨GÔ4Ü! !Ó$ˆä�w‰w�~‰~˜a %™i×(Ñ(Ð(Ð(Ü�w‰w�~‰~˜a J¨fÐ"5Ñ5×6Ñ6Ð6Ñ6÷ 
ð ˆz‰?˜1Ñ˜hÑ'¨Ñ*°°x°jÐ.AÓAÐAÑA÷ 
�ús   ¡A:B<Â<
C
c            	      ó¦   • SS0/ SQSSSSS.S	S
SS	S.S.SSSSS./SSS/SS/S/S.SSS/SS./SS/S/S.S.n [        [        U 5      nU(       a   eg )NÚsome_varé   )ÚassetsÚconfigsÚcorpusÚscriptsÚtrainingr   Tzhttps://example.comÚ 63373dd656daa1fd3043ce166a59474c)ÚdestÚextraÚurlÚchecksumÚyzhttps://github.com/example/repoÚdevelop)ÚrepoÚbranchr   )r+   ÚgitÚzFÚtrainzTrain a modelz,python -m spacy train config.cfg -o trainingz
config.cfgzcorpus/training.spcyztraining/model-best)r   Úhelpr   ÚdepsÚoutputsÚtestÚpytestz	custom.py)r   r   Úno_skip)Úallr5   )r   r   r%   r   Ú	workflows)r   r   )ÚconfigÚerrorss     r    Ú#test_project_config_validation_fullr@       s»   € à˜RÐ ÚMð ØØ,Ø>ñ	ð à=Ø'Øññð ØØ,Ø>ñ	ð
ð0  Ø'ØIÐJØ%Ð'=Ð>Ø1Ð2ñð ¨°+Ð'>È4ÑPð	
ð & vÐ.¸'¸ÑCñG$€FôJ Ô)¨6Ó2€FÞÐˆ:ˆvó    r>   r   r   Úa)r   r=   ÚbÚcc                 ó‚   • [         R                  " [        5         [        U 5        S S S 5        g ! , (       d  f       g = f©N)r:   ÚraisesÚ
SystemExitr   )r>   s    r    Útest_project_config_validation1rI   J   s$   € ô 
�Š”zÕ	"Ü! &Ô)÷ 
#×	"Ö	"ús   ›0°
>zconfig,n_errorsé   r6   z...)r   r,   r,   é   é{   )r   r7   c                 óF   • [        [        U 5      n[        U5      U:X  d   eg rF   )r   r   Úlen)r>   Ún_errorsr?   s      r    Útest_project_config_validation2rP   W   s#   € ô Ô)¨6Ó2€FÜˆv‹;˜(Ó"Ð"Ñ"rA   zparent,child,expected))ú/tmprQ   T)rQ   Ú/F)rQ   z/tmp/subdirT)rQ   z/tmpdirF)rQ   z/tmp/subdir/..T)rQ   z/tmp/..Fc                 ó&   • [        X5      U:X  d   eg rF   )r   )ÚparentÚchildÚexpecteds      r    Útest_is_subpath_ofrW   f   s   € ô ˜Ó'¨8Ó3Ð3Ñ3rA   c            	      ó.  • [        5        n [        S5      nSn[        U5       GHû  u  p4US:”  a  [        R                  " S5        U S3nU S-  U-  nUR
                  R                  5       (       d  UR
                  R                  SS9  UR                  S	S
9 nUR                  U5        S S S 5        [        U S-  [        U S-  5      5      nUR                  USU5        UR                  5         UR                  USUS9  UR                  SS
9 nUR                  5       U:X  d   e S S S 5        UR                  5         UR                  USS9  UR                  SS
9 nUR                  5       U:X  d   e S S S 5        UR                  5         UR                  XS9  UR                  SS
9 nUR                  5       U:X  d   e S S S 5        UR                  5         UR                  U5        UR                  SS
9 nUR                  5       U:X  d   e S S S 5        GMþ     S S S 5        g ! , (       d  f       GNˆ= f! , (       d  f       GN= f! , (       d  f       NÞ= f! , (       d  f       N¡= f! , (       d  f       GM_  = f! , (       d  f       g = f)Núa.txt)ÚaaaaÚccccÚbbbbr   rJ   z contentÚrootT)ÚparentsÚw)ÚmodeÚremoterZ   )Úcommand_hashÚcontent_hashÚr©rb   )rc   )r
   r   Ú	enumerateÚtimeÚsleeprT   r   ÚmkdirÚopenÚwriter   ÚstrÚpushÚunlinkÚpullÚread)	r   ÚfilenameÚcontent_hashesÚirc   ÚcontentÚloc_fileÚfile_ra   s	            r    Útest_local_remote_storagerw   u   s  € Ü	Œ˜1Ü˜“=ˆà1ˆÜ(¨×8‰OˆAà�1‹uÜ—
’
˜1”Ø%˜ hÐ/ˆGØ˜6‘z HÑ,ˆHØ—?‘?×)Ñ)×+Ñ+Ø—‘×%Ñ%¨dÐ%Ñ3Ø—‘ C�Ñ(¨EØ—‘˜GÔ$÷ )ô # 1 v¡:¬s°1°x±<Ó/@ÓAˆFØ�K‰K˜ &¨,Ô7ð �O‰OÔØ�K‰K˜¨vÀLˆKÑQØ—‘ C�Ñ(¨EØ—z‘z“| wÓ.Ð.Ñ.÷ )ð �O‰OÔØ�K‰K˜¨vˆKÑ6Ø—‘ C�Ñ(¨EØ—z‘z“| wÓ.Ð.Ñ.÷ )ð �O‰OÔØ�K‰K˜ˆKÑ<Ø—‘ C�Ñ(¨EØ—z‘z“| wÓ.Ð.Ñ.÷ )ð �O‰OÔØ�K‰K˜Ô!Ø—‘ C�Ñ(¨EØ—z‘z“| wÓ.Ð.Ñ.÷ )Ò(ñI  9÷	 
ˆ÷ )Ö(ú÷ )Ö(ú÷ )Õ(ú÷ )Õ(ú÷ )×(ú÷Q 
�ús…   ‹BJÂH-Â,A&JÄH?Ä*7JÅ!IÅ96JÆ/I"Ç8JÇ?I3ÈJÈ-
H<È7JÈ?
IÉ	JÉ
IÉJÉ"
I0É,JÉ3
JÉ=	JÊ
Jc                  óè   • [        5        n [        S5      n[        U S-  [        U S-  5      5      nUR	                  USS9b   eUR	                  U5      b   e S S S 5        g ! , (       d  f       g = f)NrY   r]   ra   rZ   re   )r
   r   r   rl   ro   )r   rq   ra   s      r    Ú&test_local_remote_storage_pull_missingry   ¢   sc   € ä	Œ˜1Ü˜“=ˆÜ˜q 6™z¬3¨q°8©|Ó+<Ó=ˆØ�{‰{˜8°&ˆ{Ð9ÑAÐAÐAØ�{‰{˜8Ó$Ñ,Ð,Ñ,÷	 
�Žús   ‹AA#Á#
A1c                  ó¾   • [        5        n [        SSU S-  SS9  [        R                  R	                  U S-  5      (       d   e S S S 5        g ! , (       d  f       g = f)Nú,https://github.com/explosion/os-signpost.gitÚos_signpostÚsignpostúv0.0.3©r2   )r
   r   r   r   Úisdir©r   s    r    Útest_project_git_dir_assetr‚   «   sJ   € Ü	Œ˜1äØ:ØØ�
‰NØò		
ô �w‰w�}‰}˜Q ™^×,Ñ,Ð,Ñ,÷ 
�Žúó   ‹9AÁ
AéB   c                  ó¾   • [        5        n [        SSU S-  SS9  [        R                  R	                  U S-  5      (       d   e S S S 5        g ! , (       d  f       g = f)Nr{   z	README.mdz	readme.mdr~   r   )r
   r   r   r   Úisfiler�   s    r    Útest_project_git_file_assetr‡   ·   sJ   € ä	Œ˜1äØ:ØØ�‰OØò		
ô �w‰w�~‰~˜a +™o×.Ñ.Ð.Ñ.÷ 
�Žúrƒ   )r   rg   Úpathlibr   r:   r   Úweasel.cli.remote_storager   Úweasel.schemasr   r   Úweasel.utilr   r   r	   r
   r   r!   r@   ÚmarkÚparametrizerI   rP   rW   rw   ry   r‚   Úissuer‡   © rA   r    Ú<module>r�      sƒ  ðÛ 	Û Ý ã Û å 3ß 8ß VÓ VÝ 1òBò$'ðT ‡�×ÑØà	�v˜s�m f¨c ]Ð3Ð4Ø˜s�m�_°C¸°9Ñ=Ø˜s�m�_°C¸#¸°<Ñ@ðóñ*óð*ð
 ‡�×ÑØà
�s˜B�iÐ	  !Ð$Ø
˜ �Ð'Ð	(¨!Ð,Ø
 ¨cÑ2Ð3Ð	4°aÐ8Ø
˜ �~Ð&Ð	'¨Ð+Ø
 ¨c¨UÑ3Ð4Ð	5°qÐ9ðó	ñ#ó	ð#ð
 ‡�×ÑØòó
ñ4ó
ð4ò*/òZ-ò	-ð ‡�×Ñ�2Óñ	/ó ñ	/rA   