B
    .(b                 @   s   d dl mZ d dlZd dlmZmZmZ d dlmZmZ ddl	m
Z
 eegZejdd Zejd	d
 Zejdd Zejdedd Zejdedd Zdd Zejjdddd Zdd Zdd Zdd Zdd Zejded d! ZdS )"    )unicode_literalsN)TaggerDependencyParserEntityRecognizer)
TensorizerTextCategorizer   )make_tempdirc             C   s6   t | }|d ||jj\|_}|j| |S )NZnsubj)r   Z	add_labelModelmovesn_movesmodelcfgupdate)en_vocabparserr    r   \/home/dcms/DCMS/lib/python3.7/site-packages/spacy/tests/serialize/test_serialize_pipeline.pyr      s
    
r   c             C   s   t | }|S )N)r   )r   r   r   r   r   blank_parser   s    r   c             C   s,   t | }t | }|d|_|j|_||fS )N   )r   r
   r   )r   tagger1tagger2r   r   r   taggers   s
    r   Parserc             C   sh   || }| d\|_}|| }| d\|_}||jdgd}|jdgd|jdgdksdtd S )N
   vocab)exclude)r
   r   
from_bytesto_bytesAssertionError)r   r   r   _
new_parserr   r   r   %test_serialize_parser_roundtrip_bytes&   s    r"   c       	   	   C   s   || }| d\|_}t f}|d }|| || }| d\|_}||}|jddgd}|jddgd}||kstW d Q R X d S )Nr   r   r   r   )r   )r
   r   r	   to_disk	from_diskr   r   )	r   r   r   r    d	file_pathZparser_dZparser_bytesZparser_d_bytesr   r   r   $test_serialize_parser_roundtrip_disk0   s    

r'   c             C   sn   | j dk	st|j dkst|jj| jjks0t| jdgd}|| |j dk	sVt|jj| jjksjtd S )NTr   )r   )r   r   r   r   r   r   )r   r   
bytes_datar   r   r   test_to_from_bytes?   s    
r)   zOThis seems to be a dict ordering bug somewhere. Only failing on some platforms.)reasonc             C   sL   |d }|  }||}|  |ks*tt| |}|  |ksHtd S )Nr   )r   r   r   r   )r   r   r   Z	tagger1_bZnew_tagger1r   r   r   %test_serialize_tagger_roundtrip_bytesI   s    
r+   c       	   	   C   sr   |\}}t  Z}|d }|d }|| || t| |}t| |}| | ksdtW d Q R X d S )Nr   r   )r	   r#   r   r$   r   r   )	r   r   r   r   r%   Z
file_path1Z
file_path2Z	tagger1_dZ	tagger2_dr   r   r   $test_serialize_tagger_roundtrip_diskU   s    

r,   c             C   sH   t | }| |_|jdgd}t | |}|jdgd|ksDtd S )Nr   )r   )r   r
   r   r   r   r   )r   
tensorizerZtensorizer_bZnew_tensorizerr   r   r   )test_serialize_tensorizer_roundtrip_bytesa   s
    
r.   c          	   C   sh   t | }| |_t F}|d }|| t | |}|jdgd|jdgdksZtW d Q R X d S )Nr-   r   )r   )r   r
   r   r	   r#   r$   r   r   )r   r-   r%   r&   Ztensorizer_dr   r   r   (test_serialize_tensorizer_roundtrip_diski   s    

r/   c             C   s$   t | dddgd}|jdgd d S )NZENTITYZACTIONZMODIFIER)labelsr   )r   )r   r   )r   Ztextcatr   r   r   test_serialize_textcat_emptyu   s    r1   c          	      s   fdd} }| d\|_}d|jd< | |jdgd}d|jksTt| j|jdgddgd}d|jks~t| j|jdgddgd}d|jksttt |jd	dgd
 W d Q R X tt  | j|jdgdd	d W d Q R X d S )Nc                 s    } |  d\| _}| S )Nr   )r
   r   )r!   r    )r   r   r   r   get_new_parser}   s    z3test_serialize_pipe_exclude.<locals>.get_new_parserr   barZfoor   )r   r   F)r   r   )r   )	r
   r   r   r   r   r   pytestZraises
ValueError)r   r   r2   r   r    r!   r   )r   r   r   test_serialize_pipe_exclude{   s     
r6   )
__future__r   r4   Zspacy.pipeliner   r   r   r   r   utilr	   Ztest_parsersZfixturer   r   r   markZparametrizer"   r'   r)   skipr+   r,   r.   r/   r1   r6   r   r   r   r   <module>   s$   		

