ó
    Î’ŒjúH  ã                   ób  • S SK r S SKJr  S SKJrJr  S SKrS SKJr  S SK	J
r
  S SKJrJrJr  S SKJrJrJrJr  S SKJrJr  S S	KJr  S S
KJrJrJrJr  SSKJr  Sr Sr!Sr"Sr#\RH                  " S5      S 5       r%\ RL                  RO                  S5      S 5       r(S r)S r*S r+S r,S r-\ RL                  R]                  S\"\#/5      S 5       r/S r0S r1S r2S r3S  r4\ RL                  Rk                  S!5      S" 5       r6S# r7S$ r8S% r9\ RL                  R]                  S\"\#/5      S& 5       r:S' r;S( r<g))é    N)ÚRegistryError)ÚConfigÚConfigValidationError)ÚGerman)ÚEnglish)ÚDEFAULT_CONFIGÚDEFAULT_CONFIG_PRETRAIN_PATHÚLanguage)ÚMaxoutWindowEncoderÚMultiHashEmbedÚbuild_tb_parser_modelÚbuild_Tok2Vec_model)ÚConfigSchemaÚConfigSchemaPretrain)ÚExample)Úload_configÚload_config_from_strÚload_model_from_configÚregistryé   )Úmake_tempdira  
[paths]
train = null
dev = null

[corpora]

[corpora.train]
@readers = "spacy.Corpus.v1"
path = ${paths.train}

[corpora.dev]
@readers = "spacy.Corpus.v1"
path = ${paths.dev}

[training]

[training.batcher]
@batchers = "spacy.batch_by_words.v1"
size = 666

[nlp]
lang = "en"
pipeline = ["tok2vec", "tagger"]

[components]

[components.tok2vec]
factory = "tok2vec"

[components.tok2vec.model]
@architectures = "spacy.HashEmbedCNN.v1"
pretrained_vectors = null
width = 342
depth = 4
window_size = 1
embed_size = 2000
maxout_pieces = 3
subword_features = true

[components.tagger]
factory = "tagger"

[components.tagger.model]
@architectures = "spacy.Tagger.v2"

[components.tagger.model.tok2vec]
@architectures = "spacy.Tok2VecListener.v1"
width = ${components.tok2vec.model.width}
a  
[paths]
train = null
dev = null

[corpora]

[corpora.train]
@readers = "spacy.Corpus.v1"
path = ${paths.train}

[corpora.dev]
@readers = "spacy.Corpus.v1"
path = ${paths.dev}

[training]

[training.batcher]
@batchers = "spacy.batch_by_words.v1"
size = 666

[nlp]
lang = "en"
pipeline = ["tok2vec", "tagger"]

[components]

[components.tok2vec]
factory = "tok2vec"

[components.tok2vec.model]
@architectures = "spacy.HashEmbedCNN.v1"
pretrained_vectors = null
width = 342
depth = 4
window_size = 1
embed_size = 2000
maxout_pieces = 3
subword_features = true

[components.tagger]
factory = "tagger"

[components.tagger.model]
@architectures = "spacy.Tagger.v2"

[components.tagger.model.tok2vec]
@architectures = "spacy.Tok2VecListener.v1"
width = ${components.tok2vec.model.width}

[pretraining]
aX  
[model]
@architectures = "spacy.TransitionBasedParser.v2"
state_type = "parser"
extra_state_tokens = false
hidden_width = 66
maxout_pieces = 2
use_upper = true

[model.tok2vec]
@architectures = "spacy.HashEmbedCNN.v1"
pretrained_vectors = null
width = 333
depth = 4
embed_size = 5555
window_size = 1
maxout_pieces = 7
subword_features = false
aY  
[model]
@architectures = "spacy.TransitionBasedParser.v2"
state_type = "parser"
extra_state_tokens = false
hidden_width = 66
maxout_pieces = 2
use_upper = false

