
    iZ                     2   d dl Z d dlZd dlZd dlmZ d dlZd dlmZ d dlm	Z	 d dl
mZ d dlmZ d dlmZ d dlmZ d d	lmZmZmZ d d
lmZ ej0                  d        Z ej4                  d      d        Z ej4                  d      d        Zej:                  j=                  d      d        Zej:                  j=                  d      d        Z ej:                  j=                  d      d        Z!ej:                  j=                  d      d        Z"ej:                  j=                  d      d        Z#d Z$d Z%d Z&ej:                  jO                  ddg      d        Z(ej:                  jO                  d d!g      d"        Z)d# Z*ej:                  jO                  dd$g      d%        Z+ej:                  jO                  d&d'dd( fg      d)        Z,d* Z-d+ Z.ej:                  jO                  d,d-g      d.        Z/ej:                  jO                  dd/g      d0        Z0ej:                  jO                  dd/g      d1        Z1ej:                  jO                  dd/g      d2        Z2ej:                  jO                  dd/g      d3        Z3ej:                  jO                  dd/g      d4        Z4d5 Z5d6 Z6ej:                  jO                  d7d8g      d9        Z7ej:                  jO                  d:d; d<d=ig      d>        Z8ej:                  jO                  d:g d?      d@        Z9dA Z:dB Z;dC Z<dD Z=ej:                  jO                  dEg dF      dG        Z>ej:                  jO                  dEdHdIg      dJ        Z?dK Z@dL ZAej:                  j=                  dM      dN        ZBdO ZCy)P    N)get_current_ops)English)noun_chunksLanguage)TrainablePipe)Doc)Example)SimpleFrozenListget_arg_namesmake_tempdir)Vocabc                      t               S Nr        w/var/www/vps2.regionflexible.com/Desarrollo/venv/lib/python3.12/site-packages/spacy/tests/pipeline/test_pipe_methods.pynlpr      s
    :r   new_pipec                     | S r   r   docs    r   r   r          Jr   
other_pipec                     | S r   r   r   s    r   r   r      r   r   i  c                      d } t               }t        |j                   |                    D ]D  \  }}|dk(  s
|dk(  s|dk(  rt        j                          |D ]  }t        |j                          F y )Nc               3      K   t        d      D ]  } d  t        d      D ]  } d  t        d      D ]  } d  t        d      D ]  } d  t        d      D ]  } d  y w)Ni'  z#It's sentence produced by that bug.zI erase some hbdsaj lemmas.zI erase lemmas.)range)_s    r   string_generatorz(test_issue1506.<locals>.string_generator#   s     u 	8A77	8u 	0A//	0u 	$A##	$u 	8A77	8u 	8A77	8s   A&A(i'  i N  i0u  )r   	enumeratepipegccollectstrlemma_)r    r   idts        r   test_issue1506r*   !   sm    
8 )C#((#3#567 1 :eqEzJJL 	AM	r   iv  c                     t        t                     } | j                  rJ t        j                  d      d        }| j	                  dd       | j	                  ddd       | j	                  ddd       | j
                  g dk(  sJ t        t                     }|j                  rJ |j	                  dd       |j	                  ddd	       |j	                  ddd	       |j
                  g dk(  sJ y )
N	componentc                     | S r   r   r   s    r   r,   z!test_issue1654.<locals>.component>   s    
r   1name2)r0   after3)r.   r1   r3   )r0   before)r   r   pipeliner,   add_pipe
pipe_names)r   r,   nlp2s      r   test_issue1654r9   9   s    
57
C||$ % LL3L'LL3cL2LL3cL2>>_,,,EGD}}MM+CM(MM+CM4MM+CM4??o---r   i(  c                  ,   g d} t               }|j                  d      j                  d       |j                  d      j                  d       |j                  d      j                  d       |j                          |j	                  |       D ]  } y)	zeTest that `nlp.pipe()` works when an empty string ends the batch.

    Fixed in v7.0.5 of Thinc.
    )helloworld r=   parserdepnerPERSONtaggerNNN)r   r6   	add_label
