B e] @sddlmZddlZddlZddlZddlZddlZddlmZddl m Z m Z ddl m Z mZmZddlmZejddd Zejd d Zgdddddfd d ZddZddZddZddZddZdS))unicode_literalsN)Path)DocSpan)POSHEADDEP)path2strrccstj|d}|V|dS)N)mode)tempfile TemporaryFileclose)r fr3/tmp/pip-install-b8evvk6i/spacy/spacy/tests/util.py make_tempfiles rccs$tt}|Vtt|dS)N)rr mkdtempshutilrmtreer )drrr make_tempdirs rcs0|pdgt|}|p"dgt|}|p4dgt|}|pFdgt|}x |||D]}|j|qVWt||dtttg}xVtt |||D]B\} \} } } j j| || df<| || df<j j| || df<qW tttg||r fdd|D_ |r,xD]} || j | _qWS)z:Create Doc object from given vocab, words and annotations.r)wordscs*g|]"\}}}t||jj|dqS))label)rvocabstrings).0startendr)docrr /szget_doc..)lenraddrZto_arrayrrr enumerateziprZ from_arrayentsiZtag_)rrposZheadsdepstagsr(valueattrsr)pheaddeptokenr)r"rget_docs(      r3c Cs`x,|D]$}d|kr|d\}}||qW||}x|D]}||q@WWdQRXdS)zXPerform a series of pre-specified transitions, to put the parser in a desired state.-N)splitZ add_labelZ step_through transition)parserr"sequence action_namemoverZstepwiser6rrrapply_transition_sequence8s   r;cCs@t|dd}|j|dx|D]\}}|j||dq"W|S)zuAdd list of vector tuples to given vocab. All vectors need to have the same length. Format: [("text", [1, 2, 3])]rr)width)Zvector)r$Z reset_vectorsZ set_vector)rZvectorslengthwordZvecrrradd_vecs_to_vocabDs  r?cCs$t||tj|tj|S)z Get cosine for two given vectors)numpydotZlinalgZnorm)Zvec1Zvec2rrr get_cosineNsrBcCs<dd|Ddd|Dks tdd|Ddd|Dks@tdd|Ddd|Dks`tdd|Ddd|Dkstdd|Ddd|Dkst|jr|jrdd|jDdd|jDkstdd|Ddd|Dkstd d|Dd d|Dkstd d|jDd d|jDks8td S) zmCompare two Doc objects and assert that they're equal. Tests for tokens, tags, dependencies and entities.cSsg|] }|jqSr)Zorth)rtrrrr#Vsz%assert_docs_equal..cSsg|] }|jqSr)r*)rrCrrrr#XscSsg|] }|jqSr)tag)rrCrrrr#YscSsg|] }|jjqSr)r0r))rrCrrrr#[scSsg|] }|jqSr)r1)rrCrrrr#\scSsg|]}|qSrr)rsrrrr#^scSsg|] }|jqSr)Zent_type)rrCrrrr#`scSsg|] }|jqSr)Zent_iob)rrCrrrr#ascSsg|]}|qSrr)rentrrrr#bsN)AssertionErrorZ is_parsedZsentsr()Zdoc1Zdoc2rrrassert_docs_equalSs      $ "rHcCs|t|}t|}t|t|ks0txFtt|t|D](\\}}\}}||ksht||ksLtqLWdS)z2Assert that two packed msgpack messages are equal.N)srslyZ msgpack_loadssortedkeysrGr'items)Zb1Zb2Zmsg1Zmsg2k1v1k2Zv2rrrassert_packed_msg_equales   , rP)r ) __future__rr@r r contextlibrIZpathlibrZ spacy.tokensrrZ spacy.attrsrrrZ spacy.compatr contextmanagerrrr3r;r?rBrHrPrrrrs$