Name | metakernel JSON |
Version |
0.30.2
JSON |
| download |
home_page | None |
Summary | None |
upload_time | 2024-03-26 16:33:21 |
maintainer | None |
docs_url | None |
author | None |
requires_python | >=3.8 |
license | None |
keywords |
|
VCS |
|
bugtrack_url |
|
requirements |
No requirements were recorded.
|
Travis-CI |
No Travis.
|
coveralls test coverage |
|
A Jupyter kernel base class in Python which includes core magic functions (including help, command and file path completion, parallel and distributed processing, downloads, and much more).
.. image:: https://badge.fury.io/py/metakernel.png/
:target: http://badge.fury.io/py/metakernel
.. image:: https://coveralls.io/repos/Calysto/metakernel/badge.png?branch=main
:target: https://coveralls.io/r/Calysto/metakernel
.. image:: https://github.com/Calysto/metakernel/actions/workflows/tests.yml/badge.svg?query=branch%3Amain++
:target: https://github.com/Calysto/metakernel/actions/workflows/tests.yml
.. image:: https://anaconda.org/conda-forge/metakernel/badges/version.svg
:target: https://anaconda.org/conda-forge/metakernel
.. image:: https://anaconda.org/conda-forge/metakernel/badges/downloads.svg
:target: https://anaconda.org/conda-forge/metakernel
See Jupyter's docs on `wrapper kernels
<http://jupyter-client.readthedocs.io/en/stable/wrapperkernels.html>`_.
Additional magics can be installed within the new kernel package under a `magics` subpackage.
Features
-------------
- Basic set of line and cell magics for all kernels.
- Python magic for accessing python interpreter.
- Run kernels in parallel.
- Shell magics.
- Classroom management magics.
- Tab completion for magics and file paths.
- Help for magics using ? or Shift+Tab.
- Plot magic for setting default plot behavior.
Kernels based on Metakernel
---------------------------
- matlab_kernel, https://github.com/Calysto/matlab_kernel
- octave_kernel, https://github.com/Calysto/octave_kernel
- calysto_scheme, https://github.com/Calysto/calysto_scheme
- calysto_processing, https://github.com/Calysto/calysto_processing
- java9_kernel, https://github.com/Bachmann1234/java9_kernel
- xonsh_kernel, https://github.com/Calysto/xonsh_kernel
- calysto_hy, https://github.com/Calysto/calysto_hy
- gnuplot_kernel, https://github.com/has2k1/gnuplot_kernel
- spylon_kernel, https://github.com/mariusvniekerk/spylon-kernel
- wolfram_kernel, https://github.com/mmatera/iwolfram
- sas_kernel, https://github.com/sassoftware/sas_kernel
- pysysh_kernel, https://github.com/Jaesin/psysh_kernel
- calysto_bash, https://github.com/Calysto/calysto_bash
... and many others.
Installation
----------------
You can install Metakernel through ``pip``:
.. code:: bash
pip install metakernel --upgrade
Installing `metakernel` from the `conda-forge` channel can be achieved by adding `conda-forge` to your channels with:
.. code:: bash
conda config --add channels conda-forge
Once the `conda-forge` channel has been enabled, `metakernel` can be installed with:
.. code:: bash
conda install metakernel
It is possible to list all of the versions of `metakernel` available on your platform with:
.. code:: bash
conda search metakernel --channel conda-forge
Use MetaKernel Magics in IPython
--------------------------------
Although MetaKernel is a system for building new kernels, you can use a subset of the magics in the IPython kernel.
.. code:: python
from metakernel import register_ipython_magics
register_ipython_magics()
Put the following in your (or a system-wide) ``ipython_config.py`` file:
.. code:: python
# /etc/ipython/ipython_config.py
c = get_config()
startup = [
'from metakernel import register_ipython_magics',
'register_ipython_magics()',
]
c.InteractiveShellApp.exec_lines = startup
Use MetaKernel Languages in Parallel
To use a MetaKernel language in parallel, do the following:
1. Make sure that the Python module `ipyparallel` is installed. In the shell, type:
.. code:: bash
pip install ipyparallel
2. To enable the extension in the notebook, in the shell, type:
.. code:: bash
ipcluster nbextension enable
3. To start up a cluster, with 10 nodes, on a local IP address, in the shell, type:
.. code:: bash
ipcluster start --n=10 --ip=192.168.1.108
4. Initialize the code to use the 10 nodes, inside the notebook from a host kernel ``MODULE`` and ``CLASSNAME`` (can be any metakernel kernel):
.. code:: bash
%parallel MODULE CLASSNAME
For example:
.. code:: bash
%parallel calysto_scheme CalystoScheme
5. Run code in parallel, inside the notebook, type:
Execute a single line, in parallel:
.. code:: bash
%px (+ 1 1)
Or execute the entire cell, in parallel:
.. code:: bash
%%px
(* cluster_rank cluster_rank)
Results come back in a Python list (Scheme vector), in ``cluster_rank`` order. (This will be a JSON representation in the future).
Therefore, the above would produce the result:
.. code:: bash
#10(0 1 4 9 16 25 36 49 64 81)
You can get the results back in any of the parallel magics (``%px``, ``%%px``, or ``%pmap``) in the host kernel by accessing the variable ``_`` (single underscore), or by using the ``--set_variable VARIABLE`` flag, like so:
.. code:: bash
%%px --set_variable results
(* cluster_rank cluster_rank)
Then, in the next cell, you can access ``results``.
Notice that you can use the variable ``cluster_rank`` to partition parts of a problem so that each node is working on something different.
In the examples above, use ``-e`` to evaluate the code in the host kernel as well. Note that ``cluster_rank`` is not defined on the host machine, and that this assumes the host kernel is the same as the parallel machines.
Configuration
-------------
``Metakernel`` subclasses can be configured by the user. The
configuration file name is determined by the ``app_name`` property of the subclass.
For example, in the ``Octave`` kernel, it is ``octave_kernel``. The user of the kernel can add an ``octave_kernel_config.py`` file to their
``jupyter`` config path. The base ``MetaKernel`` class offers ``plot_settings`` as a configurable trait. Subclasses can define other traits that they wish to make
configurable.
As an example:
.. code:: bash
cat ~/.jupyter/octave_kernel_config.py
# use Qt as the default backend for plots
c.OctaveKernel.plot_settings = dict(backend='qt')
Documentation
-----------------------
Example notebooks can be viewed here_.
Documentation is available online_. Magics have interactive help_ (and online).
For version information, see the Changelog_.
.. _here: http://nbviewer.jupyter.org/github/Calysto/metakernel/tree/main/examples/
.. _help: https://github.com/Calysto/metakernel/blob/main/metakernel/magics/README.md
.. _online: http://Calysto.github.io/metakernel/
.. _Changelog: https://github.com/Calysto/metakernel/blob/main/CHANGELOG.md
Raw data
{
"_id": null,
"home_page": null,
"name": "metakernel",
"maintainer": null,
"docs_url": null,
"requires_python": ">=3.8",
"maintainer_email": null,
"keywords": null,
"author": null,
"author_email": "Metakernel Developers <steven.silvester@ieee.org>",
"download_url": "https://files.pythonhosted.org/packages/34/d1/67e04a020a6903d0253d7f28285834d8a1066b2cd01711a9f4fa595e744d/metakernel-0.30.2.tar.gz",
"platform": null,
"description": "A Jupyter kernel base class in Python which includes core magic functions (including help, command and file path completion, parallel and distributed processing, downloads, and much more).\n\n.. image:: https://badge.fury.io/py/metakernel.png/\n :target: http://badge.fury.io/py/metakernel\n\n.. image:: https://coveralls.io/repos/Calysto/metakernel/badge.png?branch=main\n :target: https://coveralls.io/r/Calysto/metakernel\n\n.. image:: https://github.com/Calysto/metakernel/actions/workflows/tests.yml/badge.svg?query=branch%3Amain++\n :target: https://github.com/Calysto/metakernel/actions/workflows/tests.yml\n\n.. image:: https://anaconda.org/conda-forge/metakernel/badges/version.svg\n :target: https://anaconda.org/conda-forge/metakernel\n\n.. image:: https://anaconda.org/conda-forge/metakernel/badges/downloads.svg\n :target: https://anaconda.org/conda-forge/metakernel\n\n\nSee Jupyter's docs on `wrapper kernels\n<http://jupyter-client.readthedocs.io/en/stable/wrapperkernels.html>`_.\n\nAdditional magics can be installed within the new kernel package under a `magics` subpackage.\n\n\nFeatures\n-------------\n- Basic set of line and cell magics for all kernels.\n - Python magic for accessing python interpreter.\n - Run kernels in parallel.\n - Shell magics.\n - Classroom management magics.\n- Tab completion for magics and file paths.\n- Help for magics using ? or Shift+Tab.\n- Plot magic for setting default plot behavior.\n\nKernels based on Metakernel\n---------------------------\n\n- matlab_kernel, https://github.com/Calysto/matlab_kernel\n- octave_kernel, https://github.com/Calysto/octave_kernel\n- calysto_scheme, https://github.com/Calysto/calysto_scheme\n- calysto_processing, https://github.com/Calysto/calysto_processing\n- java9_kernel, https://github.com/Bachmann1234/java9_kernel\n- xonsh_kernel, https://github.com/Calysto/xonsh_kernel\n- calysto_hy, https://github.com/Calysto/calysto_hy\n- gnuplot_kernel, https://github.com/has2k1/gnuplot_kernel\n- spylon_kernel, https://github.com/mariusvniekerk/spylon-kernel\n- wolfram_kernel, https://github.com/mmatera/iwolfram\n- sas_kernel, https://github.com/sassoftware/sas_kernel\n- pysysh_kernel, https://github.com/Jaesin/psysh_kernel\n- calysto_bash, https://github.com/Calysto/calysto_bash\n\n... and many others.\n\nInstallation\n----------------\nYou can install Metakernel through ``pip``:\n\n.. code:: bash\n\n pip install metakernel --upgrade\n\nInstalling `metakernel` from the `conda-forge` channel can be achieved by adding `conda-forge` to your channels with:\n\n.. code:: bash\n\n conda config --add channels conda-forge\n\nOnce the `conda-forge` channel has been enabled, `metakernel` can be installed with:\n\n.. code:: bash\n\n conda install metakernel\n\nIt is possible to list all of the versions of `metakernel` available on your platform with:\n\n.. code:: bash\n\n conda search metakernel --channel conda-forge\n\n\nUse MetaKernel Magics in IPython\n--------------------------------\n\nAlthough MetaKernel is a system for building new kernels, you can use a subset of the magics in the IPython kernel.\n\n.. code:: python\n\n from metakernel import register_ipython_magics\n register_ipython_magics()\n\nPut the following in your (or a system-wide) ``ipython_config.py`` file:\n\n.. code:: python\n\n # /etc/ipython/ipython_config.py\n c = get_config()\n startup = [\n 'from metakernel import register_ipython_magics',\n 'register_ipython_magics()',\n ]\n c.InteractiveShellApp.exec_lines = startup\n\nUse MetaKernel Languages in Parallel\n\nTo use a MetaKernel language in parallel, do the following:\n\n1. Make sure that the Python module `ipyparallel` is installed. In the shell, type:\n\n.. code:: bash\n\n pip install ipyparallel\n\n\n2. To enable the extension in the notebook, in the shell, type:\n\n.. code:: bash\n\n ipcluster nbextension enable\n\n\n3. To start up a cluster, with 10 nodes, on a local IP address, in the shell, type:\n\n.. code:: bash\n\n ipcluster start --n=10 --ip=192.168.1.108\n\n\n4. Initialize the code to use the 10 nodes, inside the notebook from a host kernel ``MODULE`` and ``CLASSNAME`` (can be any metakernel kernel):\n\n.. code:: bash\n\n %parallel MODULE CLASSNAME\n\n\nFor example:\n\n.. code:: bash\n\n %parallel calysto_scheme CalystoScheme\n\n\n5. Run code in parallel, inside the notebook, type:\n\nExecute a single line, in parallel:\n\n.. code:: bash\n\n %px (+ 1 1)\n\n\nOr execute the entire cell, in parallel:\n\n.. code:: bash\n\n %%px\n (* cluster_rank cluster_rank)\n\n\nResults come back in a Python list (Scheme vector), in ``cluster_rank`` order. (This will be a JSON representation in the future).\n\nTherefore, the above would produce the result:\n\n.. code:: bash\n\n #10(0 1 4 9 16 25 36 49 64 81)\n\nYou can get the results back in any of the parallel magics (``%px``, ``%%px``, or ``%pmap``) in the host kernel by accessing the variable ``_`` (single underscore), or by using the ``--set_variable VARIABLE`` flag, like so:\n\n.. code:: bash\n\n %%px --set_variable results\n (* cluster_rank cluster_rank)\n\n\nThen, in the next cell, you can access ``results``.\n\nNotice that you can use the variable ``cluster_rank`` to partition parts of a problem so that each node is working on something different.\n\nIn the examples above, use ``-e`` to evaluate the code in the host kernel as well. Note that ``cluster_rank`` is not defined on the host machine, and that this assumes the host kernel is the same as the parallel machines.\n\n\nConfiguration\n-------------\n``Metakernel`` subclasses can be configured by the user. The\nconfiguration file name is determined by the ``app_name`` property of the subclass.\nFor example, in the ``Octave`` kernel, it is ``octave_kernel``. The user of the kernel can add an ``octave_kernel_config.py`` file to their\n``jupyter`` config path. The base ``MetaKernel`` class offers ``plot_settings`` as a configurable trait. Subclasses can define other traits that they wish to make\nconfigurable.\n\nAs an example:\n\n.. code:: bash\n\n cat ~/.jupyter/octave_kernel_config.py\n # use Qt as the default backend for plots\n c.OctaveKernel.plot_settings = dict(backend='qt')\n\n\nDocumentation\n-----------------------\n\nExample notebooks can be viewed here_.\n\nDocumentation is available online_. Magics have interactive help_ (and online).\n\nFor version information, see the Changelog_.\n\n\n.. _here: http://nbviewer.jupyter.org/github/Calysto/metakernel/tree/main/examples/\n\n.. _help: https://github.com/Calysto/metakernel/blob/main/metakernel/magics/README.md\n\n.. _online: http://Calysto.github.io/metakernel/\n\n.. _Changelog: https://github.com/Calysto/metakernel/blob/main/CHANGELOG.md\n",
"bugtrack_url": null,
"license": null,
"summary": null,
"version": "0.30.2",
"project_urls": {
"Homepage": "https://github.com/Calysto/metakernel"
},
"split_keywords": [],
"urls": [
{
"comment_text": "",
"digests": {
"blake2b_256": "07b2dabf31fd598a777f43e08b33de6540b16df1bd13c1b917ead58ac21bb245",
"md5": "fcec6aa72063814737005dcad5a27c20",
"sha256": "5424ac1a9cc5d8e18c439cce1a6f798196732955d64caff6633d3299cc2a1a83"
},
"downloads": -1,
"filename": "metakernel-0.30.2-py3-none-any.whl",
"has_sig": false,
"md5_digest": "fcec6aa72063814737005dcad5a27c20",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": ">=3.8",
"size": 217788,
"upload_time": "2024-03-26T16:33:16",
"upload_time_iso_8601": "2024-03-26T16:33:16.957945Z",
"url": "https://files.pythonhosted.org/packages/07/b2/dabf31fd598a777f43e08b33de6540b16df1bd13c1b917ead58ac21bb245/metakernel-0.30.2-py3-none-any.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "34d167e04a020a6903d0253d7f28285834d8a1066b2cd01711a9f4fa595e744d",
"md5": "eb8e881d4610ce279e09f60e82428f7f",
"sha256": "4a27dfd853b849f0128242c55204ee597a5a8d864294f26084baf2fbc814d5a4"
},
"downloads": -1,
"filename": "metakernel-0.30.2.tar.gz",
"has_sig": false,
"md5_digest": "eb8e881d4610ce279e09f60e82428f7f",
"packagetype": "sdist",
"python_version": "source",
"requires_python": ">=3.8",
"size": 191708,
"upload_time": "2024-03-26T16:33:21",
"upload_time_iso_8601": "2024-03-26T16:33:21.554615Z",
"url": "https://files.pythonhosted.org/packages/34/d1/67e04a020a6903d0253d7f28285834d8a1066b2cd01711a9f4fa595e744d/metakernel-0.30.2.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2024-03-26 16:33:21",
"github": true,
"gitlab": false,
"bitbucket": false,
"codeberg": false,
"github_user": "Calysto",
"github_project": "metakernel",
"travis_ci": false,
"coveralls": true,
"github_actions": true,
"lcname": "metakernel"
}