You cannot select more than 25 topics
			Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
		
		
		
		
		
			
		
			
				
	
	
		
			49 lines
		
	
	
		
			1.5 KiB
		
	
	
	
		
			Python
		
	
			
		
		
	
	
			49 lines
		
	
	
		
			1.5 KiB
		
	
	
	
		
			Python
		
	
"""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))
 |