ó
gbc           @   sú   d  d l  Z  d  d l Z d  d l m Z d  d l m Z e  j d e  j  Z e  j d e  j  Z e  j d e  j	  Z
 e  j d e  j	 e  j  Z e  j d  Z e  j d	 e  j  Z e  j d
 e  j  Z e  j d  Z d   Z d   Z d   Z d S(   i˙˙˙˙N(   t   embl(   t   nucEntryIterators   (^FT  .*
)+s   ^FTs   ^ID.+(?=
FH  )s   (^    ).+(?=//
)s   [ 
0-9]+s   (?<=^AC   ).+s   (^DE   .+
)+s	   (^|
)DE +c         C   sF  yę t  j |   j   } t j |   j   } t j d |  } t j |   j   } t j d |  j   } t	 j |   j   } | j
 d d  } | j   } | d } | d } t j |  j   } t j d |  j   j d  } WnC t k
 r/} t j d I|  j   d Id	 I| Id
 IJd  SX| | | | | | f S(   Ns     t    t   ;t    i    i   t   .s   
Could not import sequence id:s   (error raised:t   )(   t   _headerMatchert   searcht   groupt   _featureMatchert   _cleanFTt   subt   _seqMatchert	   _cleanSeqt   uppert
   _acMatchert   replacet   splitt
   _deMatchert   _cleanDet   stript	   Exceptiont   syst   stderrt   None(   t   textt   headert   ftt   seqt   acst   act   det   e(    (    s9   lib/python2.7/site-packages/obitools/seqdb/embl/parser.pyt   __emblparser   s"    

%/c         C   s-   t  |   } | d  k	 r% t j |   Sd  Sd  S(   N(   R"   R   R    t   EmblSequence(   R   t   parsed_text(    (    s9   lib/python2.7/site-packages/obitools/seqdb/embl/parser.pyt
   emblParser,   s    c         c   s&   x t  |   D] } t |  Vq Wd  S(   N(   R   R%   (   t   fileR!   (    (    s9   lib/python2.7/site-packages/obitools/seqdb/embl/parser.pyt   emblIterator4   s    (   t   reR   t   obitools.seqdbR    R   t   compilet   MR
   R   t   DOTALLR   R   R   R   R   R   R"   R%   R'   (    (    (    s9   lib/python2.7/site-packages/obitools/seqdb/embl/parser.pyt   <module>   s   		