|
|
# encoding: utf-8
|
|
|
|
|
|
""" File like object that redirects its write calls to a given callback."""
|
|
|
|
|
|
__docformat__ = "restructuredtext en"
|
|
|
|
|
|
#-------------------------------------------------------------------------------
|
|
|
# Copyright (C) 2008 The IPython Development Team
|
|
|
#
|
|
|
# Distributed under the terms of the BSD License. The full license is in
|
|
|
# the file COPYING, distributed as part of this software.
|
|
|
#-------------------------------------------------------------------------------
|
|
|
|
|
|
import sys
|
|
|
|
|
|
class FileLike(object):
|
|
|
""" FileLike object that redirects all write to a callback.
|
|
|
|
|
|
Only the write-related methods are implemented, as well as those
|
|
|
required to read a StringIO.
|
|
|
"""
|
|
|
closed = False
|
|
|
|
|
|
def __init__(self, write_callback):
|
|
|
self.write = write_callback
|
|
|
|
|
|
def flush(self):
|
|
|
""" This method is there for compatibility with other file-like
|
|
|
objects.
|
|
|
"""
|
|
|
pass
|
|
|
|
|
|
def close(self):
|
|
|
""" This method is there for compatibility with other file-like
|
|
|
objects.
|
|
|
"""
|
|
|
pass
|
|
|
|
|
|
def writelines(self, lines):
|
|
|
map(self.write, lines)
|
|
|
|
|
|
def isatty(self):
|
|
|
""" This method is there for compatibility with other file-like
|
|
|
objects.
|
|
|
"""
|
|
|
return False
|
|
|
|
|
|
def getvalue(self):
|
|
|
""" This method is there for compatibility with other file-like
|
|
|
objects.
|
|
|
"""
|
|
|
return ''
|
|
|
|
|
|
def reset(self):
|
|
|
""" This method is there for compatibility with other file-like
|
|
|
objects.
|
|
|
"""
|
|
|
pass
|
|
|
|
|
|
def truncate(self):
|
|
|
""" This method is there for compatibility with other file-like
|
|
|
objects.
|
|
|
"""
|
|
|
pass
|
|
|
|
|
|
|
|
|
|