ó
¸¬¼Ic           @   sx   d  Z  d „  Z d „  Z d d d „  ƒ  YZ d d d „  ƒ  YZ d „  Z d „  Z d	 „  Z d
 „  Z d „  Z	 d „  Z
 d S(   s®  
This module provides code to work with the prosite.doc file from
Prosite.
http://www.expasy.ch/prosite/

Tested with:
Release 15.0, July 1998
Release 16.0, July 1999
Release 20.22, 13 November 2007
Release 20.43, 10 February 2009


Functions:
read               Read a Prodoc file containing exactly one Prodoc entry.
parse              Iterates over entries in a Prodoc file.

Classes:
Record             Holds Prodoc data.
Reference          Holds data from a Prodoc reference.


DEPRECATED functions:
index_file         Index a Prodoc file for a Dictionary.
_extract_record    Extract Prodoc data from a web page.

DEPRECATED classes:
Dictionary         Accesses a Prodoc file using a dictionary interface.
RecordParser       Parses a Prodoc record into a Record object.
_Scanner           Scans Prodoc-formatted data.
_RecordConsumer    Consumes Prodoc data to a Record object.
Iterator           Iterates over entries in a Prodoc file.
c         C   s1   t  |  ƒ } |  j ƒ  } | r- t d ƒ ‚ n  | S(   Ns!   More than one Prodoc record found(   t   __readt   readlinet
   ValueError(   t   handlet   recordt   line(    (    s„   /oak/stanford/groups/akundaje/marinovg/programs/biopython-1.50.tar.gz/biopython-1.50/build/lib.linux-x86_64-2.7/Bio/ExPASy/Prodoc.pyt   read(   s
    c         c   s,   x% t  r' t |  ƒ } | s d  S| Vq Wd  S(   N(   t   TrueR    (   R   R   (    (    s„   /oak/stanford/groups/akundaje/marinovg/programs/biopython-1.50.tar.gz/biopython-1.50/build/lib.linux-x86_64-2.7/Bio/ExPASy/Prodoc.pyt   parse0   s
    	t   Recordc           B   s   e  Z d  Z d „  Z RS(   s  Holds information from a Prodoc record.

    Members:
    accession      Accession number of the record.
    prosite_refs   List of tuples (prosite accession, prosite name).
    text           Free format text.
    references     List of reference objects.

    c         C   s(   d |  _  g  |  _ d |  _ g  |  _ d  S(   Nt    (   t	   accessiont   prosite_refst   textt
   references(   t   self(    (    s„   /oak/stanford/groups/akundaje/marinovg/programs/biopython-1.50.tar.gz/biopython-1.50/build/lib.linux-x86_64-2.7/Bio/ExPASy/Prodoc.pyt   __init__A   s    			(   t   __name__t
   __module__t   __doc__R   (    (    (    s„   /oak/stanford/groups/akundaje/marinovg/programs/biopython-1.50.tar.gz/biopython-1.50/build/lib.linux-x86_64-2.7/Bio/ExPASy/Prodoc.pyR	   7   s   	t	   Referencec           B   s   e  Z d  Z d „  Z RS(   sº   Holds information from a Prodoc citation.

    Members:
    number     Number of the reference. (string)
    authors    Names of the authors.
    citation   Describes the citation.

    c         C   s   d |  _  d |  _ d |  _ d  S(   NR
   (   t   numbert   authorst   citation(   R   (    (    s„   /oak/stanford/groups/akundaje/marinovg/programs/biopython-1.50.tar.gz/biopython-1.50/build/lib.linux-x86_64-2.7/Bio/ExPASy/Prodoc.pyR   Q   s    		(   R   R   R   R   (    (    (    s„   /oak/stanford/groups/akundaje/marinovg/programs/biopython-1.50.tar.gz/biopython-1.50/build/lib.linux-x86_64-2.7/Bio/ExPASy/Prodoc.pyR   H   s   c         C   se   | j  ƒ  } | d d k r/ t d | ƒ ‚ n  | d d !j d ƒ \ } } |  j j | | f ƒ d  S(   Niÿÿÿÿt   }s3   I don't understand the Prosite reference on line
%si   s   ; (   t   rstripR   t   splitR   t   append(   R   R   t   acct   name(    (    s„   /oak/stanford/groups/akundaje/marinovg/programs/biopython-1.50.tar.gz/biopython-1.50/build/lib.linux-x86_64-2.7/Bio/ExPASy/Prodoc.pyt   __read_prosite_reference_lineX   s
    c         C   s   |  j  | 7_  t S(   N(   R   R   (   R   R   (    (    s„   /oak/stanford/groups/akundaje/marinovg/programs/biopython-1.50.tar.gz/biopython-1.50/build/lib.linux-x86_64-2.7/Bio/ExPASy/Prodoc.pyt   __read_text_line_   s    c         C   sl   t  ƒ  } | d d !j ƒ  | _ | d d k rE | d j ƒ  | _ n | d j ƒ  | _ |  j j | ƒ d  S(   Ni   i   t   Ei   (   R   t   stripR   R   R   R   R   (   R   R   t	   reference(    (    s„   /oak/stanford/groups/akundaje/marinovg/programs/biopython-1.50.tar.gz/biopython-1.50/build/lib.linux-x86_64-2.7/Bio/ExPASy/Prodoc.pyt   __read_reference_startc   s    	c         C   s†   | j  ƒ  s t S|  j d } | j d ƒ rr | j d d k r[ | j | d j ƒ  7_ n | j | d 7_ t St d | ƒ ‚ d  S(   Niÿÿÿÿs        t   ,i   i   s(   I don't understand the reference line
%s(	   R!   t   FalseR   t
   startswithR   R   R   R   t	   Exception(   R   R   R"   (    (    s„   /oak/stanford/groups/akundaje/marinovg/programs/biopython-1.50.tar.gz/biopython-1.50/build/lib.linux-x86_64-2.7/Bio/ExPASy/Prodoc.pyt   __read_reference_lineo   s    c         C   s   | j  d ƒ r t St S(   Ns   +----(   R&   R%   R   (   R   R   (    (    s„   /oak/stanford/groups/akundaje/marinovg/programs/biopython-1.50.tar.gz/biopython-1.50/build/lib.linux-x86_64-2.7/Bio/ExPASy/Prodoc.pyt   __read_copyright_line{   s    c         C   sé  x8 |  D], } | j  ƒ  } | r | j d ƒ r Pq q Wd  St ƒ  } | j d ƒ sf t d | ƒ ‚ n  | d d k r‰ t d | ƒ ‚ n  | d d !| _ x: |  D]& } | j d ƒ rÅ t | | ƒ q  Pq  Wt d	 ƒ ‚ | j d
 ƒ sø t d | ƒ ‚ n  t } xØ |  D]Ð } | j d ƒ rVx5 | j D]* } | j	 j  ƒ  | _	 | j
 j  ƒ  | _
 q$W| S| d d k rœ| d d k rœ| d d k rœt | | ƒ t } q| j d ƒ r´t } q| r| | | ƒ sÕd  } qÕqqWt d	 ƒ ‚ d  S(   Ns   //s   {PDOCs$   Line does not start with '{PDOC':
%siÿÿÿÿR   s$   I don't understand accession line
%si   s   {PSs   Unexpected end of stream.s   {BEGINs%   Line does not start with '{BEGIN':
%ss   {END}i    t   [i   t   ]i   t    s   +----(   R   R&   t   NoneR	   R   R   R   R   R   R   R   R#   R(   R)   (   R   R   R   t	   read_lineR"   (    (    s„   /oak/stanford/groups/akundaje/marinovg/programs/biopython-1.50.tar.gz/biopython-1.50/build/lib.linux-x86_64-2.7/Bio/ExPASy/Prodoc.pyR       sD    	0		N(    (    (   R   R   R   R	   R   R   R   R#   R(   R)   R    (    (    (    s„   /oak/stanford/groups/akundaje/marinovg/programs/biopython-1.50.tar.gz/biopython-1.50/build/lib.linux-x86_64-2.7/Bio/ExPASy/Prodoc.pyt   <module>%   s   							