from .nbbase import ( NotebookNode, new_code_cell, new_text_cell, new_notebook, new_output, new_worksheet ) 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 from .nbxml import reads as reads_xml, writes as writes_xml from .nbxml import reads as read_xml, writes as write_xml 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 from .convert import convert_to_this_nbformat def parse_filename(fname): """Parse a notebook filename. This function takes a notebook filename and returns the notebook format (xml/json/py) and the notebook name. This logic can be summarized as follows: * notebook.ipynb -> (notebook.ipynb, notebook, xml) * notebook.json -> (notebook.json, notebook, json) * notebook.py -> (notebook.py, notebook, py) * notebook -> (notebook.ipynb, notebook, xml) 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 ------- (fname, name, format) : (unicode, unicode, unicode) The filename, notebook name and format. """ if fname.endswith(u'.ipynb'): format = u'xml' elif fname.endswith(u'.json'): format = u'json' elif fname.endswith(u'.py'): format = u'py' else: fname = fname + u'.ipynb' format = u'xml' name = fname.split('.')[0] return fname, name, format