Ë
    a›¾jÑ  ã                   ó¾   — d dl Z d dlZd dlZd dlZd dlZd dlmZ d dlmZ d dl	m
Z
 d dlmZ d dlmZ e j                  dd„«       Zd„ Zd	„ Zd
„ Zd„ Zd„ Zd„ Zd„ Zd„ Zy)é    N)Úget_current_ops)ÚDoc)Úsplit_bilu_label)Úmake_tempdir)ÚVocabc              #   ó`   K  — t        j                  | ¬«      }|–— |j                  «        y ­w)N)Úmode)ÚtempfileÚTemporaryFileÚclose)r	   Úfs     úZ/home/spazio/kingdom_calls/work5/transenv/lib/python3.12/site-packages/spacy/tests/util.pyÚmake_tempfiler      s$   è ø€ ä×Ñ DÔ)€AØ
‚GØ‡G�G…Iùs   ‚,.c                 óà   — t        «       }g }d}t        d| dz   «      D ]H  }t        |||z   «      D �cg c]  }t        |«      ‘Œ }}|j                  t	        ||¬«      «       ||z  }ŒJ |S c c}w )Nr   é   ©Úwords)r   ÚrangeÚstrÚappendr   )Ú
batch_sizeÚvocabÚdocsÚstartÚsizeÚiÚnumberss          r   Ú	get_batchr      sy   € Ü‹G€EØ€DØ€EÜ�a˜ a™Ó(ò ˆô $)¨°¸±Ó#=Ö>˜a”3�q•6Ð>ˆÐ>Ø�‰”C˜ WÔ-Ô.Ø�‰‰ðð €Kùò ?s   ²A+c                 ó~   — t        «       }t        d| «      D �cg c]  }t        |«      ‘Œ }}t        ||¬«      S c c}w )Nr   r   )r   r   r   r   )Ún_wordsr   r   r   s       r   Úget_random_docr!   #   s9   € Ü‹G€Eä$ Q¨Ó0Ö1˜!Œs�1�vÐ1€GÐ1Üˆu˜GÔ$Ð$ùò 2s   ™:c                 óØ   — |D ]&  }d|v sŒt        |«      \  }}| j                  |«       Œ( | j                  |«      5 }|D ]  }|j                  |«       Œ 	 ddd«       y# 1 sw Y   yxY w)zXPerform a series of pre-specified transitions, to put the parser in a
    desired state.ú-N)r   Ú	add_labelÚstep_throughÚ
transition)ÚparserÚdocÚsequenceÚaction_nameÚmoveÚlabelÚstepwiser&   s           r   Úapply_transition_sequencer.   *   s{   € ð  ò $ˆØ�+ÒÜ*¨;Ó7‰KˆD�%Ø×Ñ˜UÕ#ð$ð 
×	Ñ	˜SÓ	!ð , XØ"ò 	,ˆJØ×Ñ 
Õ+ñ	,÷,÷ ,ñ ,ús   ½A Á A)c                 ó†   — t        |d   d   «      }| j                  |¬«       |D ]  \  }}| j                  ||¬«       Œ | S )zuAdd list of vector tuples to given vocab. All vectors need to have the
    same length. Format: [("text", [1, 2, 3])]r   r   )Úwidth)Úvector)ÚlenÚreset_vectorsÚ
set_vector)r   ÚvectorsÚlengthÚwordÚvecs        r   Úadd_vecs_to_vocabr9   6   sR   € ô �˜‘˜A‘Ó€FØ	×Ñ˜fÐÔ%Øò +‰	ˆˆcØ×Ñ˜ cÐÕ*ð+à€Ló    c                 óB  — t        «       }|j                  |j                  | «      «      }|j                  |j                  |«      «      }t        j                  ||«      t        j
                  j                  |«      t        j
                  j                  |«      z  z  S )z Get cosine for two given vectors)r   Úto_numpyÚasarrayÚnumpyÚdotÚlinalgÚnorm)Úvec1Úvec2ÚOPSÚv1Úv2s        r   Ú
