Metadata-Version: 2.3
Name: walnut-kernel
Version: 0.3.2
Summary: Simple kernel for Walnut
Project-URL: Homepage, https://github.com/nopid/walnut_kernel
Maintainer-email: Nicolas Ollinger <nopid@free.fr>
License: CeCILL License
        
        Copyright (c) 2024 Nicolas Ollinger
        
        This software is governed by the CeCILL license under French law and
        abiding by the rules of distribution of free software.  You can  use, 
        modify and/ or redistribute the software under the terms of the CeCILL
        license as circulated by CEA, CNRS and INRIA at the following URL
        "http://www.cecill.info". 
        
        As a counterpart to the access to the source code and  rights to copy,
        modify and redistribute granted by the license, users are provided only
        with a limited warranty  and the software's author,  the holder of the
        economic rights,  and the successive licensors  have only  limited
        liability. 
        
        In this respect, the user's attention is drawn to the risks associated
        with loading,  using,  modifying and/or developing or reproducing the
        software by the user in light of its specific status of free software,
        that may mean  that it is complicated to manipulate,  and  that  also
        therefore means  that it is reserved for developers  and  experienced
        professionals having in-depth computer knowledge. Users are therefore
        encouraged to load and test the software's suitability as regards their
        requirements in conditions enabling the security of their systems and/or 
        data to be ensured and,  more generally, to use and operate it in the 
        same conditions as regards security. 
        
        The fact that you are presently reading this means that you have had
        knowledge of the CeCILL license and that you accept its terms.
License-File: LICENSE
Classifier: Intended Audience :: Developers
Classifier: License :: OSI Approved :: BSD License
Classifier: Programming Language :: Python :: 3
Requires-Python: >=3.9
Requires-Dist: ipykernel
Requires-Dist: jupyter-client
Requires-Dist: licofage
Requires-Dist: metakernel
Requires-Dist: ratser
Description-Content-Type: text/markdown

# walnut_kernel 

``walnut_kernel`` is a simple Jupyter kernel for [Walnut](https://cs.uwaterloo.ca/~shallit/walnut.html).

# Installation

To install `walnut_kernel` from PyPI:
```
    pip install walnut_kernel
```
    
# Using the Walnut kernel

Before using the kernel with notebooks or console frontends, you need a compiled copy of [Walnut](https://github.com/firetto/Walnut) and to set the following environment variables:
 - `WALNUT_HOME` should point to a writable directory containing all the Walnut files (`Result/`, `Custom Bases/`, ...);
 - `WALNUT_JAR` should point to the `walnut.jar` main JAR file.

# Magic commands

This kernel is build with [Metakernel](https://jupyter-client.readthedocs.io/en/stable/wrapperkernels.html) and supports several convenient [magic functions](https://metakernel.readthedocs.io/en/latest/) including `%%file` and `%%python`.

This kernel also provides its own magics:
 - `%showme LAPIN`: displays the graphiz file `Result/LAPIN.gv` (convenient to display automata in notebooks);
 - `%DT blop "a->ab, b->a"`: compute the Dumont-Thomas numeration system associated to the substitution `a->ab, b->a` with its addition. The resulting numeration system is `msd_blop` and the DFAO is `Blop`;
 - `%DT blop "a->aba, b->b" 30`: when the Dumont-Thomas numeration system is not X-Pisot, a bound is needed;
 - `%SGT maple ns dfao`: compute the DFAO `dfao` in numeration system `ns` using the semigroup trick from the linear representation of a rational serie given in Maple file `maple` (generated by Walnut);
 - `%EQ maple1 maple2`: test if the rational series given in the Maple files `maple1` and `maple2` (generated by Walnut) are equal.
