jupyter-xeus / xeus-octave

Jupyter kernel for GNU Octave
https://xeus-octave.readthedocs.io/
GNU General Public License v3.0
57 stars 10 forks source link
jupyter octave xeus

.. image:: docs/source/xeus-octave-logo.svg :alt: Xeus Octave

.. image:: https://github.com/jupyter-xeus/xeus-octave/actions/workflows/main.yml/badge.svg :target: https://github.com/jupyter-xeus/xeus-octave/actions/workflows/main.yml :alt: Build status on Github Actions

.. image:: https://readthedocs.org/projects/xeus-python/badge/?version=latest :target: https://xeus-octave.readthedocs.io/en/latest/ :alt: Documentation status on Readthedocs

.. image:: https://mybinder.org/badge_logo.svg :target: https://mybinder.org/v2/gh/jupyter-xeus/xeus-octave/stable?urlpath=/lab/tree/notebooks/xeus-octave.ipynb :alt: Run on Binder

.. image:: https://badges.gitter.im/Join%20Chat.svg :target: https://gitter.im/QuantStack/Lobby?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge :alt: Join the Gitter Chat

.. Used for including in Sphinx doc .. [[INTRODUCTION CONTENT START]]

Xeus Octave is a Jupyter kernel for Octave based on the native implementation of the C++ Jupyter protocol Xeus <https://github.com/jupyter-xeus/xeus-octave>_. This means that it is completely native, and does not run a virtual Octave session in a forked process.

Thanks to its being native, Xeus Octave has access to the internal representation of all Octave objects, and thus it is able to provide advanced visualisation of many types with ease.

.. [[INTRODUCTION CONTENT END]]

Usage

Native Octave plots


.. image:: docs/source/native-octave-plots.png
   :alt: Native Octave plots

Interactive Plotly plots

.. image:: docs/source/interactive-plotly-plots.png :alt: Interactive Plotly plots

Rich display of tables


.. image:: docs/source/rich-display-tables.png
   :alt: Rich display of tables

Rich display of structs

.. image:: docs/source/rich-display-structs.png :alt: Rich display of structs

Rich display of LaTeX equations


.. image:: docs/source/rich-display-latex-and-input.png
   :alt: Rich display of LaTeX equations

Rich display of images

.. image:: docs/source/rich-display-images.png :alt: Rich display of images

Code completion


.. image:: docs/source/code-completion.png
   :alt: Dropdown completion of a function

Code inspection and contextual help

.. image:: docs/source/code-inspection.png :alt: Queriyng the help of a function

.. image:: docs/source/contextual-help.png :alt: Contextual help shown dynamically

Stream support

.. image:: docs/source/stream-support.png
   :alt: Input and ouput streams

Installation
------------
.. Used for including in Sphinx doc
.. [[INSTALLATION CONTENT START]]

With mamba (or conda)

Xeus Octave has been packaged for the mamba (or conda) package manager.

To ensure that the installation works, it is preferable to install xeus-octave in a fresh environment. It is also needed to use a miniforge or miniconda installation because with the full anaconda_ you may have a conflict with the zeromq library which is already installed in the anaconda distribution.

The safest usage is to create an environment named xeus-octave

.. code::

mamba create -n myenv -c conda-forge xeus-octave
mamba activate -n myenv

Then you can install in this freshly created environment other dependencies, such as notebook or JupyterLab_

.. code::

mamba install -c conda-forge jupyterlab

From Source


You can install ``xeus-octave`` from source with Cmake.
This requires that you have all the dependencies installed in the same prefix, for instance a
superset of these dependencies can be found in the file ``environment-dev.yml``.

.. code:: bash

   mamba install --file environment-dev.yml

Then you can install in the same Conda environment with

.. code:: bash

    cmake -B build -D CMAKE_PREFIX_PATH="${CONDA_PREFIX}" -D CMAKE_INSTALL_PREFIX="${CONDA_PREFIX}"
    cmake --build build --parallel 4
    cmake --install build

.. Sphink linkcheck fails on this anchor https://github.com/conda-forge/miniforge#mambaforge
.. _miniforge: https://github.com/conda-forge/miniforge
.. _miniconda: https://conda.io/miniconda.html
.. _anaconda: https://www.anaconda.com
.. _JupyterLab: https://jupyterlab.readthedocs.io
.. _xeus-octave-wheel: https://github.com/jupyter-xeus/xeus-octave-wheel

.. [[INSTALLATION CONTENT END]]

Trying it online
----------------
To try out ``xeus-octave`` interactively in your web browser, just click on the binder link:

.. image:: docs/source/binder-logo.svg
   :target: https://mybinder.org/v2/gh/jupyter-xeus/xeus-octave/main?urlpath=/lab/tree/notebooks/xeus-octave.ipynb
   :alt: Run on Binder

Documentation
-------------
To get started with using *Xeus Octave*, check out the full documentation
`xeus-octave.readthedocs.io <https://xeus-octave.readthedocs.io>`_

Contributing
------------
See `CONTRIBUTING.rst <./CONTRIBUTING.rst>`_ to know how to contribute and set up a
development environment.

License
-------
This software is licensed under the *GNU General Public License v3*.
See the `LICENSE <LICENSE>`_ file for details.