Description
Submitting Author: Martin Skarzynski (@marskar)
All current maintainers: (@marskar)
Package Name: Nbless
One-Line Description of Package: Construct, deconstruct, convert, execute, & prepare slides from Jupyter notebooks
Repository Link: https://github.com/py4ds/nbless
Version submitted: 0.2.26
Editor: @lwasser
Reviewer 1: @ocefpaf
Reviewer 2: @kysolvik
Archive: N/A
JOSS DOI: N/A
Version accepted: TBD
Date accepted (month/day/year): 06/17/2019
Description
-
Include a brief paragraph describing what your package does:
The Nbless Python package allows you to
- (de)construct,
- convert,
- execute, and
- prepare slides from
Jupyter notebooks.The Nbless Python package consists of 6 Python functions and shell commands:
-nbconv
, which converts a notebook into various formats.
-nbdeck
, which prepares a notebook to be viewed as or converted into slides.
-nbexec
, which runs a notebook from top to bottom and saves an executed version.
-nbless
, which calls nbuild and nbexec to create and execute a notebook.
-nbraze
, which extracts code and markdown files from a notebook.
-nbuild
, which creates a notebook from code and markdown files.For more on Nbless, please take a look at the official documentation.
Scope
- Please indicate which category or categories this package falls under:
- Data retrieval
- Data extraction
- Data munging
- Data deposition
- Reproducibility
- Geospatial
- Education
- Data visualization*
* Please fill out a pre-submission inquiry before submitting a data visualization package. For more info, see this section of our guidebook.
-
Explain how and why the package falls under these categories (briefly, 1-2 sentences):
Jupyter notebooks are important for reproducibility, because they facilitate literate programming, the combination of code and text.
Literate programming is advantageous, because it allows descriptions of methods and results to be adjacent to the code used to obtain the results.
I frequently use Jupyter notebooks in my work and in the Python classes I teach, but I often wish I could share small, simple files instead of large Jupyter notebooks.
With Nbless, anyone can create Jupyter notebooks from simple source files or extract code and markdown files from Jupyter notebooks.
In this way, Nbless supports round-trip conversion between source files and Jupyter notebooks. In other words, code and markdown files can be extracted from a Jupyter notebook AND then used to recreate the original Jupyter notebook.
This can promote the modularity principle without sacrificing the benefits of literate programming or the convenience of a single file with all code, text, and output for the project.
Code and markdown files can be easily be accessed with any text editor or even opened in a browser without an internet connection. Keeping source files makes version control simpler than trying to track changes made to Jupyter notebooks (seenbdime
for another solution). Code files (.py
,.R
, etc.) are amenable to testing and linting, while notebooks are difficult to lint/test (seeautopep8
andnbval
). -
Who is the target audience and what are scientific applications of this package?
The target audience is anyone who uses Jupyter notebooks. This package may help teachers and researchers to improve the efficiency of their Jupyter notebook workflows. One of the major features of Nbless is that it can facilitate the creation of slides from Jupyter notebooks. Jupyter slides can be converted in
revealjs
HTML files or viewed usingnbviewer
or RISE/Binder.
I can imagine teachers and researchers writing markdown and code files and then usingnbless
to creating Jupyter notebooks to share with their students and colleagues. -
Are there other Python packages that accomplish the same thing? If so, how does yours differ?
Related packages include:
These packages can all convert Jupyter notebooks to other formats: markdown files (all three) or Python scripts (
jupytext
). Nbless wrapsnbconvert
to convert between file types, but it can do something all of the aforementioned packages cannot. Nbless can take a more modular approach to file conversion by extracting the contents of each notebook cell into a separate file (cell -> file) or using a source file to create each notebook cell (file -> cell). Looking beyond simple file conversion, Nbless includes a tool for making slides from notebooks (by settingslide_type
in notebook metadata). -
If you made a pre-submission enquiry, please paste the link to the corresponding issue, forum post, or other discussion, or @tag the editor you contacted:
The pre-submission inquiry link is Nbless: (de)construct, convert, execute, and prepare slides from Jupyter notebooks. #4
I will close Nbless: (de)construct, convert, execute, and prepare slides from Jupyter notebooks. #4 as soon as I am done with Nbless: Software Submission for Review #7.
Technical checks
For details about the pyOpenSci packaging requirements, see our packaging guide. Confirm each of the following by checking the box. This package:
- does not violate the Terms of Service of any service it interacts with.
- has an OSI approved license
- contains a README with instructions for installing the development version.
- includes documentation with examples for all functions.
- contains a vignette with examples of its essential functions and uses.
- has a test suite.
- has continuous integration, such as Travis CI, AppVeyor, CircleCI, and/or others.
Publication options
- Do you wish to automatically submit to the Journal of Open Source Software? If so:
JOSS Checks
- The package has an obvious research application according to JOSS's definition in their submission requirements. Be aware that completing the pyOpenSci review process does not guarantee acceptance to JOSS. Be sure to read their submission requirements (linked above) if you are interested in submitting to JOSS.
- The package is not a "minor utility" as defined by JOSS's submission requirements: "Minor ‘utility’ packages, including ‘thin’ API clients, are not acceptable." pyOpenSci welcomes these packages under "Data Retrieval", but JOSS has slightly different criteria.
- The package contains a
paper.md
matching JOSS's requirements with a high-level description in the package root or ininst/
. - The package is deposited in a long-term repository with the DOI:
Note: Do not submit your package separately to JOSS
Are you OK with Reviewers Submitting Issues to your Repo Directly?
This option will allow reviewers to open smaller issues that can then be linked to PR's rather than submitting a more dense text based review. It will also allow you to demonstrate addressing the issue via PR links.
- Yes I am OK with reviewers submitting requested changes as issues to my repo. Reviewers will then link to the issues in their submitted review.
Code of conduct
- I agree to abide by pyOpenSci's Code of Conduct during the review process and in maintaining my package should it be accepted.
P.S. Have feedback/comments about our review process? Leave a comment here
Previous Repo: https://github.com/marskar/nbless/
Metadata
Metadata
Assignees
Type
Projects
Status