##// END OF EJS Templates
Merge branch 'fix-del-method-exit-test' of http://github.com/takowl/ipython into takowl-fix-del-method-exit-test...
Merge branch 'fix-del-method-exit-test' of http://github.com/takowl/ipython into takowl-fix-del-method-exit-test Fix errors with __del__ methods being called on exit. This branch reintroduces a recent fix that got accidentally overwritten, as well as adding a more stringent form of the test so that we don't miss it again in the future (the old test only printed a message but didn't fail, so it was easy to miss). Closes gh-172 (pull request).

File last commit:

r1459:8d08214a
r3178:5c6a3477 merge
Show More
file_like.py
66 lines | 1.7 KiB | text/x-python | PythonLexer
# 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