[model.tok2vec]
@architectures = "spacy.HashEmbedCNN.v1"
pretrained_vectors = null
width = 333
depth = 4
embed_size = 5555
window_size = 1
maxout_pieces = 7
subword_features = false
Úmy_test_parserc            
      ój   • [        [        SSS/SS/SS9[        SSSS	S
95      n [        U SSSSSS9nU$ )NiA  ÚLOWERÚSHAPEi8  F)ÚwidthÚattrsÚrowsÚinclude_static_vectorsé   é   r   )r   Úwindow_sizeÚmaxout_piecesÚdepthÚparserTéA   é   )Útok2vecÚ
state_typeÚextra_state_tokensÚhidden_widthr#   Ú	use_upper)r   r   r   r   )r(   r%   s     Ú¹C:\Users\johnn\AppData\Local\Packages\PythonSoftwareFoundation.Python.3.13_qbz5n2kfra8p0\LocalCache\local-packages\Python313\site-packages\spacy/tests/serialize/test_serialize_config.pyÚ	my_parserr.   ­   s^   € ä!ÜØØ˜GÐ$Ø˜�Ø#(ñ		
ô 	 #°1ÀAÈQÑOó€Gô #ØØØØØØñ€Fð €Mó    iþ  c                  ó  • SS0SS0S.n [         R                  " U 5      n[        5        nUS-  nUR                  U5        [        R
                  " USSS00S	9nUR                  S   S   S:X  d   e S
S
S
5        g
! , (       d  f       g
= f)z?Test that config overrides are not lost after load is complete.ÚlangÚenÚkeyÚvalue)ÚnlpÚcustomÚ
test_modelr6   Úupdated_value©ÚconfigN)r   Úfrom_configr   Úto_diskÚspacyÚloadr:   )Ú
source_cfgÚ
source_nlpÚdir_pathÚsource_pathr5   s        r-   Útest_issue8190rC   Ã   s�   € ð
 �Dð
