Skip to main content

A library for network visualization and algorithm simulation.

Project description

AlgorithmX Python

build PyPI version

AlgorithmX Python is a library for network visualization and algorithm simulation, built on AlgorithmX. It can be used through a HTTP/WebSocket server, or as a widget in Jupyter Notebooks and JupyterLab.

Resources

Installation

Python 3.7.0 or higher is required. Using pip:

python -m pip install algorithmx

Jupyter Widget

In classic Jupyter notebooks, the widget will typically be enabled by default. To enable it manually, run

jupyter nbextension enable --sys-prefix --py algorithmx

with the appropriate flag. To enable in JupyterLab, run

python -m jupyter labextension install @jupyter-widgets/jupyterlab-manager --no-build
python -m jupyter lab build

Example Usage

If you wish to use the library through a HTTP/WebSocket server, follow the template below:

import algorithmx

server = algorithmx.http_server(port=5050)
canvas = server.canvas()

def start():
    canvas.nodes([1, 2]).add()
    canvas.edge((1, 2)).add()

canvas.onmessage('start', start)
server.start()

The graphics can be found at http://localhost:5050/.

If you are using Jupyter, try adding the following code to a cell:

from algorithmx import jupyter_canvas

canvas = jupyter_canvas()

canvas.nodes([1, 2]).add()
canvas.edge((1, 2)).add()

canvas

Development

Manual install

Make sure you have Python 3.7 of higher, then run

# build js
cd js
npm run build
cd ..

# install dependencies
python -m pip install -r dev-requirements.txt
python -m pip install --no-deps --editable ".[jupyter,networkx]"

HTTP Server

Docker: Docker-compose up http-server Manually: python examples/basic_http_server.py

Then open localhost:5050 in a browser.

Jupyter notebook

Docker: docker-compose up notebook Manually:

python -m jupyter nbextenion list
python -m jupyter notebook

Then try opening examples/basic_notebook.ipynb.

Jupyter lab

Docker: docker-compose up jupyter-lab Manually:

python -m jupyter labextension install @jupyter-widgets/jupyterlab-manager --no-build
python -m jupyter lab build
python -m jupyter labextension list
python -m jupyter lab

Then try opening examples/basic_notebook.ipynb.

Build and test package

Clean any previous builds with rm -rf build dist.

Docker: docker-compose up --build build Manually:

python -m mypy .
python -m pytest tests -vv
python setup.py build sdist bdist_wheel

The bundle can be found in dist/.

Distribute

  • Set up pre-commit hooks: pre-commit install
  • Publish to PyPI: ./scripts/deploy.sh

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

algorithmx-2.0.3.tar.gz (950.5 kB view hashes)

Uploaded Source

Built Distribution

algorithmx-2.0.3-py3-none-any.whl (1.6 MB view hashes)

Uploaded Python 3

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page