Thanks for thinking of a way to help improve this library! Remember that contributions come in all shapes and sizes beyond writing bug fixes. Contributing to documentation, opening new issues for bugs, asking for clarification on things you find unclear, and requesting new features, are all super valuable contributions.
The below instructions also use Mamba which is a very fast implementation of
git clone <your fork> cd mpl-interactions mamba env create conda activate mpl-interactions pre-commit install
mamba env create command installs all Python packages that are useful when working on the source code of
mpl_image_labeller and its documentation. You can also install these packages separately:
pip install -e ".[dev, doc]"
Seeing your changes#
If you are working in a Jupyter Notebook, then in order to see your code changes you will need to either:
Restart the Kernel every time you make a change to the code.
Make the function reload from the source file every time you run it by using autoreload, e.g.:
%load_ext autoreload %autoreload 2 from mpl_image_labeller import ....
Working with Git#
Also feel free to ask for help/advice on the relevant GitHub issue.
Examples are best written as Jupyter notebooks. To write a new example, create in a notebook in the
docs/examples directory and list its path under one of the
toctrees in the
index.md file. When the docs are generated, they will be rendered as static html pages by myst-nb.
If you have installed all developer dependencies (see above), you can view recent modifications to the source files the following simple tox command:
tox -e doc
If you open the
index.html file in your browser you should now be able to see the rendered documentation.
Alternatively, you can use sphinx-autobuild to continuously watch source files for changes and rebuild the documentation for you. Sphinx-autobuild will be installed automatically by the above
pip command, so all you need to do is run:
tox -e doclive
In a few seconds your web browser should open up the documentation. Now whenever you save a file the documentation will automatically regenerate and the webpage will refresh for you!
Making frontpage gifs#
The frontpage gifs are generated from the
examples/create_example.py script. I used peek with a resolution of 638x653 and recorded the keystrokes using
screenkey -g screenkey -g 640x537+308+543.
Those numbers came from using
slop which can be used with screenkey like so:
screenkey -g $(slop -n -f '%g')