U e([V�* � @ s� d dl Z d dlZd dlZd dlZd dlZddlmZmZ eje � dd�d Zer`d dlm Z nd dlZddlmZ G dd� de�Zd d � ZG dd� de�ZG d d� de�ZdS )� N� )� iteritems�PY2�.)�StringIO)�_find_binary_readerc @ sP e Zd Zdd� Zdd� Zdd� Zddd �Zdd d�Zdd � Zdd� Z dd� Z dS )�EchoingStdinc C s || _ || _d S �N)�_input�_output)�self�input�output� r �/testing.py�__init__ s zEchoingStdin.__init__c C s t | j|�S r )�getattrr )r �xr r r �__getattr__ s zEchoingStdin.__getattr__c C s | j �|� |S r )r �write)r �rvr r r �_echo! s zEchoingStdin._echo���c C s | � | j�|��S r )r r �read�r �nr r r r % s zEchoingStdin.readc C s | � | j�|��S r )r r �readliner r r r r ( s zEchoingStdin.readlinec s � fdd�� j �� D �S )Nc s g | ]}� � |��qS r �r ��.0r �r r r � <listcomp>, s z*EchoingStdin.readlines.<locals>.<listcomp>)r � readlinesr r r r r"