ó
a#nSc           @   sv   d  d l  Z  d  d l m Z d e f d     YZ d   Z e d k rr d  d l  Z  e   \ Z Z e  j e  n  d S(   i˙˙˙˙N(   t   VLibNodet
   SupplyNodec           B   s8   e  Z d  Z d d  Z d   Z d   Z d d  Z RS(   s˛   base class for nodes which supply things

  Assumptions:
    1) no parents
  
  Usage Example:
    >>> supplier = SupplyNode(contents=[1,2,3])
    >>> supplier.next()
    1
    >>> supplier.next()
    2
    >>> supplier.next()
    3
    >>> supplier.next()
    Traceback (most recent call last):
        ...
    StopIteration
    >>> supplier.reset()
    >>> supplier.next()
    1
    >>> [x for x in supplier]
    [1, 2, 3]
    

  c         K   s>   t  j |  |  | d  k	 r( | |  _ n	 g  |  _ d |  _ d  S(   Ni    (   R    t   __init__t   Nonet	   _contentst   _pos(   t   selft   contentst   kwargs(    (    sS   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/python2.7/site-packages/rdkit/VLib/Supply.pyR   $   s
    	c         C   s   t  j |   d |  _ d  S(   Ni    (   R    t   resetR   (   R   (    (    sS   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/python2.7/site-packages/rdkit/VLib/Supply.pyR	   ,   s    c         C   sD   |  j  t |  j  k r! t  n  |  j |  j  } |  j  d 7_  | S(   Ni   (   R   t   lenR   t   StopIteration(   R   t   res(    (    sS   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/python2.7/site-packages/rdkit/VLib/Supply.pyt   next/   s
    	i   c         C   s   t  d  d  S(   Ns   SupplyNodes do not have parents(   t
   ValueError(   R   t   parentt   notify(    (    sS   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/python2.7/site-packages/rdkit/VLib/Supply.pyt	   AddParent6   s    N(   t   __name__t
   __module__t   __doc__R   R   R	   R   R   (    (    (    sS   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/python2.7/site-packages/rdkit/VLib/Supply.pyR   
   s
   		c          C   s,   d d  l  }  d d  l } |  j | j d  S(   Ni˙˙˙˙t   __main__(   t   doctestt   syst   testmodt   modules(   R   R   (    (    sS   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/python2.7/site-packages/rdkit/VLib/Supply.pyt   _test>   s    R   (	   R   t   rdkit.VLib.NodeR    R   R   R   t   failedt   triedt   exit(    (    (    sS   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/python2.7/site-packages/rdkit/VLib/Supply.pyt   <module>   s   4	