initializer"   )textsr   r   s      r   test_issue3880rG   N   sy     'E
)CLL$$U+LL!!(+LL$$T*NNxx r   i  c                  h   t               } | j                  }t        j                  g dt        j                        }t        j                  g dt        j                        }t        j                  g dt        j                        }t        j                  g dt        j                        }t        j                  g dt        j                        }|j                  d|       |j                  d|       |j                  d	|       |j                  d
|       d}dddiddigdg}| j                  d      }	|	j                  |        | |      D 
cg c]  }
|
j                   }}
t        |      dk(  sJ t               }t        j                  j                  |j                  |d         |       t        j                  j                  |j                  |d         |       t        j                  j                  |j                  |d         |       t        j                  j                  |j                  |d         |       | j                  d        | |      D 
cg c]  }
|
j                   }}
t        |      dk(  sJ t        j                  j                  |j                  |d         |       t        j                  j                  |j                  |d         |       t        j                  j                  |j                  |d         |       y c c}
w c c}
w )N)g?      ?g?)dtype)gɿg333333g)333333?ggffffff?)rI   r   rK   )g?grI   IlikeDavidBowiezI like David BowierA   LOWERdavidbowie)labelpatternentity_ruler   r            merge_entities)r   vocabnumpyasarrayfloat32
set_vectorr6   add_patternsvectorlenr   testingassert_array_equalto_numpy)r   r[   array1array2array3array4array34textpatternsrulerr)   parsed_vectors_1opsparsed_vectors_2s                 r   test_issue5082rq   ^   sp    )CIIE]]?%--@F]]-U]]CF]]+5==AF]]=>Fmm-U]]CG	S&!	VV$	Wf%	Wf%D'(:Wg<N'OPH LL(E	x *-d)4Q44 A%%%

