
    h;U                     <   S SK r S SKJr  S SKJrJ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  S SKJr  S S	KJr  S S
KJr  S SKJr  SSKJrJrJr  S r\ R:                  R=                  S/ SQ/ SQ/ SQ/5      S 5       r\ R:                  R@                  \ R:                  R=                  SS/5      \ R:                  R=                  SSSS/SS/SS.4SSS/SS/SS.4S SS!SSS".4S SS#SSS".4/5      \ R:                  R=                  S$S%S&S'S(SS).4S*S+S'S(SS).4S%S,S'S-S..4S*S/S'S-S..4/5      S0 5       5       5       5       r!S1 r"S2r#S3/ S4QS5S6S7.S8.4S9/ S:QS6S5S7.S8.4/r$\ R:                  R=                  S;S<5      S= 5       r%S> r&S? r'S@ r(SA r)SB r*SCr+SD r,SEr-SF r.SG r/SH r0g)I    N)assert_array_equal)Configget_current_ops)util)English)MaxoutWindowEncoderMultiHashEmbedbuild_Tok2Vec_model)Tok2VecTok2VecListener)Doc)Example)registry)Vocab   )add_vecs_to_vocab	get_batchmake_tempdirc            
         Sn Sn[        5       n[        U/ S9n[        [        U XX/S/ SQS9[	        U SSS	S
95      nUR                  5         UR                  U/5      u  pV[        U5      S:X  d   eUS   R                  SU 4:X  d   eg )N     )wordsFNORMPREFIXSUFFIXSHAPEwidthrowsinclude_static_vectorsattrs         r   depthwindow_sizemaxout_piecesr   )	r   r   r
   r	   r   
initializebegin_updatelenshape)r   
embed_sizevocabdoctok2vecvectorsbackprops          [/home/james-whalen/.local/lib/python3.13/site-packages/spacy/tests/pipeline/test_tok2vec.pytest_empty_docr5      s    EJGE
e2
C!*A#(7		
 	%qaqQG ,,cU3Gw<11:5z)))    zbatch_size,width,embed_size)r$   r   r   )r   r   r   )r%      ?   c           
      B   [        U 5      n[        [        UU/S-  S/ SQS9[        USSSS95      nUR	                  5         UR                  U5      u  pV[        U5      [        U5      :X  d   e[        XS5       H"  u  pxUR                  [        U5      U4:X  a  M"   e   g )Nr#   Fr   r   r$   r%   r&   )	r   r
   r	   r   r*   r+   r,   zipr-   )	
batch_sizer   r.   batchr1   r2   r3   doc_vecr0   s	            r4   test_tok2vec_batch_sizesr>   )   s     j!E!!#(7		
 	%qaqQG ,,U3Gw<3u:%%%G+}}S5 1111 ,r6   r   r7   zembed_arch,embed_configzspacy.MultiHashEmbed.v1d   r   LOWERF)r    r"   r!      ORTHr   zspacy.CharacterEmbed.v1@   )r    nMnCr!      z&tok2vec_arch,encode_arch,encode_configzspacy.Tok2Vec.v1zspacy.MaxoutWindowEncoder.v1r$   r%   )r(   r)   r'   spacy.Tok2Vec.v2zspacy.MaxoutWindowEncoder.v2zspacy.MishWindowEncoder.v1   )r(   r'   zspacy.MishWindowEncoder.v2c                    [         R                  " SU5      n[         R                  " SU5      n[         R                  " SU5      nXS'   XS'   [        S5      n	U" U" S0 UD6U" S0 UD65      n
U
R                  U	5        U
R	                  U	5      u  p[        U5      [        U	5      :X  d   eUS   R                  [        U	S   5      U 4:X  d   eU" U5        g )Narchitecturesr   r%   r    )r   getr   r*   r+   r,   r-   )r   tok2vec_arch
embed_archembed_configencode_archencode_configembedencodetok2vec_modeldocsr1   r2   r3   s                r4   test_tok2vec_configsrV   >   s    6 LL*5E\\/;7FLL,?M!"'Q<DE1L163JM3JKGt,,T2Gw<3t9$$$1:DGe4444Wr6   c                      [        5       n U R                  S5      nUR                  / :X  d   eU R                  5         UR                  R                  S5      (       d   eg )Nr1   nO)r   add_pipe	listenersr*   modelget_dim)nlpr1   s     r4   test_init_tok2vecr^   h   sP    
)Cll9%G"""NN==  &&&&r6   a  
    [nlp]
    lang = "en"
    pipeline = ["tok2vec","tagger"]

    [components]

    [components.tagger]
    factory = "tagger"

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

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

    [components.tok2vec]
    factory = "tok2vec"

    [components.tok2vec.model]
    @architectures = "spacy.Tok2Vec.v2"

    [components.tok2vec.model.embed]
    @architectures = "spacy.MultiHashEmbed.v1"
    width = ${components.tok2vec.model.encode.width}
    rows = [2000, 1000, 1000, 1000]
    attrs = ["NORM", "PREFIX", "SUFFIX", "SHAPE"]
    include_static_vectors = false

    [components.tok2vec.model.encode]
    @architectures = "spacy.MaxoutWindowEncoder.v2"
    width = 96
    depth = 4
    window_size = 1
    maxout_pieces = 3
    I like green eggsNVJra         ?        )
preference
imperative)tagscatsEat blue hamrb   rc   ra   with_vectors)FTc           	      ,  ^ [        5       R                  [        5      nU US   S   S   S   S'   [        R                  " USSS9nU (       a  [        5       nSUR                  / S	Q5      4S
UR                  / SQ5      4SUR                  / SQ5      4SUR                  / SQ5      4SUR                  / SQ5      4/n[        UR                  U5        UR                  SS/:X  d   eUR                  S5      nUR                  S5      nUR                  R                  S5      n[        U[        5      (       d   e[        U[        5      (       d   e/ m[          H^  nTR#                  [$        R&                  " UR)                  US   5      US   5      5        US   S    H  n	UR+                  U	5        M     M`     UR-                  U4S j5      n
UR.                  U/:X  d   e[1        S5       H  n0 nUR3                  TXS9  M     U" S5      nUR5                  U/5      S   n[        5       n[7        UR9                  UR:                  5      UR9                  U5      5        U" S5      nUR=                  SS9  UR                  S/:X  d   eU" S5        g )N
componentsr1   r[   rR   r!   T	auto_fillvalidateapple)r$   r   r%   orange)and)rt   rt   rt   juice)   ry   
   pie)   g333333@g!@taggerr   r$   rh   c                     > T $ NrK   train_exampless   r4   <lambda>'test_tok2vec_listener.<locals>.<lambda>       ~r6   ry   sgdlossesz Running the pipeline as a whole. )disablez9Running the pipeline with the Tok2Vec component disabled.)r   from_str
cfg_stringr   load_model_from_configr   asarrayr   r/   
pipe_namesget_piper[   get_ref
isinstancer   r   
TRAIN_DATAappendr   	from_dictmake_doc	add_labelr*   rZ   rangeupdatepredictr   to_numpytensorselect_pipes)rl   orig_configr]   opsr2   r}   r1   tagger_tok2vecttag	optimizerir   r0   
doc_tensorr   s                  @r4   test_tok2vec_listenerr      sb   (##J/K 	 i(1':  
%
%kTD
QCckk),-s{{<01CKK-.ckk*-.CKK./
 	#))W->>i2222\\(#Fll9%G\\)))4Ngw''''no6666Ng//QqT0BAaDIJQ4<CS!    56I 00001X

>y
@  0
1C''.q1J

Cs||CJJ/j1IJ b'C Y'>>hZ'''CDr6   c            	         [        5       R                  [        5      n [        R                  " U SSS9nUR
                  SS/:X  d   eUR                  S5      nUR                  S5      nUR                  S5      /nUR                  R                  US9  U VVs/ s H  nS Vs/ s H  nSPM     snPM     nnnUR                  R                  R                  US	S
9/nUR                  R                  XHS9  UR                  S5      /nUR                  U V	s/ s H  n	[        R                  " U	0 5      PM     sn	5        UR                  R                  U5      u  pU" U
5      c   eg s  snf s  snnf s  sn	f )NTro   r1   r}   zA random sentence)X)rb   Zrd   float32)dtype)r   Yz Another entirely random sentence)r   r   r   r   r   r   r   r   r[   r*   r   r   r   r   r   r+   )r   r]   r}   r1   rU   wordr   
gold_arraylabel_samplexr   get_dXs               r4   test_tok2vec_listener_callbackr      sI   (##J/K

%
%kTD
QC>>i2222\\(#Fll9%GLL,-.DMMt$:>?$$*-*33*-$J?LL$$,,Zy,IJL
LLd3LL;<=DNNd;dG%%a,d;<))$/IA!9    .? <s   
E/$E*0E/!E5*E/c            	        ^ [        5       R                  [        5      n [        R                  " U SSS9n/ m[
         H>  nTR                  [        R                  " UR                  US   5      US   5      5        M@     UR                  U4S jS9n[        S5       H  n0 nUR                  TX5S/S	9  M     WS
   S:  d   eSnU" U5      nUS   R                  S:X  d   eUS   R                  S:X  d   eUS   R                  S:X  d   eUS   R                  S:X  d   e[        5        nUR                  U5        [        R                   " U5      n	U	" U5      n
U
S   R                  S:X  d   eU
S   R                  S:X  d   eU
S   R                  S:X  d   eU
S   R                  S:X  d   e SSS5        g! , (       d  f       g= f)ziTest that a pipeline with a listener properly overfits, even if 'tok2vec' is in the annotating componentsTro   r   r$   c                     > T $ r   rK   r   s   r4   r   3test_tok2vec_listener_overfitting.<locals>.<lambda>       Nr6   get_examples2   r1   )r   r   	annotatesr}   gh㈵>I like blue eggsra   rb   r   rc   r%   Nr   r   r   r   r   r   r   r   r   r   r*   r   r   tag_r   to_diskload_model_from_pathr   r]   r   r   r   r   	test_textr0   tmp_dirnlp2doc2r   s              @r4   !test_tok2vec_listener_overfittingr      s   (##J/K

%
%kTD
QCNg//QqT0BAaDIJ ,BCI2Y

>yI;
W  (g%%% #I
i.Cq6;;#q6;;#q6;;#q6;;# 
7G((1IAw||s"""Aw||s"""Aw||s"""Aw||s""" 
s   +BF99
Gc            	        ^ [        5       R                  [        5      n [        R                  " U SSS9n/ m[
         H>  nTR                  [        R                  " UR                  US   5      US   5      5        M@     UR                  U4S jS9n[        S5       H9  n0 n[        R                  " [        SS	9   UR                  TX5S
/S9  SSS5        M;     g! , (       d  f       MM  = f)z]Test that a pipeline with a frozen tok2vec raises an error when the tok2vec is not annotatingTro   r   r$   c                     > T $ r   rK   r   s   r4   r   4test_tok2vec_frozen_not_annotating.<locals>.<lambda>  r   r6   r   r   z*the tok2vec embedding layer is not updated)matchr1   )r   r   excludeN)r   r   r   r   r   r   r   r   r   r   r*   r   pytestraises
ValueErrorr   )r   r]   r   r   r   r   r   s         @r4   "test_tok2vec_frozen_not_annotatingr     s    (##J/K

%
%kTD
QCNg//QqT0BAaDIJ ,BCI1X]]K
 JJIyk  
 
 
 
s   ;C
C*	c            	        ^ [        5       R                  [        5      n [        R                  " U SSS9n/ m[
         H>  nTR                  [        R                  " UR                  US   5      US   5      5        M@     UR                  U4S jS9n[        S5       H  n0 nUR                  TUUS/S/S	9  M     WS
   S:  d   eSnU" U5      nUS   R                  S:X  d   eUS   R                  S:X  d   eUS   R                  S:X  d   eUS   R                  S:X  d   e[        5        nUR                  U5        [        R                   " U5      n	U	" U5      n
U
S   R                  S:X  d   eU
S   R                  S:X  d   eU
S   R                  S:X  d   eU
S   R                  S:X  d   e SSS5        g! , (       d  f       g= f)zITest that a pipeline with a frozen & annotating tok2vec can still overfitTro   r   r$   c                     > T $ r   rK   r   s   r4   r   1test_tok2vec_frozen_overfitting.<locals>.<lambda>&  r   r6   r   r?   r1   )r   r   r   r   r}   g-C6?r   ra   rb   r   rc   r%   Nr   r   s              @r4   test_tok2vec_frozen_overfittingr     s   (##J/K

%
%kTD
QCNg//QqT0BAaDIJ ,BCI3Z

K k 	 	
  (f$$$ #I
i.Cq6;;#q6;;#q6;;#q6;;# 
7G((1IAw||s"""Aw||s"""Aw||s"""Aw||s""" 
s   .BF<<
G
c                  J  ^ [        5       R                  [        5      n [        R                  " U SSS9n[
        R                  " UR                  S5      SSS/05      /mUR                  U4S j5        UR                  S5      nUR                  S	5      n[        UR                  R                  S
   [        5      (       d   eUR                  S	   S
   UR                  R                  S
   :X  d   eUR                  S   S   S   S   S:X  d   eUR                  S   S	   S   S   S   S:X  d   eUR!                  SS	S/5        [        UR                  R                  S
   [        5      (       a   eUR                  S   S   S   nUS   S:X  d   eUR                  S   S	   S   S   U:X  d   e["        R$                  " [&        5         UR!                  SS	S/5        S S S 5        ["        R$                  " [&        5         UR!                  SSS/5        S S S 5        ["        R$                  " [&        5         UR!                  SS	S/5        S S S 5        ["        R$                  " [&        5         UR!                  SS	SS/5        S S S 5        UR                  U4S j5      n[)        S5       H+  n0 nUR+                  TXWS9  US   S:X  d   eUS	   S:  a  M+   e   g ! , (       d  f       GN= f! , (       d  f       N= f! , (       d  f       N= f! , (       d  f       N= f)NTro   x yrh   rb   r   c                     > T $ r   rK   exampless   r4   r   (test_replace_listeners.<locals>.<lambda>J      8r6   r1   r}   r   rn   r[   @architecturesrG   spacy.Tok2VecListener.v1model.tok2vecinvalidparserz
model.yoloc                     > T $ r   rK   r   s   r4   r   r   e  s    xr6   r   r   re   )r   r   r   r   r   r   r   r   r*   r   r   r[   layersr   listener_mapconfigreplace_listenersr   r   r   r   r   )	r   r]   r1   r}   t2v_cfgr   r   r   r   s	           @r4   test_replace_listenersr   F  s   (##J/K

%
%kTD
QC!!#,,u"5c
7KLMHNN#$ll9%G\\(#Ffll))!,o>>>>)!,0C0CA0FFFF

< +G45EF		 	

< *73I>?OP%	&	& )X/@A&,,--a0/BBBBjj&y1':G#$(::::::l#H-g6yAWLLL	z	"iO3DE 
#	z	"iO3DE 
#	z	"iL>B 
#	z	"iO\3RS 
# /0I1X

8
:i C'''h#%%%	  
#	"	"	"	"	"	"	"s0   K K2;L2L 
K/2
L 
L
L"a  
    [nlp]
    lang = "en"
    pipeline = ["tok2vec","tagger", "ner"]

    [components]

    [components.tagger]
    factory = "tagger"

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

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

    [components.ner]
    factory = "ner"

    [components.ner.model]
    @architectures = "spacy.TransitionBasedParser.v2"

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

    [components.tok2vec]
    factory = "tok2vec"

    [components.tok2vec.model]
    @architectures = "spacy.Tok2Vec.v2"

    [components.tok2vec.model.embed]
    @architectures = "spacy.MultiHashEmbed.v1"
    width = ${components.tok2vec.model.encode.width}
    rows = [2000, 1000, 1000, 1000]
    attrs = ["NORM", "PREFIX", "SUFFIX", "SHAPE"]
    include_static_vectors = false

    [components.tok2vec.model.encode]
    @architectures = "spacy.MaxoutWindowEncoder.v2"
    width = 96
    depth = 4
    window_size = 1
    maxout_pieces = 3
    c                    ^ [        5       R                  [        5      n [        R                  " U SS9nSS/SS/S.n[
        R                  " UR                  S5      U5      /mUR                  U4S	 j5        UR                  S
5      nUR                  S5      nUR                  S5      nUR                  SS/:X  d   e[        S UR                  R                  5        5       5      (       d   e[        S UR                  R                  5        5       5      (       d   e[        5        nUR                  U5        [!        U5      nS/ SQS.SU0USS/S.USS.USS.S.S.n[        R                  " USS9n	S S S 5        W	R                  U4S j5        U	R                  S
5      nU	R                  S5      nU	R                  S5      nSU	R"                  ;  d   eSU	R"                  ;  d   eUR                  SS/:X  d   e[        S UR                  R                  5        5       5      (       d   e[        S UR                  R                  5        5       5      (       a   eU	R$                  S   S
   S   n
U
S   S :X  d   eU	R$                  S   S   S   S
   U
:X  d   eU	R$                  S   S   S   S
   S   S!:X  d   eU	R$                  S   S   S   S
   S   S!:X  d   eg ! , (       d  f       GNr= f)"NT)rp   rb   r   )r   r$   A)r$   r   B)rh   entitiesr   c                     > T $ r   rK   r   s   r4   r   4test_replace_listeners_from_config.<locals>.<lambda>  r   r6   r1   r}   nerc              3   B   #    U  H  n[        U[        5      v   M     g 7fr   r   r   .0nodes     r4   	<genexpr>5test_replace_listeners_from_config.<locals>.<genexpr>       N=MTz$00=M   c              3   B   #    U  H  n[        U[        5      v   M     g 7fr   r   r   s     r4   r   r     s     Q=PTz$00=Pr   en)r1   tagger2ner3tagger4)langpipelinesourcer   )r   	componentr   )r   r   )r]   rn   c                     > T $ r   rK   r   s   r4   r   r     s    xr6   r   r   r   c              3   B   #    U  H  n[        U[        5      v   M     g 7fr   r   r   s     r4   r   r     r   r   c              3   B   #    U  H  n[        U[        5      v   M     g 7fr   r   r   s     r4   r   r     s     UAT:dO44ATr   rn   r[   r   rG   r   )r   r   cfg_string_multir   r   r   r   r   r*   r   listening_componentsanyr[   walkr   r   strr   r   )r   r]   annotsr1   r}   r   dir_path
base_model
new_confignew_nlpr   r   s              @r4   "test_replace_listeners_from_configr    s   (##$45K

%
%kT
BCCj{K.HIF!!#,,u"5v>?HNN#$ll9%G\\(#F
,,u
C''He+<<<<NSYY^^=MNNNNNQV\\=N=N=PQQQQQ	8H]
 E
 %j1(!)*9): )!&
 )!)

, --jDI3 
4 '(y)Gi(F


6
"C*****7-----''FI+>>>>NSYY^^=MNNNNNUARARATUUUUUnn\*95g>G#$(::::>>,'	27;IF'QQQ|$V,W5i@AQR%	&	& 	|$Y/8CDTU%	&	&W 
s   ,AK%%
K4a  
    [nlp]
    lang = "en"
    pipeline = ["tok2vec","textcat_multilabel","tagger"]

    [components]

    [components.textcat_multilabel]
    factory = "textcat_multilabel"

    [components.textcat_multilabel.model]
    @architectures = "spacy.TextCatEnsemble.v2"
    nO = null

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

    [components.textcat_multilabel.model.linear_model]
    @architectures = "spacy.TextCatBOW.v1"
    exclusive_classes = false
    ngram_size = 1
    no_output_layer = false

    [components.tagger]
    factory = "tagger"

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

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

    [components.tok2vec]
    factory = "tok2vec"

    [components.tok2vec.model]
    @architectures = "spacy.Tok2Vec.v2"

    [components.tok2vec.model.embed]
    @architectures = "spacy.MultiHashEmbed.v1"
    width = ${components.tok2vec.model.encode.width}
    rows = [2000, 1000, 1000, 1000]
    attrs = ["NORM", "PREFIX", "SUFFIX", "SHAPE"]
    include_static_vectors = false

    [components.tok2vec.model.encode]
    @architectures = "spacy.MaxoutWindowEncoder.v2"
    width = 96
    depth = 4
    window_size = 1
    maxout_pieces = 3
    c            	      r  ^ [        5       R                  [        5      n [        R                  " U SSS9nUR
                  / SQ:X  d   eUR                  S5      nUR                  S5      nUR                  S5      nUR                  R                  S5      nUR                  R                  S5      n[        U[        5      (       d   e[        U[        5      (       d   e[        U[        5      (       d   e/ m[         H>  nTR                  [        R                  " UR!                  US   5      US   5      5        M@     UR#                  U4S	 j5      n[%        S
5       H  n	0 n
UR'                  TXS9  M     [)        UR+                  SS/5      5      nUS   R,                  nUS   S:  d   eUS   S:  d   eUS   R,                  nUS   S:  d   eUS   S:  d   eUS    Vs/ s H  owR.                  PM     sn/ SQ:X  d   eUS    Vs/ s H  owR.                  PM     sn/ SQ:X  d   eg s  snf s  snf )NTro   )r1   textcat_multilabelr}   r}   r  r1   r   r$   c                     > T $ r   rK   r   s   r4   r   0test_tok2vec_listeners_textcat.<locals>.<lambda>$  r   r6   r   r   rj   r_   rf   g?rg   g?rk   r`   )r   r   cfg_string_multi_textcatr   r   r   r   r[   r   r   r   r   r   r   r   r   r   r*   r   r   listpiperi   r   )r   r]   r}   textcatr1   r   textcat_tok2vecr   r   r   r   rU   cats0cats1r   s                 @r4   test_tok2vec_listeners_textcatr    s   (##$<=K

%
%kTD
QC>>HHHH\\(#Fll/0Gll9%G\\)))4Nmm++I6Ogw''''no6666o7777Ng//QqT0BAaDIJ  56I2Y

>y
@  .*=>?@DGLLE$$$$$$GLLE$$$$$$ G$GqFFG$777 G$GqFFG$(<<<< %$s   'H/H4c                     [        5       R                  [        5      n [        R                  " U SSS9nUR                  S5      R                  SS/:X  d   e[        5       nUR                  SUS9  UR                  SSUS9  UR                  S5      R                  UR                  S5      R                  s=:X  a  S:X  d   e   eUR                  S5      R                  S/:X  d   eUR                  SS	US9  UR                  S5      R                  SS	/:X  d   eUR                  S	5        UR                  S5      R                  S/:X  d   eUR                  S5        UR                  S5      R                  / :X  d   eUR                  S5      R                  / :X  d   eUR                  S
5        UR                  S5      R                  SS/:X  d   eUR                  S
5        UR                  S5      R                  / :X  d   eg)znThe component's internal name and the tok2vec listener map correspond
to the most recently modified pipeline.
Tro   r1   r}   r   r   r   namer   r   sentencizerN)r   r   r  r   r   r   r  r   rY   r  remove_piper   nlp1r   s      r4   &test_tok2vec_listener_source_link_namer   4  s    (##$45K&&{dTRD==#88Xu<MMMM9DMM)DM)MM(4M8 =="''4==+C+H+HUIUUUUU ==#88YKGGGMM%fTM2==#88Y<OOOOV==#88YKGGGY==#88B>>> ==#88B>>> 	MM- ==#88Xu<MMMM 	MM- ==#88B>>>r6   c                  Z   [        5       R                  [        5      n [        R                  " U SSS9nUR                  S5      R                  SS/:X  d   eUR                  SSS/5        UR                  S5      R                  S/:X  d   e[        5       nUR                  SUS9  UR                  S5      R                  / :X  d   eUR                  SUS9  UR                  S5      R                  / :X  d   eUR                  SSUS	9  UR                  S5      R                  S/:X  d   eg )
NTro   r1   r}   r   r   r  ner2r  )
r   r   r  r   r   r   r  r   r   rY   r  s      r4   .test_tok2vec_listener_source_replace_listenersr#  Z  s   (##$45K&&{dTRD==#88Xu<MMMM9h0AB==#88UGCCC9DMM)DM)==#88B>>>MM(4M(==#88B>>>MM%fTM2==#88VHDDDr6   )1r   numpy.testingr   	thinc.apir   r   spacyr   spacy.lang.enr   spacy.ml.models.tok2vecr   r	   r
   spacy.pipeline.tok2vecr   r   spacy.tokensr   spacy.trainingr   
spacy.utilr   spacy.vocabr   r   r   r   r5   markparametrizer>   slowrV   r^   r   r   r   r   r   r   r   r   r  r  r  r  r   r#  rK   r6   r4   <module>r1     s7    , -  ! 
 <  "   = =*( !NNJ#O22$ 1#& 
#c3Z7GBTpu$vw	"c2Y&(ASot$uv	"S!_d$ef	"S!_d$ef	
 , 
;Qabmn=op	;Qabmn=op	91WX;YZ	91WX;YZ	


 ' 0$'%
R 	%cQT/UV
 	 C*PQ	
 71E 81Eh!$#B&$#N$&N/ d9x6 r=@#?LEr6   