Security News
PyPI’s New Archival Feature Closes a Major Security Gap
PyPI now allows maintainers to archive projects, improving security and helping users make informed decisions about their dependencies.
You can try Calysto Scheme without installing anything by clicking on the following button:
Calysto Scheme is a real Scheme programming language, with full support for continuations, including call/cc. It can also use all Python libraries. Also has some extensions that make it more useful (stepper-debugger, choose/fail, stack traces), or make it better integrated with Python. For more details on using Calysto Scheme, see:
In Jupyter notebooks, because Calysto Scheme uses MetaKernel, it has a fully-supported set of "magics"---meta-commands for additional functionality. This includes running Scheme in parallel. See all of the MetaKernel Magics.
Calysto Scheme is written in Scheme, and then translated into Python (and other backends). The entire functionality lies in a single Python file: https://github.com/Calysto/calysto_scheme/blob/master/calysto_scheme/scheme.py However, you can easily install it (see below).
Calysto Scheme in use:
To use Calysto Scheme in parallel, do the following:
ipyparallel
is installed. In the shell, type:pip install ipyparallel
ipcluster nbextension enable
ipcluster start --n=10 --ip=192.168.1.108
%parallel calysto_scheme CalystoScheme
Execute a single line, in parallel:
%px (+ 1 1)
Or execute the entire cell, in parallel:
%%px
(* cluster_rank cluster_rank)
Results come back in a Scheme vector, in cluster_rank order. Therefore, the above would produce the result:
#10(0 1 4 9 16 25 36 49 64 81)
You can get the results back in the host Scheme by accessing the variable _
(single underscore).
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 Scheme 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.
A full notebook example can be found here: Mandelbrot.ipynb
Ensure that your system has jupyter
installed, and pyQt
and qtconsole
if you want to use the qtconsole
option.
You can install Calysto Scheme with Python3:
pip3 install --upgrade calysto-scheme --user
python3 -m calysto_scheme install --user
or in the system kernel folder with:
sudo pip3 install --upgrade calysto-scheme
sudo python3 -m calysto_scheme install
You can also use the --sys-prefix to install into your virtualenv.
Change pip3/python3 to use a different pip or Python. The version of Python used will determine how Calysto Scheme is run.
Use it in the Jupyter console, qtconsole, or notebook:
jupyter console --kernel calysto_scheme
jupyter qtconsole --kernel calysto_scheme
jupyter notebook
You can also just use the Python program, but it doesn't have a fancy Read-Eval-Print Loop. Just run:
python calysto_scheme/scheme.py
Calysto Scheme can also be un under PyPy for increased performance.
Calysto Scheme supports:
Planned:
Limitations:
FAQs
A Scheme kernel for Jupyter that can use Python libraries
We found that calysto-scheme demonstrated a healthy version release cadence and project activity because the last version was released less than a year ago. It has 1 open source maintainer collaborating on the project.
Did you know?
Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.
Security News
PyPI now allows maintainers to archive projects, improving security and helping users make informed decisions about their dependencies.
Research
Security News
Malicious npm package postcss-optimizer delivers BeaverTail malware, targeting developer systems; similarities to past campaigns suggest a North Korean connection.
Security News
CISA's KEV data is now on GitHub, offering easier access, API integration, commit history tracking, and automated updates for security teams and researchers.