File size: 1,564 Bytes
d1ceb73 |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 |
"""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 LICENSE, distributed as part of this software.
# -----------------------------------------------------------------------------
# -----------------------------------------------------------------------------
# Imports
# -----------------------------------------------------------------------------
# -----------------------------------------------------------------------------
# Code
# -----------------------------------------------------------------------------
from __future__ import annotations
class NotebookReader:
"""The base notebook reader."""
def reads(self, s, **kwargs):
"""Read a notebook from a string."""
msg = "loads must be implemented in a subclass"
raise NotImplementedError(msg)
def read(self, fp, **kwargs):
"""Read a notebook from a file like object"""
return self.reads(fp.read(), **kwargs)
class NotebookWriter:
"""The base notebook writer."""
def writes(self, nb, **kwargs):
"""Write a notebook to a string."""
msg = "loads must be implemented in a subclass"
raise NotImplementedError(msg)
def write(self, nb, fp, **kwargs):
"""Write a notebook to a file like object"""
return fp.write(self.writes(nb, **kwargs))
|