C	MM$$S\\2B12E%FO	MM$$S\\2B12E%FO	MM$$S\\2B12E%FO	MM$$S\\2B12E%FOLL!"*-d)4Q44 A%%%	MM$$S\\2B12E%FO	MM$$S\\2B12E%FO	MM$$S\\2B12E%FP 5 5s   L*.L/iR  c                      g d} t        |       }g d}g d}g d}t        || |||      }t        |_        t	               }|j                  d      } ||       y )N)Inanerawheremarketshavebrought
prosperityandempowerment.)strings)ROOTdetpobjadvmodnsubjauxrelcldobjccconjpunct)ADPDETNOUNADVr   AUXVERBr   CCONJr   PUNCT)r   rX   r   	      r   rX   r      r   r   )wordsposheadsdepsmerge_noun_chunks)r   r	   r   noun_chunks_iteratorr   create_pipe)r   r[   r   r   r   en_docr   	merge_npss           r   test_issue5458r      s]     pE% EdD
`C-EeEEF"-F )C 34Ifr   c                  v     G d dt               } t               }|j                  d      } |        } ||       y )Nc                       e Zd Zd Zd Zd Zy),test_multiple_predictions.<locals>.DummyPipec                     d| _         y )Ndummy_model)model)selfs    r   __init__z5test_multiple_predictions.<locals>.DummyPipe.__init__   s	    &DJr   c                     g dg dfS )N)rW   rX   rY   )rV      r   r   )r   docss     r   predictz4test_multiple_predictions.<locals>.DummyPipe.predict   s    y))r   c                     |S r   r   )r   r   scoress      r   set_annotationsz<test_multiple_predictions.<locals>.DummyPipe.set_annotations   s    Kr   N)__name__
__module____qualname__r   r   r   r   r   r   	DummyPiper      s    	'	*	r   r   foo)r   r   make_doc)r   r   r   
dummy_pipes       r   test_multiple_predictionsr      s3    M  *C
,,u
CJsOr   c                 F    | j                  d       d| j                  v sJ y )Nr   )r6   r7   r   s    r   test_add_pipe_no_namer      s     LL'''r   c                     | j                  dd       t        j                  t              5  | j                  dd       d d d        y # 1 sw Y   y xY w)Nr   duplicate_namer/   )r6   pytestraises
ValueErrorr   s    r   test_add_pipe_duplicate_namer      sE    LL"2L3	z	" 8Z&678 8 8s   A

Ar0   r>   c                 Z    | j                  d|d       | j                  d   d   |k(  sJ y )Nr   T)r0   firstr   )r6   r5   r   r0   s     r   test_add_pipe_firstr      s/    LL$dL3<<?1%%%r   zname1,name2)r>   lambda_pipec                     t        j                  dd        | j                  d|       | j                  d|d       | j                  d   d   |k7  sJ | j                  d	   d   |k(  sJ y )
N	new_pipe2c                     | S r   r   r   s    r   <lambda>z$test_add_pipe_last.<locals>.<lambda>       S r   funcr/   r   T)r0   lastr   )r   r,   r6   r5   )r   name1name2s      r   test_add_pipe_lastr      sk    {9LL5L)LL%dL3<<?1&&&<<A%'''r   c                     t        j                  t              5  | j                  ddd       d d d        y # 1 sw Y   y xY w)Nr   T)r   r   r   r   r   r6   r   s    r   !test_cant_add_pipe_first_and_lastr      s5    	z	" 8Zt$78 8 8s	   8Atest_get_pipec                     t        j                  t              5  | j                  |       d d d        | j	                  d|       | j                  |      t
        k(  sJ y # 1 sw Y   7xY wNr   r/   )r   r   KeyErrorget_piper6   r   r   s     r   r   r      sV    	x	  TLL$L'<<))) s   A""A+z$name,replacement,invalid_replacementtest_replace_pipec                     | S r   r   r   s    r   r   r      r   r   c                    t        j                  t              5  | j                  |t               d d d        | j                  d|       t        j                  t              5  | j                  ||       d d d        | j                  ||       | j                  |      | j                  |      k(  sJ y # 1 sw Y   xY w# 1 sw Y   MxY wr   )r   r   r   replace_piper   r6   r   r   )r   r0   replacementinvalid_replacements       r   r   r      s    
 
z	" )x()LL$L'	z	" 4234T;'<<!====) )4 4s   B8%C8CCc                     | j                  d       | j                  d       | j                  ddgk(  sJ | j                  dd       | j                  ddgk(  sJ y )Nsentencizerr@   )r6   r7   r   r   s    r   test_replace_last_piper      sX    LLLL>>mU3333UE">>mU3333r   c                     | j                  d       | j                  d       | j                  d      j                  du sJ | j                  ddddi       | j                  d      j                  du sJ y )Nentity_linkerr   T
incl_priorF)config)r6   r   r   r   r   s    r   test_replace_pipe_configr      sn    LL!LL<<(33t;;;_o|U>ST<<(33u<<<r   zold_name,new_name)old_piper   c                     t        j                  t              5  | j                  ||       d d d        | j	                  d|       | j                  ||       | j
                  d   d   |k(  sJ y # 1 sw Y   FxY w)Nr   r/   r   )r   r   r   rename_piper6   r5   )r   old_namenew_names      r   test_rename_piper      sj    	z	" ,(+,LL(L+OOHh'<<?1)))	, ,s   A22A;my_componentc                 V   t        j                  t              5  | j                  |       d d d        | j	                  d|       t        | j                        dk(  sJ | j                  |      \  }}t        | j                        rJ ||k(  sJ |t        k(  sJ y # 1 sw Y   txY w)Nr   r/   rW   )r   r   r   remove_piper6   rb   r5   r   )r   r0   removed_nameremoved_components       r   test_remove_piper      s    	z	" LL$L's||!!!&)ood&;#L#3<<   4((( s   BB(c                     | j                  d|       | j                  |      sJ | j                  |      }| j                  |      rJ |j                          y )Nr   r/   disabler6   has_pipeselect_pipesrestorer   r0   disableds      r   test_disable_pipes_methodr      sU    LL$L'<<-H||D!!!r   c                     | j                  d|       | j                  |      sJ | j                  g       }| j                  |      rJ |j                          y )Nr   r/   enabler   r   s      r   test_enable_pipes_methodr     sU    LL$L'<<r*H||D!!!r   c                     | j                  d|       | j                  |      sJ | j                  |      5  | j                  |      rJ 	 ddd       | j                  |      sJ y# 1 sw Y   xY w)zOTest that an enabled component stays enabled after running the context manager.r   r/   r   Nr6   r   r   r   s     r   test_disable_pipes_contextr    ss     LL$L'<<			$		' &<<%%%%&<<& &s   A**A3c                 4   | j                  d|       | j                  |      sJ | j                  |       | j                  |      rJ | j                  |      5  | j                  |      rJ 	 ddd       | j                  |      rJ y# 1 sw Y   xY w)zPTest that a disabled component stays disabled after running the context manager.r   r/   r   N)r6   r   disable_piper   r   s     r   "test_disable_pipes_context_restorer    s     LL$L'<<T||D!!!			$		' &<<%%%%&||D!!!!& &s   BBc                    dD ](  }| j                  d|       | j                  |      r(J  | j                  ddg      5  | j                  d      rJ | j                  d      rJ | j                  d      sJ 	 d d d        | j                  d      5  | j                  d      rJ | j                  d      rJ | j                  d      sJ 	 d d d        | j                  ddgd	      5  | j                  d      sJ | j                  d      sJ | j                  d      rJ 	 d d d        | j                  g       5  | j                  d      rJ | j                  d      rJ | j                  d      rJ 	 d d d        | j                  g dg 	      5  | j                  d      sJ | j                  d      sJ | j                  d      sJ 	 d d d        | j                  g dg 
      5  | j                  d      rJ | j                  d      rJ | j                  d      rJ 	 d d d        y # 1 sw Y   xY w# 1 sw Y   uxY w# 1 sw Y   *xY w# 1 sw Y   xY w# 1 sw Y   xY w# 1 sw Y   y xY w)Nc1c2c3r   r/   r  r	  r   r
  r   r   r   )r   r   r  r   s     r   test_select_pipes_list_argr  '  s   " "Zd+||D!!!" 
		4,		/ "<<%%%<<%%%||D!!!" 
				& "<<%%%<<%%%||D!!!" 
		$t		< &||D!!!||D!!!<<%%%%& 
				$ &<<%%%<<%%%<<%%%%& 
		!3R		@ "||D!!!||D!!!||D!!!" 
		"4R		@ &<<%%%<<%%%<<%%%%& &)" "" "& && &" "& &sH   :H8:I/:I:I:I+4:I78IIII(+I47J c                 2   dD ](  }| j                  d|       | j                  |      r(J  t        j                  t              5  | j                          d d d        t        j                  t              5  | j                  ddgdg       d d d        t        j                  t              5  | j                  ddgg        d d d        t        j                  t              5  | j                  g dg       d d d        | j                  dg      }| j                  d       t        j                  t              5  |j                          d d d        y # 1 sw Y   xY w# 1 sw Y   xY w# 1 sw Y   xY w# 1 sw Y   xY w# 1 sw Y   y xY w)	Nr  r   r/   r  r	  r  r
  r   )r6   r   r   r   r   r   r   r   r   s      r   test_select_pipes_errorsr  E  se   " "Zd+||D!!!" 
z	"  
z	" >ttf=> 
z	" :tb9: 
z	" 4TF34 /HOOD	z	"   > >: :4 4
 s<   E9E)1E5(FFE&)E25E>F
Fn_pipesd   c                     t        j                  dd        t        |      D ]  }| j                  dd|         t	        | j
                        |k(  sJ y )Nr  c                     | S r   r   r   s    r   r   z(test_add_lots_of_pipes.<locals>.<lambda>^      3 r   r   pipe_r/   )r   r,   r   r6   rb   r7   )r   r  r'   s      r   test_add_lots_of_pipesr  \  sR    y77^ 2YuQC[12s~~')))r   r,   c                     | S r   r   r   s    r   r   r   d  r  r   r;   r<   c                     t        j                  t              5  | j                  |       d d d        y # 1 sw Y   y xY wr   r   )r   r,   s     r   !test_raise_for_invalid_componentsr  d  s/    	z	"  Y     s   5>)r@   rB   r>   textcatc                     d}| j                  |      }|j                  |       |dk(  r||j                  v sJ y |j                  |fk(  sJ y )NTESTrB   )r   rD   labels)r   r,   rS   r"   s       r   test_pipe_base_class_add_labelr  j  sO    E??9%DNN5H###{{uh&&&r   c                    g dddgd}|j                         D ]b  \  }}| j                  |       | j                  |      }|D ]  }|j                  |        t	        |j
                        t	        |      k(  rbJ  t	        | j                        t	        |      k(  sJ | j                  j                         D ]!  \  }}t        ||         t        |      k(  r!J  y )N)rA   ORGGPEPOSITIVENEGATIVE)r@   r  )itemsr6   r   rD   rb   r  pipe_labelssorted)r   input_labelsr0   r  r"   rS   s         r   test_pipe_labelsr'  v  s    '
+L %**, /fT||D! 	"ENN5!	"4;;3v;.../ s3|#4444--/ <fl4()VF^;;;<r   c                     t               } | j                  d       t        j                  t              5  | j                  dd       ddd       | j                  dd       | j
                  ddgk(  sJ t        j                  t              5  | j                  dd       ddd       t        j                  t              5  | j                  dd       ddd       | j                  dd       | j
                  g d	k(  sJ | j                  d
d       | j
                  g dk(  sJ t        j                  t              5  | j                  ddd       ddd       t        j                  t              5  | j                  ddd       ddd       t        j                  t              5  | j                  dd       ddd       t        j                  t              5  | j                  dd       ddd       y# 1 sw Y   xY w# 1 sw Y   oxY w# 1 sw Y   GxY w# 1 sw Y   xY w# 1 sw Y   xY w# 1 sw Y   ~xY w# 1 sw Y   yxY w)z3Test that before/after works with strings and ints.r@   r  r>   )r4   NrY   )r2   r   )r  r>   r@   rB   rX   )r  r>   rB   r@   rU   rW   T)r2   r   )r4   r2   F)r   )r   r6   r   r   r   r7   r   s    r   test_add_pipe_before_afterr)    s   
*CLL	z	" 1Yx01LL5L)>>i////	z	" )Xa()	z	" (XQ'(LLL#>>9999LL!L$>>CCCC	z	" :^1D9:	z	" <^E;<	z	" 2^D12	z	" 2^512 2%1 1) )( (: :< <2 22 2sS   HHHH+<H72I'IHHH(+H47I IIc                     d} i fd}t        j                  |  d ||  d            }t        j                  |  d ||  d            }t               }|j                  |  d       |j                  |  d       |  d   dk(  sJ |  d   dk(  sJ |j                  |  d|f|  d|fgk(  sJ |j                  |  d|  dgk(  sJ |j                  |  d       |j                  |  dgk(  sJ |j                  |  d|  dgk(  sJ |j                  |  dgk(  sJ |j                  d   d   |  dgk(  sJ  |d	       |  d   dk(  sJ |  d   d	k(  sJ |j                  |  d       |j                  g k(  sJ |j                  |  d|  dgk(  sJ |j                  d   d   g k(  sJ  |d
       |  d   d
k(  sJ |  d   d
k(  sJ |j                  |  d       |j                  |  d       |j                  |  d|fgk(  sJ |j                  |  d|fgk(  sJ |j                  |  dgk(  sJ |j                  |  dgk(  sJ |j                  g k(  sJ |j                  d   d   g k(  sJ |j                  |  d|        |j                  | |fgk(  sJ |j                  | gk(  sJ  |d       |  d   dk(  sJ |  d   d
k(  sJ t        j                  t              5  |j                  |  d       d d d        |j                  |        |j                  | gk(  sJ |j                  g k(  sJ |j                  d   d   | gk(  sJ  |d       |  d   dk(  sJ y # 1 sw Y   kxY w)Ntest_disable_enable_pipesc                       d <    fd}|S )Nr=   c                 &    | j                   <   | S r   rk   r   r0   resultss    r   r,   zDtest_disable_enable_pipes.<locals>.make_component.<locals>.component  s    HHGDMJr   r   r0   r,   r0  s   ` r   make_componentz1test_disable_enable_pipes.<locals>.make_component      	
 r   r.   r   r1   r=   r   r   r;   r<   !?)r   r,   r6   r5   r7   r  r   component_namesr   enable_piper   
