e([V�* � @ s� d d l Z d d l Z d d l Z d d l Z d d l Z d d l m Z m Z e j e j d d � d Z e r� d d l m Z n d d l Z d d l m Z Gd d � d e � Z d d � Z Gd d � d e � Z Gd d � d e � Z d S)� N� )� iteritems�PY2�.)�StringIO)�_find_binary_readerc @ sv e Z d Z d d � Z d d � Z d d � Z d d d � Z d d d � Z d d � Z d d � Z d d � Z d S)�EchoingStdinc C s | | _ | | _ d S)N)�_input�_output)�self�input�output� r �/testing.py�__init__ s zEchoingStdin.__init__c C s t | j | � S)N)�getattrr )r �xr r r �__getattr__ s zEchoingStdin.__getattr__c C s | j j | � | S)N)r �write)r �rvr r r �_echo! s zEchoingStdin._echor c C s | j | j j | � � S)N)r r �read)r �nr r r r % s zEchoingStdin.readc C s | j | j j | � � S)N)r r �readline)r r r r r r ( s zEchoingStdin.readlinec s � f d d � � j j � D� S)Nc s g | ] } � j | � � q Sr )r )�.0r )r r r � <listcomp>, s z*EchoingStdin.readlines.<locals>.<listcomp>)r � readlines)r r )r r r + s zEchoingStdin.readlinesc s t � f d d � � j D� � S)Nc 3 s | ] } � j | � Vq d S)N)r )r r )r r r � <genexpr>/ s z(EchoingStdin.__iter__.<locals>.<genexpr>)�iterr )r r )r r �__iter__. s zEchoingStdin.__iter__c C s t | j � S)N)�reprr )r r r r �__repr__1 s zEchoingStdin.__repr__N���r"