##// END OF EJS Templates
Major restructuring of magics, breaking them up into separate classes....
Major restructuring of magics, breaking them up into separate classes. This is the first step to get the new magic architecture in place, with a new base class for magic functions. At this point IPython does *not* run, but the changes are extensive enough to warrant intermediate non-working commits.

File last commit:

r4609:a661b7c0
r6917:6c6e057a
Show More
rwbase.py
47 lines | 1.4 KiB | text/x-python | PythonLexer
Brian E. Granger
More review changes....
r4609 """Base classes and function for readers and writers.
Authors:
* Brian Granger
"""
#-----------------------------------------------------------------------------
# Copyright (C) 2008-2011 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.
#-----------------------------------------------------------------------------
#-----------------------------------------------------------------------------
# Imports
#-----------------------------------------------------------------------------
Brian E. Granger
Full versioning added to nbformat.
r4406 from base64 import encodestring, decodestring
Brian E. Granger
More review changes....
r4609 #-----------------------------------------------------------------------------
# Code
#-----------------------------------------------------------------------------
Brian E. Granger
Full versioning added to nbformat.
r4406
class NotebookReader(object):
def reads(self, s, **kwargs):
"""Read a notebook from a string."""
raise NotImplementedError("loads must be implemented in a subclass")
def read(self, fp, **kwargs):
"""Read a notebook from a file like object"""
return self.reads(fp.read(), **kwargs)
class NotebookWriter(object):
def writes(self, nb, **kwargs):
"""Write a notebook to a string."""
raise NotImplementedError("loads must be implemented in a subclass")
def write(self, nb, fp, **kwargs):
"""Write a notebook to a file like object"""
return fp.write(self.writes(nb,**kwargs))