__init__.py
80 lines
| 2.5 KiB
| text/x-python
|
PythonLexer
Brian E. Granger
|
r4609 | """The main API for the v2 notebook format. | ||
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
|
r4406 | |||
cel
|
r17553 | import os | ||
Brian E. Granger
|
r4406 | from .nbbase import ( | ||
NotebookNode, | ||||
Brian E. Granger
|
r4637 | new_code_cell, new_text_cell, new_notebook, new_output, new_worksheet, | ||
new_metadata, new_author | ||||
Brian E. Granger
|
r4406 | ) | ||
from .nbjson import reads as reads_json, writes as writes_json | ||||
from .nbjson import reads as read_json, writes as write_json | ||||
from .nbjson import to_notebook as to_notebook_json | ||||
Brian E. Granger
|
r4637 | from .nbxml import reads as reads_xml | ||
from .nbxml import reads as read_xml | ||||
Brian E. Granger
|
r4406 | from .nbxml import to_notebook as to_notebook_xml | ||
from .nbpy import reads as reads_py, writes as writes_py | ||||
from .nbpy import reads as read_py, writes as write_py | ||||
from .nbpy import to_notebook as to_notebook_py | ||||
Jonathan Frederic
|
r12493 | from .convert import downgrade, upgrade | ||
Brian E. Granger
|
r4406 | |||
Brian E. Granger
|
r4609 | #----------------------------------------------------------------------------- | ||
# Code | ||||
#----------------------------------------------------------------------------- | ||||
Brian E. Granger
|
r4406 | |||
Brian E. Granger
|
r4520 | def parse_filename(fname): | ||
"""Parse a notebook filename. | ||||
This function takes a notebook filename and returns the notebook | ||||
Brian E. Granger
|
r4633 | format (json/py) and the notebook name. This logic can be | ||
Brian E. Granger
|
r4520 | summarized as follows: | ||
Bernardo B. Marques
|
r4872 | * notebook.ipynb -> (notebook.ipynb, notebook, json) | ||
Brian E. Granger
|
r4520 | * notebook.json -> (notebook.json, notebook, json) | ||
* notebook.py -> (notebook.py, notebook, py) | ||||
Brian E. Granger
|
r4633 | * notebook -> (notebook.ipynb, notebook, json) | ||
Brian E. Granger
|
r4520 | |||
Parameters | ||||
---------- | ||||
fname : unicode | ||||
The notebook filename. The filename can use a specific filename | ||||
extention (.ipynb, .json, .py) or none, in which case .ipynb will | ||||
be assumed. | ||||
Returns | ||||
------- | ||||
Bernardo B. Marques
|
r4872 | (fname, name, format) : (unicode, unicode, unicode) | ||
The filename, notebook name and format. | ||||
Brian E. Granger
|
r4520 | """ | ||
cel
|
r17553 | basename, ext = os.path.splitext(fname) | ||
if ext == u'.ipynb': | ||||
Brian E. Granger
|
r4633 | format = u'json' | ||
cel
|
r17553 | elif ext == u'.json': | ||
Brian E. Granger
|
r4520 | format = u'json' | ||
cel
|
r17553 | elif ext == u'.py': | ||
Brian E. Granger
|
r4520 | format = u'py' | ||
else: | ||||
cel
|
r17574 | basename = fname | ||
Brian E. Granger
|
r4520 | fname = fname + u'.ipynb' | ||
Brian E. Granger
|
r4633 | format = u'json' | ||
cel
|
r17553 | return fname, basename, format | ||