Converts Jupyter notebook files to Python (interactive) files
Project description
NBTOPY - Converts Jupyter notebook files to Python files
nbtopy is a Linux command line
utility to convert one or more Jupyter notebook
files (.ipynb
) to Python files (.py
). My primary purpose for
creating this utility is to quickly and easily create Python files to
use with the superb Python
Interactive
mode in Visual Studio Code, which I
often prefer to use instead of the Jupyter notebook. In the generated
code, Python code blocks are delimited by # %%
tags and markdown
blocks are delimited by # %% [markdown]
tags.
A typical use case is when you download a directory of Jupyter notebook
files and want run them using a VS Code Python
Interactive
window. Just run nbtopy .
in the directory and all the Python files
are created and ready to use. You could use VS Code's inbuilt command to
create a Python file from the notebook but that is slow and awkward
because you have to run it explicitly for each notebook, and then
manually rename each created file. Also, VS Code uses Jupyter's
nbconvert
tool to do the
conversion and that runs much slower than nbtopy
.
This program uses only pure Python and does not require any Jupyter or 3rd party software or utilities to be installed.
Examples
-
Convert single
myfile.ipynb
file to newmyfile.py
:$ nbtopy myfile.ipynb
-
Convert all
*.ipynb
files in current directory to*.py
:$ nbtopy . (effectively same as nbtopy *.ipynb)
-
Write all
*.py
files to directorypyfiles/
instead of current dir:$ nbtopy -d pyfiles .
-
Recurse through all child directories and write
*.py
files to directorypyfiles/
in same directories as source**/*.ipynb
files.$ nbtopy -r -d pyfiles .
-
Recurse through all child directories and write
*.py
files to new and independent tree rooted underpyfiles/
. Specify this by using an absolute (rather than relative) path for-d/--dir
.$ nbtopy -r -d $PWD/pyfiles .
Installation or Upgrade
Arch users can install nbtopy from the AUR.
Python 3.6 or later is required. Note nbtopy is on
PyPI so just ensure that
pipx
is installed then type the
following:
$ pipx install nbtopy
To upgrade:
$ pipx upgrade nbtopy
This program runs on pure Python. No 3rd party packages are required. Note that this program does not require Jupyter's nbconvert tool.
Command Line Options
Type nbtopy -h
to view the usage summary:
usage: nbtopy [-h] [-m] [-M] [-c] [-e] [-x] [-f] [-r] [-p] [-q] [-w]
[-o OUT] [-d DIR] [-V]
[ipynb_path ...]
Converts Jupyter notebook file[s] to Python (interactive) file[s].
positional arguments:
ipynb_path input ipynb file[s] (or dir for all *.ipynb files)
options:
-h, --help show this help message and exit
-m, --no-markdown-tag
do not add markdown tag on markdown cells
-M, --no-markdown do not output markdown cells at all
-c, --no-code-tag do not add code tag on code cells
-e, --include-empty include empty/blank cells in output
-x, --exclude-no-code
skip file if it contains no Python code cells
-f, --force force overwrite existing file[s]
-r, --recurse recursively process files in all sub-directories
-p, --purge just purge associated output file[s]
-q, --quiet suppress messages about processed file[s]
-w, --no-warnings suppress warning messages about processed file[s]
-o OUT, --out OUT alternative output file name, or '-' for stdout
-d DIR, --dir DIR output directory, default = ".". Specify absolute path
to create separate tree of output files
-V, --version show nbtopy version
Note you can set default options in ~/.config/nbtopy-flags.conf.
Default Options
You can add default options to a personal configuration file
~/.config/nbtopy-flags.conf
. If that file exists then each line of
options will be concatenated and automatically prepended to your
nbtopy
command line options. Type nbtopy -h
to see the options
supported.
E.g. in your ~/.config/nbtopy-flags.conf
you could have the line
--no-markdown-tag
so that markdown cells are always merely aded as
comments, without an explicit markdown tag.
License
Copyright (C) 2022 Mark Blakeney. This program is distributed under the terms of the GNU General Public License. This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License at http://www.gnu.org/licenses/ for more details.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
File details
Details for the file nbtopy-1.1.tar.gz
.
File metadata
- Download URL: nbtopy-1.1.tar.gz
- Upload date:
- Size: 6.7 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/4.0.2 CPython/3.11.3
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | be56ee0e7c64e99d4c9b97e250ca25f76645fe33937230167990b03e0b1ce163 |
|
MD5 | 76da833720d955e244f38ce7270dfc77 |
|
BLAKE2b-256 | 0598b391b9a9da9643b51e2c71304a9c9f7c0afbe50b55caa21c55eeefe341f7 |
File details
Details for the file nbtopy-1.1-py3-none-any.whl
.
File metadata
- Download URL: nbtopy-1.1-py3-none-any.whl
- Upload date:
- Size: 6.5 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/4.0.2 CPython/3.11.3
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 72c2a022c7ed66f5c65c8ebff38504b7d9cb824aae587387db77a19291114eab |
|
MD5 | fab7340b0ac4e9f4d2fbb435395a0fa3 |
|
BLAKE2b-256 | 0da5605f98f8c6b7b7d9c7212d16d238df2a39cd104f311025f7be03986a5a21 |