B
    =]                 @   s   d dl Z d dlZd dlmZ d dlmZmZmZmZm	Z	m
Z
mZmZ e dZddgZdd Zd	d
 Zdd Zdd Zdd Zdd Zdd Zdd Zdd Zdd Zdd Zdd Zdd  Zd!d" Zd#d$ Zd%d& Zd'd( Z d)d* Z!d+d, Z"dS )-    N)func)SpaVerbEngVerbPronoun	ExceptionTranslationEndingTensePersonz([\w\s]+) \(.*PresentZ	Preteritec             C   s(   t jj| |j|jd }|r$|jS dS )N)spa_verb	person_idtense_idF)r   query	filter_byidfirstconjugation)spaverbtensepersonp r   /var/www/html/conj/appl/verb.pyspecial   s
    r   c             C   s   t jj| d S )N)name)r	   r   r   r   )	tensenamer   r   r   tensename2tense   s    r   c             C   s\   t |}t| }t|||}|r$|S tjj|j|j|jd }|rT|j	 |j
 S dS d S )N)endingr   r   zwtf?)r   
getspaverbr   r   r   r   r   r   r   ZstemZ	newending)
spaverbinfr   r   r   r   ser   r   r   	conjugate   s    r#   c             C   sp   |  }tdd|}t| }tjj|jd }x8|D ]0}|j	j
}t|}|r\|d}||kr8dS q8W dS )Nz\s+ )Zspa_verb_id   TF)stripresubr   r   r   r   r   alleng_verb
infinitiveTransREmatchgroup)r    transr   tlatstmr   r   r   matchtranslation&   s    


r3   c             C   sp   |  }tdd|}t| }tjj|jd }x8|D ]0}|j	j
}t|}|r\|d}||kr8dS q8W dS )Nz\s+r$   )Zeng_verb_idr%   TF)r&   r'   r(   
getengverbr   r   r   r   r)   r   r+   r,   r-   r.   )
engverbinfr/   Zengverbr0   r1   r2   r   r   r   matchengtranslation5   s    


r6   c             C   sJ   t |}| }tdd|}tjj|d }|j}t	| ||}||kS )Nz\s+r$   )pronoun)
r   r&   r'   r(   r   r   r   r   r   r#   )r    r   r7   r/   r   pronr   conjr   r   r   matchconjugationD   s    r:   c             C   s   t | }ddd |jD S )Nz; c             S   s   g | ]}|j jqS r   )r*   r+   ).0r1   r   r   r   
<listcomp>R   s    z!spa_trans_str.<locals>.<listcomp>)r   jointranslations)r    vr   r   r   spa_trans_strP   s    r@   c             C   s   t jj| d S )N)r+   )r   r   r   r   )r+   r   r   r   r   T   s    r   c             C   s   t | d k	S )N)r   )r+   r   r   r   
chkspaverbW   s    rA   c             C   s   t jj| d S )N)r+   )r   r   r   r   )r+   r   r   r   r4   Z   s    r4   c             C   s   t | d k	S )N)r4   )r+   r   r   r   
chkengverb]   s    rB   c             C   s   t | }ddd |jD S )Nz; c             S   s   g | ]}|j jqS r   )r   r+   )r;   r1   r   r   r   r<   b   s    z!eng_trans_str.<locals>.<listcomp>)r4   r=   r>   )r5   r?   r   r   r   eng_trans_str`   s    rC   c               C   s   t jt  jS )N)r   r   order_byr   randomr   r+   r   r   r   r   
randomverbd   s    rF   c               C   s   t jt  jS )N)r   r   rD   r   rE   r   r+   r   r   r   r   eng_randomverbg   s    rG   c              C   sF   t jt  } tjt  }tjjdd }t	||| S )Nr   )r   )
r
   r   rD   r   rE   r   r   r	   r   r#   )r   r?   r1   r   r   r   randomverbconjj   s    rH   c              C   s*   t jt  } tdd | jD S )Nc             S   s   g | ]
}|j qS r   )r7   )r;   r8   r   r   r   r<   u   s    z!randompronoun.<locals>.<listcomp>)r
   r   rD   r   rE   r   choicepronouns)r   r   r   r   randompronouns   s    rK   c             C   s   t jj| d }|jS )N)r7   )r   r   r   r   r   )r7   r8   r   r   r   pronoun2personw   s    rL   c              C   s   t jt  } | jS )N)r	   r   rD   r   rE   r   r   )r1   r   r   r   randomtense{   s    rM   c             C   sB   | dk s| dkrt |  dtjt | }dd |D S )Nr%      z is not between 1 and 5c             S   s   g | ]}t t|jjqS r   )rE   rI   listrJ   r7   )r;   r   r   r   r   r<      s    z"randompronouns.<locals>.<listcomp>)
ValueErrorr
   r   rD   r   rE   limit)numZpersonsr   r   r   randompronouns   s    rS   )#r'   rE   sqlalchemy.sqlr   appl.modelsr   r   r   r   r   r   r	   r
   compiler,   
TenseNamesr   r   r#   r3   r6   r:   r@   r   rA   r4   rB   rC   rF   rG   rH   rK   rL   rM   rS   r   r   r   r   <module>   s.   (
	