-í
˙1Dc       sK      d  k  Z   d  k Z  d f  d     YZ  d f  d     YZ d  S(   Ns	   IOCatcherc      s>    d  Z   
 d   Z  d   Z  d   Z  d   Z RS(   s0   Accumulates IO into a string for later use.
    c    s   
  |  i   d  S(   N(   s   selfs   clear(   s   self(    (    s   IOCatcher.pys   __init__
 s   c    s     d |  _ d  S(   Ns    (   s   selfs   s(   s   self(    (    s   IOCatcher.pys   clear s   c    s     |  i | |  _ d  S(   N(   s   selfs   ss   data(   s   selfs   data(    (    s   IOCatcher.pys   write s   c    s     |  i Sd  S(   N(   s   selfs   s(   s   self(    (    s   IOCatcher.pys
   getPrinted s   (   s   __doc__s   __init__s   clears   writes
   getPrinted(    (    (    s   IOCatcher.pys	   IOCatcher s
   	s   IOLoggerc      s&    d  Z    d   Z   d   Z RS(   sÔ   The IOLogger class can catch writes as if it were a file class.  
    It attempts to collect lines of input before calling the user-supplied
    output function.  ctor takes logFunction(str) as its sole argument.c    s     d |  _  | |  _ d  S(   Ns    (   s   selfs   strs   logFn(   s   selfs   logFn(    (    s   IOCatcher.pys   __init__ s   c    sŁ     ! |  i | |  _ " t i |  i d  } ( xk ( | d j oZ ) |  i d | !} * |  i d |  + |  i | d |  _ , t i |  i d  } q4 Wd  S(   Ns   
i˙˙˙˙i    s   python: i   (   s   selfs   strs   datas   strings   finds   poss   tmps   logFn(   s   selfs   datas   tmps   pos(    (    s   IOCatcher.pys   write  s    (   s   __doc__s   __init__s   write(    (    (    s   IOCatcher.pys   IOLogger s   	(   s   strings   syss	   IOCatchers   IOLogger(   s   syss	   IOCatchers   IOLoggers   string(    (    s   IOCatcher.pys   ? s   