ð ˜'Ð"ñ	€Jô ×$Ò$ ZÓ0€JÜ	Œ˜8à Ñ-ˆØ×Ñ˜;Ô'Ü�jŠj˜¨h¸ÀÐ8PÐ-QÑRˆà�z‰z˜(Ñ# EÑ*¨oÓ=Ð=Ñ=÷ 
�Žús   ªAA<Á<
B
c                  ó¸  • [        5       R                  [        5      n [        R                  " [
        5         [        U SS9  S S S 5        [        U SS9nUR                  S   S   S   S:X  d   e[        UR                  S   5      S:”  d   eUR                  S	S
/:X  d   e[        UR                  S   5      S:X  d   e[        UR                  S   S   5      S:X  d   eUR                  S
5        [        UR                  S   5      S:X  d   e[        UR                  S   S   5      S:X  d   e[        R                  " [        5         S0 0n[        [        U5      SS9  S S S 5        [        R                  " [        5         SSS00n[        [        U5      SS9  S S S 5        g ! , (       d  f       GNl= f! , (       d  f       N]= f! , (       d  f       g = f)NF©Ú	auto_fillTÚtrainingÚbatcherÚsizeiš  é   r(   ÚtaggerÚ
componentsr   r5   ÚpipelineÚyoloÚfooÚbar)r   Úfrom_strÚnlp_config_stringÚpytestÚraisesr   r   r:   ÚlenÚ
pipe_namesÚremove_pipeÚ
ValueError)r:   r5   Úbad_cfgs      r-   Útest_create_nlp_from_configrZ   Ö   sŒ  € Ü‹X×ÑÔ0Ó1€FÜ	�ŠÔ,Õ	-Ü˜v°Ò7÷ 
.ä
  °4Ñ
8€CØ�:‰:�jÑ! )Ñ,¨VÑ4¸Ó;Ð;Ð;Üˆs�z‰z˜*Ñ%Ó&¨Ó*Ð*Ð*Ø�>‰>˜i¨Ð2Ó2Ð2Ð2Üˆs�z‰z˜,Ñ'Ó(¨AÓ-Ð-Ð-Üˆs�z‰z˜%Ñ  Ñ,Ó-°Ó2Ð2Ð2Ø‡O�O�HÔÜˆs�z‰z˜,Ñ'Ó(¨AÓ-Ð-Ð-Üˆs�z‰z˜%Ñ  Ñ,Ó-°Ó2Ð2Ð2Ü	�Š”zÕ	"Ø˜2�,ˆÜœv g›¸$Ò?÷ 
#ô 
�Š”zÕ	"Ø  u˜~Ð.ˆÜœv g›¸$Ò?÷ 
#Ð	"÷ 
.Ö	-ú÷ 
#Õ	"ú÷ 
#Õ	"ús#   ¸F(ÅF:ÆGÆ(
F7Æ:
GÇ
Gc                  ó¶   • [        5       R                  [        5      n [        [        5      nU R                  U5      n[        R                  " US   [        S9  g)z;Test that the default pretraining config validates properlyÚpretraining)ÚschemaN)	r   rQ   Úpretrain_config_stringr   r	   Úmerger   Úresolver   )r:   Úpretrain_configÚfilleds      r-   Ú'test_create_nlp_from_pretraining_configrc   ë   sD   € ä‹X×ÑÔ5Ó6€FÜ!Ô">Ó?€OØ�\‰\˜/Ó*€FÜ×Ò�V˜MÑ*Ô3GÓHr/   c                  óp  • [        5       R                  [        5      n U S   S   U S   S   U S   S   S.U S'   [        U S   R	                  5       5      U S   S'   [        U SS9nUR                  / SQ:X  d   eUR                  S	5      R                  S:X  d   eUR                  S
5      R                  S:X  d   eUR                  S5      R                  S:X  d   eUR                  S   n[        U5      S:X  d   e[        UR	                  5       5      / SQ:X  d   eUR                  S   S   / SQ:X  d   eg)ziTest that the nlp object is created correctly for a config with multiple
instances of the same component.rL   r(   rK   )Út2vÚtagger1Útagger2r5   rM   TrE   re   rf   rg   r    N)r   rQ   rR   ÚlistÚkeysr   rV   Úget_pipe_metaÚfactoryr:   rU   )r:   r5   Úpipeline_configs      r-   Ú.test_create_nlp_from_config_multiple_instancesrm   ó   sD  € ô ‹X×ÑÔ0Ó1€Fà�lÑ# IÑ.Ø˜,Ñ'¨Ñ1Ø˜,Ñ'¨Ñ1ñ€Fˆ<Ñô
 !% V¨LÑ%9×%>Ñ%>Ó%@Ó A€Fˆ5�M�*ÑÜ
  °4Ñ
8€CØ�>‰>Ò:Ó:Ð:Ð:Ø×Ñ˜UÓ#×+Ñ+¨yÓ8Ð8Ð8Ø×Ñ˜YÓ'×/Ñ/°8Ó;Ð;Ð;Ø×Ñ˜YÓ'×/Ñ/°8Ó;Ð;Ð;Ø—j‘j Ñ.€OÜˆÓ 1Ó$Ð$Ð$Ü�×$Ñ$Ó&Ó'Ò+HÓHÐHÐHØ�:‰:�eÑ˜ZÑ(Ò,IÓIÐIÑIr/   c                  ó  • [        5       R                  [        5      n [        U SS9nUR	                  S5      R                  S5        UR                  5         SUR                  ;   d   eSUR                  ;   d   eSUR                  ;  d   eUR	                  S5      R                  R                  S5      R                  S5      S:X  d   e[        5        nUR                  U5        [        R                  " U5      nSUR                  ;   d   eSUR                  ;   d   eSUR                  ;  d   eUR	                  S5      R                  R                  S5      R                  S5      S:X  d   e S	S	S	5        g	! , (       d  f       g	= f)
zNCreate a custom nlp pipeline from config and ensure it serializes it correctlyTrE   rK   ÚAr(   r%   ÚnOéV  N)r   rQ   rR   r   Úget_pipeÚ	add_labelÚ
initializerV   ÚmodelÚget_refÚget_dimr   r<   r=   r>   )Ú
nlp_configr5   ÚdÚnlp2s       r-   Útest_serialize_nlpr{     s>  € ä“×"Ñ"Ô#4Ó5€JÜ
  °tÑ
<€CØ‡L�L�Ó×$Ñ$ SÔ)Ø‡N�NÔØ˜Ÿ™Ó&Ð&Ð&Ø�s—~‘~Ó%Ð%Ð%Ø˜3Ÿ>™>Ó)Ð)Ð)Ø�<‰<˜Ó!×'Ñ'×/Ñ/°	Ó:×BÑBÀ4ÓHÈCÓOÐOÐOä	Œ˜1Ø�‰�AŒÜ�zŠz˜!‹}ˆØ˜DŸO™OÓ+Ð+Ð+Ø˜4Ÿ?™?Ó*Ð*Ð*Ø˜tŸ™Ó.Ð.Ð.Ø�}‰}˜XÓ&×,Ñ,×4Ñ4°YÓ?×GÑGÈÓMÐQTÓTÐTÑT÷ 
�Žús   ÃBE>Å>
Fc                  ó  • [        5       n [        5       nSS0US'   U R                  SUS9  U R                  5         [	        5        nU R                  U5        [        R                  " U5      nUR                  S5      R                  nUR                  S5        UR                  S5      R                  S5      S	:X  d   eUR                  S
5      R                  S5      S	:X  d   e SSS5        g! , (       d  f       g= f)zBCreate a custom nlp pipeline and ensure it serializes it correctlyz@architecturesr   ru   r%   r9   r(   ÚupperÚnIr&   ÚlowerN)r   ÚdictÚadd_pipert   r   r<   r=   r>   rr   ru   rv   rw   )r5   Ú
parser_cfgry   rz   ru   s        r-   Útest_serialize_custom_nlprƒ     sÇ   € ä
‹)€CÜ“€JØ+Ð-=Ð>€JˆwÑØ‡L�L� *€LÑ-Ø‡N�NÔä	Œ˜1Ø�‰�AŒÜ�zŠz˜!‹}ˆØ—‘˜hÓ'×-Ñ-ˆØ�‰�iÔ à�}‰}˜WÓ%×-Ñ-¨dÓ3°rÓ9Ð9Ð9Ø�}‰}˜WÓ%×-Ñ-¨dÓ3°rÓ9Ð9Ñ9÷ 
�Žús   ÁB C0Ã0
C>Úparser_config_stringc                 ó\  • [        5       n[        5       R                  U 5      nUR                  SUS9nUR	                  S5        UR                  5         [        5        nUR                  U5        [        R                  " U5      nUR                  S5      R                  nUR                  S5        UR                  S   (       a&  UR                  S5      R                  S5      S:X  d   eUR                  S	5      R                  S5      S:X  d   e S
S
S
5        g
! , (       d  f       g
= f)zGCreate a non-default parser config to check nlp serializes it correctlyr%   r9   Únsubjr(   Ú	has_upperr}   r~   éB   r   N)r   r   rQ   r�   rs   rt   r   r<   r=   r>   rr   ru   rv   r   rw   )r„   r5   Úmodel_configr%   ry   rz   ru   s          r-   Útest_serialize_parserrŠ   .  sá   € ô
 ‹)€CÜ“8×$Ñ$Ð%9Ó:€LØ�\‰\˜(¨<ˆ\Ð8€FØ
×Ñ�WÔØ‡N�NÔä	Œ˜1Ø�‰�AŒÜ�zŠz˜!‹}ˆØ—‘˜hÓ'×-Ñ-ˆØ�‰�iÔ à�;‰;�{×#Ø—=‘= Ó)×1Ñ1°$Ó7¸2Ó=Ð=Ð=Ø�}‰}˜WÓ%×-Ñ-¨dÓ3°rÓ9Ð9Ñ9÷ 
�Žús   ÁB4DÄ
D+c                  óœ  • [        5       n U R                  S5        U R                  S5        [        U R                  SS9nUR                  U R                  :X  d   eUR                  U R                  :X  d   eUR
                  U R
                  :X  d   eUR                  U R                  :X  d   eUR                  U R                  :X  d   eg)zPTest that a config produced by the nlp object passes training config
validation.Úentity_rulerÚnerFrE   N)r   r�   r   r:   rV   Ú_pipe_configsÚ
_pipe_metaÚ_factory_meta)r5   Únew_nlps     r-   Útest_config_nlp_roundtripr’   D  s­   € ô ‹)€CØ‡L�L�Ô Ø‡L�L�ÔÜ$ S§Z¡Z¸5ÑA€GØ�>‰>˜SŸZ™ZÓ'Ð'Ð'Ø×Ñ §¡Ó/Ð/Ð/Ø× Ñ  C×$5Ñ$5Ó5Ð5Ð5Ø×Ñ §¡Ó/Ð/Ð/Ø× Ñ  C×$5Ñ$5Ó5Ð5Ñ5r/   c                  ó„  • [        5       n U R                  5       n[        5       R                  U5      nUR                  U R                  :X  d   e[        5       n [	        5        nU R                  U5        [        R                  " U5      nSSS5        UR                  U R                  :X  d   eg! , (       d  f       N+= f)zMTest that the config is serialized correctly and not interpolated
by mistake.N)r   Úto_bytesÚ
from_bytesr:   r   r<   r=   r>   )r5   Ú	nlp_bytesr‘   ry   s       r-   Ú$test_config_nlp_roundtrip_bytes_diskr—   R  s‰   € ô ‹)€CØ—‘“€IÜ‹i×"Ñ" 9Ó-€GØ�>‰>˜SŸZ™ZÓ'Ð'Ð'Ü
‹)€CÜ	Œ˜1Ø�‰�AŒÜ—*’*˜Q“-ˆ÷ 
ð �>‰>˜SŸZ™ZÓ'Ð'Ñ'÷ 
�ús   Á$(B1Â1
B?c                  óÖ  • Sn [         R                  " U SS0S9S[        S[        S[        4S j5       n[        5       nUR                  U 5      (       a   e[        5       nUR                  U 5      (       d   eUR                  U SS0S	S
9  UR                  S   S	   nUS   S:X  d   eUS   U :X  d   e[        5        nUR                  U5        [        R                  " U5      nSSS5        WR                  U 5      (       d   eUR                  S	/:X  d   eUR                  S	5      R                  U :X  d   eUR                  S   S	   nUS   S:X  d   eUS   U :X  d   e[        5       R                  UR                  R!                  5       5      nSUS   S'   ["        R$                  " [&        5         [)        U5        SSS5        g! , (       d  f       Nê= f! , (       d  f       g= f)zRTest that config serialization works as expected with language-specific
factories.Ú'test_serialize_config_language_specificrO   é   )Údefault_configr5   Únamec                 ó   • S $ )Nc                 ó   • U $ ©N© )Údocs    r-   Ú<lambda>ÚQtest_serialize_config_language_specific.<locals>.custom_factory.<locals>.<lambda>g  s   € ™3r/   r    )r5   rœ   rO   s      r-   Úcustom_factoryÚ?test_serialize_config_language_specific.<locals>.custom_factorye  s   € áÐr/   éd   rP   )r:   rœ   rL   rk   NÚder1   )r   rk   r
   ÚstrÚintÚhas_factoryr�   r:   r   r<   r=   r>   rV   rj   r   rQ   Úto_strrS   rT   rX   r   )rœ   r¤   r5   Úpipe_configry   rz   r:   s          r-   r™   r™   `  sË  € ð 5€Dä‡_‚_�T¨5°"¨+Ñ6ðœHð ¬Cð ´có ó 7ðô ‹*€CØ�‰˜t×$Ñ$Ð$Ð$Ü
‹)€CØ�?‰?˜4× Ñ Ð Ð Ø‡L�L�˜u c˜l°€LÑ7Ø—*‘*˜\Ñ*¨5Ñ1€KØ�uÑ Ó$Ð$Ð$Ø�yÑ! TÓ)Ð)Ð)ä	Œ˜1Ø�‰�AŒÜ�zŠz˜!‹}ˆ÷ 
ð ×Ñ˜D×!Ñ!Ð!Ð!Ø�?‰?˜u˜gÓ%Ð%Ð%Ø×Ñ˜eÓ$×,Ñ,°Ó4Ð4Ð4Ø—+‘+˜lÑ+¨EÑ2€KØ�uÑ Ó$Ð$Ð$Ø�yÑ! TÓ)Ð)Ð)ä‹X×Ñ˜tŸ{™{×1Ñ1Ó3Ó4€FØ €Fˆ5�M�&ÑÜ	�Š”zÕ	"ä˜vÔ&÷ 
#Ð	"÷ 
�ú÷ 
#Õ	"ús   Â=(G	Æ4GÇ	
GÇ
G(c                  ó  • [        5       R                  [        5      n U S   R                  S5        SU S   S   ;   d   eSU S   ;  d   e[        R
                  " [        5         [        U SS9  S S S 5        g ! , (       d  f       g = f)NrL   r(   r5   rM   TrE   )r   rQ   rR   ÚpoprS   rT   rX   r   r9   s    r-   Ú#test_serialize_config_missing_pipesr¯   ƒ  st   € Ü‹X×ÑÔ0Ó1€FØ
ˆ<Ñ×Ñ˜YÔ'Ø˜˜u™ jÑ1Ó1Ð1Ð1Ø˜F <Ñ0Ó0Ð0Ð0Ü	�Š”zÕ	"Ü˜v°Ò6÷ 
#×	"Ö	"ús   Á%A9Á9
Bc                  ó  • SSS/S.0n SS/S.n[        5       R                  [        US9n[        USS9n[	        U[
        5      (       d   eUR                  S/:X  d   e[        5       R                  [        5      n[        USS9n[	        U[        5      (       d   eUR                  S	S/:X  d   e[        5        nUR                  U5        [        R                  " X`S
9nS S S 5        [	        U[
        5      (       d   eUR                  S/:X  d   e[        5        nUR                  U5        [        R                  " XaS
9nS S S 5        [	        U[
        5      (       d   eUR                  S/:X  d   e[        5        nUR                  U5        [        R                  " U5      nS S S 5        [	        U[        5      (       d   eUR                  S	S/:X  d   eg ! , (       d  f       GN= f! , (       d  f       N°= f! , (       d  f       N]= f)Nr5   r§   rK   )r1   rM   )znlp.langznlp.pipeline)Ú	overridesTrE   r(   r9   )r   rQ   rR   r   Ú
isinstancer   rV   r   r   r<   r=   r>   )Úoverrides_nestedÚoverrides_dotr:   r5   Úbase_configÚbase_nlpry   s          r-   Útest_config_overridesr·   Œ  sÃ  € Ø¨¸8¸*ÑEÐFÐØ!%¸°zÑB€Mä‹X×ÑÔ0¸MÐÐJ€FÜ
  °4Ñ
8€CÜ�cœ6×"Ñ"Ð"Ð"Ø�>‰>˜h˜ZÓ'Ð'Ð'ä“(×#Ñ#Ô$5Ó6€KÜ% k¸TÑB€HÜ�h¤×(Ñ(Ð(Ð(Ø×Ñ 9¨hÐ"7Ó7Ð7Ð7Ü	Œ˜1Ø×Ñ˜ÔÜ�jŠj˜Ñ4ˆ÷ 
ô �cœ6×"Ñ"Ð"Ð"Ø�>‰>˜h˜ZÓ'Ð'Ð'Ü	Œ˜1Ø×Ñ˜ÔÜ�jŠj˜Ñ1ˆ÷ 
ô �cœ6×"Ñ"Ð"Ð"Ø�>‰>˜h˜ZÓ'Ð'Ð'Ü	Œ˜1Ø×Ñ˜ÔÜ�jŠj˜‹mˆ÷ 
ô �cœ7×#Ñ#Ð#Ð#Ø�>‰>˜i¨Ð2Ó2Ð2Ñ2÷ 
Žú÷
 
�ú÷
 
�ús$   Â;&GÄ&G-Å?(G>Ç
G*Ç-
G;Ç>
Hzignore:\[W036c            
      ól  • [         R                  " S5      n U R                  S5        [        5        nU R	                  U5        [         R
                  " USSSSS0000S9nUR                  S   S   S   S   S:X  d   e[        R                  " S5      S	 5       n[         R
                  " USSSS
SS0S.000S9nUR                  S   S   S   S   SS0:X  d   e[        R                  " UR                  S5      0 5      nUR                  U/5      nSU;   d   e S S S 5        g ! , (       d  f       g = f)Nr2   Úattribute_rulerrL   Úscorerú@scorerszspacy.tagger_scorer.v1r9   Útest_some_other_keyc                  ó   • g)NÚsome_other_keyr    r    r/   r-   Úmisc_some_other_keyÚGtest_config_overrides_registered_functions.<locals>.misc_some_other_key¿  s   € à#r/   z)spacy.overlapping_labeled_spans_scorer.v1ú@misc)r»   Ú	spans_keyrÂ   za b cÚspans_some_other_key_f)r=   Úblankr�   r   r<   r>   r:   r   Úmiscr   Ú	from_dictÚmake_docÚevaluate)r5   ry   Únlp_re1r¿   Únlp_re2ÚexampleÚscoress          r-   Ú*test_config_overrides_registered_functionsrÍ   ª  sm  € ä
�+Š+�dÓ
€CØ‡L�LÐ"Ô#Ü	Œ˜1Ø�‰�AŒÜ—*’*ØàØ%Ø  :Ð/GÐ"Hð(ððñ	
ˆð �N‰N˜<Ñ(Ð):Ñ;¸HÑEÀjÑQØ'ó(ð	
ð(ô 
�ŠÐ,Ó	-ñ	$ó 
.ð	$ô —*’*ØàØ%Ø Ø(SØ*1Ð3HÐ)Iñ#ð(ðð	ñ
ˆð �~‰~˜lÑ+Ð,=Ñ>¸xÑHØñ
àÐ,Ð-ó.ð 	.ð .ô ×#Ò# G×$4Ñ$4°WÓ$=¸rÓBˆØ×!Ñ! 7 )Ó,ˆØ'¨6Ó1Ð1Ñ1÷U 
�Žús   ²C)D%Ä%
D3c                  óŒ  • [        5       R                  [        SS9n U S   S   S   S:X  d   eU R                  5       nUS   S   S   b   e[        R
                  " U 5      nUR                  S   S   S   S:X  d   eSnU S   S	   S
   S   S   U:X  d   eUR                  S   S	   S
   S   S   U:X  d   eUR                  R                  5       nUS   S   S   b   eUS   S	   S
   S   S   S:X  d   e[        R
                  " U5      nUR                  S   S   S   b   eUR                  S   S	   S
   S   S   S:X  d   eg )NF)ÚinterpolateÚcorporaÚtrainÚpathz${paths.train}z!${components.tok2vec.model.width}rL   rK   ru   r(   r   rq   )r   rQ   rR   rÏ   r   r;   r:   )r:   Úinterpolatedr5   r   Úinterpolated2rz   s         r-   Útest_config_interpolationrÕ   Û  s™  € Ü‹X×ÑÔ0¸eÐÐD€FØ�)Ñ˜WÑ% fÑ-Ð1AÓAÐAÐAØ×%Ñ%Ó'€LØ˜	Ñ" 7Ñ+¨FÑ3Ñ;Ð;Ð;Ü
×
Ò
˜fÓ
%€CØ�:‰:�iÑ  Ñ)¨&Ñ1Ð5EÓEÐEÐEà/€EØ�,Ñ Ñ)¨'Ñ2°9Ñ=¸gÑFÈ%ÓOÐOÐOØ�:‰:�lÑ# HÑ-¨gÑ6°yÑAÀ'ÑJÈeÓSÐSÐSØ—J‘J×*Ñ*Ó,€MØ˜Ñ# GÑ,¨VÑ4Ñ<Ð<Ð<Ø˜Ñ& xÑ0°Ñ9¸)ÑDÀWÑMÐQTÓTÐTÐTÜ×Ò˜|Ó,€DØ�;‰;�yÑ! 'Ñ*¨6Ñ2Ñ:Ð:Ð:Ø�;‰;�|Ñ$ XÑ.¨wÑ7¸	ÑBÀ7ÑKÈsÓRÐRÑRr/   c                  ó  • [        5       R                  [        5      n [        R                  " U 5      n SU ;  d   e[
        R                  " U [        SS9n[        5       R                  UR                  5       5      nUS   0 :X  d   eg )Nr\   F)r]   Úvalidate)	r   rQ   rR   r   r_   r   Úfillr   r«   )r:   rb   Ú
new_configs      r-   Útest_config_optional_sectionsrÚ   î  sr   € Ü‹X×ÑÔ0Ó1€FÜ×!Ò! &Ó)€FØ Ó&Ð&Ð&Ü�]Š]˜6¬,ÀÑG€Fô
 “×"Ñ" 6§=¡=£?Ó3€JØ�mÑ$¨Ó*Ð*Ñ*r/   c                  óÔ   • [        SS00 S.5      n [        U SS9(       d   e[        SS0SS0S.5      n [        U SSS	9nSUR                  S
   ;  d   e[        UR                  5        g )Nr1   r2   )r5   rG   TrE   ÚextraÚhelloF)rF   r×   rG   )r   r   r:   )r:   r5   s     r-   Ú"test_config_auto_fill_extra_fieldsrÞ   û  sn   € Ü˜V T˜N¸Ñ;Ó<€FÜ! &°D×9Ð9Ð9Ü˜V T˜N¸À'Ð8JÑKÓL€FÜ
  °4À%Ñ
H€CØ˜#Ÿ*™* ZÑ0Ó0Ð0Ð0ä˜3Ÿ:™:Õ&r/   c                 ó  • [        5       n[        5       R                  U 5      nSUS   S'   [        R                  " [
        5         UR                  SUS9  S S S 5        SUS   S'   UR                  SUS9  g ! , (       d  f       N'= f)NÚnonsenseru   r)   r%   r9   r�   )r   r   rQ   rS   rT   r   r�   )r„   r5   r:   s      r-   Útest_config_validate_literalrá     su   € ô ‹)€CÜ‹X×ÑÐ3Ó4€FØ$.€Fˆ7�O�LÑ!Ü	�ŠÔ,Õ	-Ø�‰�X fˆÑ-÷ 
.à$)€Fˆ7�O�LÑ!Ø‡L�L� &€LÒ)÷ 
.Õ	-ús   ÁA8Á8
Bc                  ó8  • [        5       n U R                  nSS0US   S'   SS0US   S'   [        USS9n [        R                  " [
        5         U R                  5         S	S	S	5        S	U R                  S   S'   U R                  5         g	! , (       d  f       N1= f)
z¹Test that only the relevant blocks are resolved in the different methods
and that invalid blocks are ignored if needed. For instance, the [initialize]
shouldn't be resolved at runtime.
rÁ   ÚnonexistentrG   Úbefore_to_diskrt   ÚlookupsTrE   N)r   r:   r   rS   rT   r   rt   )r5   r:   s     r-   Ú(test_config_only_resolve_relevant_blocksræ     sŠ   € ô
 ‹)€CØ�Z‰Z€FØ,3°]Ð+C€Fˆ:ÑÐ'Ñ(Ø'.°Ð&>€Fˆ<Ñ˜Ñ#ä
  °4Ñ
8€Cä	�Š”}Õ	%Ø�‰Ô÷ 
&à*.€C‡J�Jˆ|Ñ˜YÑ'Ø‡N�NÕ÷ 
&Õ	%ús   ÁBÂ
Bc                  óî   • Sn [         R                  R                  S5       " S S[        5      5       n[        R
                  " [        U 5      5      nUR                  S5      R                  SS/:X  d   eg )NzÄ
    [nlp]
    lang = "en"
    pipeline = ["my_punctual_component"]

    [components]

    [components.my_punctual_component]
    factory = "my_punctual_component"
    punctuation = ["?","-"]
    Úmy_punctual_componentc                   ó   • \ rS rSrSrS rSrg)Ú2test_hyphen_in_config.<locals>.MyPunctualComponenti1  rè   c                 ó   • X0l         g rŸ   ©Úpunctuation)Úselfr5   rœ   rí   s       r-   Ú__init__Ú;test_hyphen_in_config.<locals>.MyPunctualComponent.__init__5  s
   € ð  +Õr/   rì   N)Ú__name__Ú
__module__Ú__qualname__Ú__firstlineno__rœ   rï   Ú__static_attributes__r    r/   r-   ÚMyPunctualComponentrê   1  s   † à&ˆõ	+r/   rö   Ú?Ú-)	r=   r
   rk   Úobjectr   r;   r   rr   rí   )Úhyphen_config_strrö   r5   s      r-   Útest_hyphen_in_configrû   $  sp   € ð
Ðô ‡^�^×ÑÐ3Ó4ô	+œfó 	+ó 5ð	+ô ×
Ò
Ô2Ð3DÓEÓ
F€CØ�<‰<Ð/Ó0×<Ñ<ÀÀcÀ
ÓJÐJÑJr/   )=rS   Ú	cataloguer   Ú	thinc.apir   r   r=   Úspacy.lang.der   Úspacy.lang.enr   Úspacy.languager   r	   r
   Úspacy.ml.modelsr   r   r   r   Úspacy.schemasr   r   Úspacy.trainingr   Ú
spacy.utilr   r   r   r   Úutilr   rR   r^   Úparser_config_string_upperÚparser_config_string_no_upperÚarchitecturesr.   ÚmarkÚissuerC   rZ   rc   rm   r{   rƒ   ÚparametrizerŠ   r’   r—   r™   r¯   r·   ÚfilterwarningsrÍ   rÕ   rÚ   rÞ   rá   ræ   rû   r    r/   r-   Ú<module>r     sx  ðÛ Ý #ß 3ã Ý  Ý !ß QÑ Q÷ó ÷ =Ý "÷ó õ  ð1Ð ðf3Ð ðlÐ ð*!Ð ð* 
×ÒÐ(Ó)ñó *ðð* ‡�×Ñ�4Óñ>ó ð>ò$@ò*IòJò*Uò(:ð$ ‡�×ÑØÐ7Ð9VÐWóñ:óð:ò&6ò(ò 'òF7ò3ð< ‡�×ÑÐ,Ó-ñ-2ó .ð-2ò`Sò&
+ò'ð ‡�×ÑØÐ7Ð9VÐWóñ*óð*òó$Kr/   