get_cosinerG   @   sq   € ä
Ó
€CØ	�‰�c—k‘k $Ó'Ó	(€BØ	�‰�c—k‘k $Ó'Ó	(€BÜ�9‰9�R˜Ó¤§¡× 1Ñ 1°"Ó 5¼¿¹×8IÑ8IÈ"Ó8MÑ MÑNÐNr:   c                 ód  — | D �cg c]  }|j                   ‘Œ c}|D �cg c]  }|j                   ‘Œ c}k(  sJ ‚| D �cg c]  }|j                  ‘Œ c}|D �cg c]  }|j                  ‘Œ c}k(  sJ ‚| D �cg c]  }|j                  ‘Œ c}|D �cg c]  }|j                  ‘Œ c}k(  sJ ‚| D �cg c]  }|j                  j                  ‘Œ c}|D �cg c]  }|j                  j                  ‘Œ c}k(  sJ ‚| D �cg c]  }|j
                  ‘Œ c}|D �cg c]  }|j
                  ‘Œ c}k(  sJ ‚| D �cg c]  }|j                  ‘Œ c}|D �cg c]  }|j                  ‘Œ c}k(  sJ ‚| D �cg c]  }|j                  ‘Œ c}|D �cg c]  }|j                  ‘Œ c}k(  sJ ‚| D �cg c]  }|j                  ‘Œ c}|D �cg c]  }|j                  ‘Œ c}k(  sJ ‚t        | j                  |j                  «      D ]q  \  }}|j                  |j                  k(  sJ ‚|j                  |j                  k(  sJ ‚|j                  |j                  k(  sJ ‚|j                  |j                  k(  rŒqJ ‚ yc c}w c c}w c c}w c c}w c c}w c c}w c c}w c c}w c c}w c c}w c c}w c c}w c c}w c c}w c c}w c c}w )zmCompare two Doc objects and assert that they're equal. Tests for tokens,
    tags, dependencies and entities.N)ÚorthÚposÚtagÚheadr   ÚdepÚis_sent_startÚent_typeÚent_iobÚzipÚentsr   Úendr,   Úkb_id)Údoc1Údoc2ÚtÚent1Úent2s        r   Úassert_docs_equalrZ   H   s  € ð !Ö!�qˆA�F‹FÒ!°dÖ%;° a§f£fÒ%;Ò;Ð;Ð;àÖ �aˆA�E‹EÒ °DÖ$9¨q Q§U£UÒ$9Ò9Ð9Ð9ØÖ �aˆA�E‹EÒ °DÖ$9¨q Q§U£UÒ$9Ò9Ð9Ð9à"Ö#˜ˆA�F‰F�H‹HÒ#¸$Ö'?°Q¨¯©¯«Ò'?Ò?Ð?Ð?ØÖ �aˆA�E‹EÒ °DÖ$9¨q Q§U£UÒ$9Ò9Ð9Ð9Ø%)Ö* ˆA�O‹OÒ*ÈÖ.MÀ1¨q¯«Ò.MÒMÐMÐMà $Ö%˜1ˆA�J‹JÒ%¸dÖ)C¸¨!¯*«*Ò)CÒCÐCÐCØ#Ö$˜!ˆA�I‹IÒ$¸DÖ(A°q¨¯«Ò(AÒAÐAÐAÜ˜$Ÿ)™) T§Y¡YÓ/ò (‰
ˆˆdØ�z‰z˜TŸZ™ZÒ'Ð'Ð'Ø�x‰x˜4Ÿ8™8Ò#Ð#Ð#Ø�z‰z˜TŸZ™ZÒ'Ð'Ð'Ø�z‰z˜TŸZ™ZÓ'Ð'Ð'ñ	(ùò "ùÒ%;ùâ ùÒ$9ùÚ ùÒ$9ùâ#ùÒ'?ùÚ ùÒ$9ùÚ*ùÒ.Mùâ%ùÒ)CùÚ$ùÒ(As]   …I"žI'¼I,ÁI1Á3I6ÂI;Â*J ÃJÃ5J
ÄJÄ,JÅJÅ#JÅ<J#ÆJ(Æ3J-c                 ón  — t        j                  | «      }t        j                  |«      }t        |j                  «       «      t        |j                  «       «      k(  sJ ‚t	        t        |j                  «       «      t        |j                  «       «      «      D ]  \  \  }}\  }}||k(  sJ ‚||k(  rŒJ ‚ y)z2Assert that two packed msgpack messages are equal.N)ÚsrslyÚmsgpack_loadsÚsortedÚkeysrQ   Úitems)Úb1Úb2Úmsg1Úmsg2Úk1rE   Úk2rF   s           r   Úassert_packed_msg_equalrg   ]   s•   € ä×Ñ˜rÓ"€DÜ×Ñ˜rÓ"€DÜ�$—)‘)“+Ó¤&¨¯©«Ó"5Ò5Ð5Ð5Ü!¤&¨¯©«Ó"6¼¸t¿z¹z»|Ó8LÓMò Ñ‰ˆˆR‘(�2�rØ�RŠxˆˆxØ�R‹xˆˆxñr:   c                 ó0   — t        j                  dd| «      S )Nz\s+ú )ÚreÚsub)Úss    r   Únormalize_whitespacerm   g   s   € Ü�6‰6�&˜#˜qÓ!Ð!r:   )Úr)Ú
contextlibrj   r
   r>   r\   Ú	thinc.apir   Úspacy.tokensr   Úspacy.trainingr   Ú
spacy.utilr   Úspacy.vocabr   Úcontextmanagerr   r   r!   r.   r9   rG   rZ   rg   rm   © r:   r   ú<module>rw      sf   ðÛ Û 	Û ã Û Ý %å Ý +Ý #Ý ð ×Ñòó ðò
ò%ò	,òòOò(ò*ó"r:   