componentsr   r   r   r   )r0   r2  r  r	  r   r0  s        @r   r+  r+    s[   &DG 
		tfAJ^tfAJ-G	HB			tfAJ^tfAJ-G	HB
*CLLD6LLD6dV1:"$$$dV1:"$$$<<vQZ,$qz2.>????>>ajTF!*5555vQZ <<tfAJ<'''dV1:$qz"::::>>aj\)))::eZ(vQZL888LdV1:"$$$dV1:')))OOtfAJ<<2>>ajTF!*5555::eZ(B...LdV1:')))dV1:')))vQZ OOtfAJ>>$qz2.////<<vQZ,----dV1:,...>>aj\)))<<2::eZ(B...OOtfAJ%>>tRj\)))4&(((HdV1:#%%%dV1:')))	z	" %D6$%T4&(((>>R::eZ(TF222HdV1:#%%%% %s   <M;;Nc                  ~   t               } | j                  d      }| j                  dgk(  sJ | j                  | j                  | j                  | j
                  | j                  | j                  fD ]&  }t        |t              sJ t        |t              r&J  t        j                  t              5  | j                  j                  d|f       ddd       t        j                  t              5  | j                  j                          ddd       t        j                  t              5  | j                  j!                          ddd       t        j                  t              5  | j
                  j#                          ddd       y# 1 sw Y   xY w# 1 sw Y   xY w# 1 sw Y   ^xY w# 1 sw Y   yxY w)zTest that spaCy raises custom error messages if "frozen" properties are
    accessed. We still want to use a list here to not break backwards
    compatibility, but users should see an error if they're trying to append
    to nlp.pipeline etc.r@   ner2N)r   r6   r7   r5   r8  r6  r   factory_names
isinstancelistr   r   r   NotImplementedErrorappendpopsortclear)r   r@   props      r   test_pipe_methods_frozenrD    sf   
 *C
,,u
C>>eW$$$ 	2 $%%%$ 0111	2 
*	+ +VSM*+	*	+ 	*	+ 	*	+ $!!#$ $+ +  $ $s0   4F3F/F'+F3FF$'F03F<r"   )rB   r>   r@   r  morphologizerc                     t               }|j                  |       } t        | dd       J t        | dd       }|J dt        |      v sJ y N
label_datarE   r  r   r6   getattrr   r"   r   rE   s      r   #test_pipe_label_data_exports_labelsrL    s[     *C<<D4t,888|T2J!!!}Z0000r   senterr   c                     t               }|j                  |       } t        | dd       J t        | dd       }|dt        |      vsJ y y rG  rI  rK  s      r   test_pipe_label_data_no_labelsrO  
  sX    
*C<<D4t,444|T2J}Z8888 r   c                     t               } | j                  d       d| j                  d   d   vsJ ddgi| j                  d   d   d<   | j                  d   d   d   ddgik(  sJ | j                  d       d| j                  d   d   vsJ | j                  d       d| j                  d   d   vsJ ddgi| j                  d   d   d<   | j	                  dd       d| j                  d   d   vsJ | j                  d   d   d   ddgik(  sJ ddi| j                  d   d   d	<   | j                  d
d	       d	| j                  d   d   v sJ | j                  d	       d	| j                  d   d   vsJ y)zDTest that the [initialize] config reflects the components correctly.rB   rE   r8  r  r;   	my_taggerr   bartestr@   r/   N)r   r6   r   r   r   r   s    r   test_pipe_methods_initializerT    s   
*CLL3::l3LAAAA8@7)7LCJJ|\*84::l#L1(;7)?TTTTOOH3::l3LAAAALL3::l3LAAAA8@7)7LCJJ|\*84OOHk*3::l3LAAAA::l#L1+>8gYBWWWW6;U^CJJ|\*62LLVL$SZZ-l;;;;OOFL1,????r   c            	        
 d} i 

fd}t        j                  |  d ||  d             t        j                  |  d ||  d             t        |  d|  dg      }t               }g d}g }|D ];  }|j	                  t        |j                  |      |j                  |                   = g |  dg|  d|  dg|  d|  dgfD ]  }
D ]  }d
|<   	 t        |j                        }|j                  |  d       |j                  |  d       |j                  ||	       |D ]"  }	
|	   dj                  d
 |D              k(  r"J  |t        |      z
  D ]  }	
|	   dk(  rJ   y )Ntest_with_annotatesc                       d <    fd}|S )Nr=   c                 6    xx   | j                   z  cc<   | S r   r.  r/  s    r   r,   zEtest_update_with_annotates.<locals>.make_component.<locals>.component1  s    DMSXX%MJr   r   r1  s   ` r   r2  z2test_update_with_annotates.<locals>.make_component.  r3  r   r.   r   r1   )abbcccr=   )r[   )	annotatesc              3   H   K   | ]  }|j                   j                    y wr   )	predictedrk   ).0egs     r   	<genexpr>z-test_update_with_annotates.<locals>.<genexpr>P  s     0Vr1B1B0Vs    ")r   r,   setr   r?  r
   r   r[   r6   updatejoin)r0   r2  r8  r   rF   examplesrk   components_to_annotatekeyr,   r0  s             @r   test_update_with_annotatesrh  *  s    DG $qz$qz(BC$qz$qz(BCajTF!*-.J
)CEH IT 2CLL4FGHI 	66vQZ 6vQZ 	# ,  	CGCL	CII&vQZ vQZ 

8'=
>/ 	WI9%0VX0V)VVVV	W#c*@&AA 	,I9%+++	,,r   i,  c            
         t               } | j                  d       | j                  d       | j                  d       t               5 }| j                  |       t	        j
                  |dgdddgii      j                  ddgk(  sJ t	        j
                  |dg       t        j                  t              5  t	        j
                  |dgddddgii       ddd       ddd       y# 1 sw Y   xY w# 1 sw Y   yxY w)	zMTest conflict between enable/disable w.r.t. `nlp.disabled` set in the config.rB   rM  r   r   r   )r   r   r   N)
r   r6   r   to_diskspacyloadr   r   r   r   )r   tmp_dirs     r   (test_enable_disable_conflict_with_configrn  U  s     )CLLLLLL	 7GzzXJ
XJ7O/P

(x/0 	0 0 	

7H:.]]:& 	JJ z
Xx,@AB	 	 	 s%   A2C7: C+C7+C4	0C77D c            
      \   t               } dD ]  }| j                  |        t               5 }| j                  |       ddg}ddg}d}t	        j
                  ||      }t        |D cg c]  }||j                  v  c}      sJ t	        j
                  ||      }t        |j                  D cg c]  }||j                  v ||vu  c}      sJ t	        j
                  ||      }||j                  vsJ t	        j
                  ||      }||j                  v sJ ||j                  vsJ |j                  |hk(  sJ |j                  |gk(  sJ t	        j
                  |||j                  D cg c]  }||vr|
 c}      }t        |j                  D cg c]  }||j                  v ||vu  c}      sJ t        j                  t              5  t	        j
                  ||dg       ddd       ddd       yc c}w c c}w c c}w c c}w # 1 sw Y   &xY w# 1 sw Y   yxY w)	z1Tests spacy.load() with dis-/enabling components.)r   rB   r>   r>   rB   r   r   )excluder  N)r   r6   r   rj  rk  rl  allr   r6  r7   	_disabledr   r   r   )base_nlpr"   rm  
to_disable	to_enable
single_strr   	comp_names           r   test_load_disable_enablerx  n  sU    yH3  $  
 0F7!)
x(	
 jj*5zJ)I-JKKK jj3 "%!4!4 cll*	0JK
 	
 
 jj*5!4!4444jj*5S00000///}},,,||
|+++ jj "%!4!4I- 
  "%!4!4 cll*	0JK
 	
 
 ]]:& 	FJJwy8*E	F_0F 0F K
(	F 	F_0F 0FsZ   <H")H
>3H"1H

B*H"4HH"H
5"H"H1H"H"H	H""H+)Dr#   r\   r   	thinc.apir   rk  spacy.lang.enr   spacy.lang.en.syntax_iteratorsr   spacy.languager   spacy.pipeliner   spacy.tokensr	   spacy.trainingr
   
spacy.utilr   r   r   spacy.vocabr   fixturer   r,   r   r   markissuer*   r9   rG   rq   r   r   r   r   parametrizer   r   r   r   r   r   r   r   r   r   r   r  r  r  r  r  r  r  r'  r)  r+  rD  rL  rO  rT  rh  rn  rx  r   r   r   <module>r     s   	   %  ! 6 # (  " D D    J   L! " 4 . 4. .( 4  4Q QD 4 $"(
8 (,& -&
 )B(CD( E(8
 /!23* 4* *<9:>	>4= ,/G.HI* J* .!12) 3) .!12 3 .!12 3 .!12 3 .!12" 3"&<. SE** +* '8J&KL  M 
 &LM' N'<"24<&~$8 
C11 (O!<=9 >9@,(,V 5 07Fr   