dou-du / algorithmx-python

A library for network visualization and algorithm simulation.

Home Page:https://algrx.github.io/

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

AlgorithmX Python

travis PyPI version docs

AlgorithmX Python is a library for network visualization and algorithm simulation, built on AlgorithmX. It works through either a WebSocket server, or as a widget in Jupyter Notebooks and JupyterLab.

Resources

Installation

Python 3.6 or higher is required.

AlgorithmX can be installed using pip:

pip install algorithmx

Jupyter Widget

In classic Jupyter notebooks, the widget will typically be enabled by default. However, if you installed using pip with notebook version <5.3, you will have to manually enable it by running:

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

with the appropriate flag. To enable in JupyterLab, run:

jupyter labextension install @jupyter-widgets/jupyterlab-manager
jupyter labextension install algorithmx-jupyter

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.listen('start', start)
server.start()

Be default, the output can be found at http://localhost:5050/.

If you are using Jupyter, add the following to a cell:

import algorithmx

canvas = algorithmx.jupyter_canvas()

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

display(canvas)

Development

Install

If you aren't using docker, you can install the package locally:

cd js
npm run build
npm run inject
cd ..

pip install --no-deps --editable .

Run HTTP Server

With docker:

docker-compose up http-server

Manually:

python -u examples/basic_http_server.py

Then, in both cases, open localhost:5050 in a browser.

Run Notebook

With docker:

docker-compose up notebook

You will need to follow the link which appears in the output.

Manually:

jupyter nbextension install --symlink --sys-prefix --py algorithmx
jupyter nbextension enable --sys-prefix --py algorithmx
jupyter notebook 

Then, in both cases, navigate to examples/basic.ipynb.

Build package

rm -rf build dist

With docker:

docker-compose up --build build

Manually:

python setup.py build sdist bdist_wheel

In both cases, the bundle can be found in dist/.

About

A library for network visualization and algorithm simulation.

https://algrx.github.io/

License:MIT License


Languages

Language:Python 84.6%Language:TypeScript 5.6%Language:HTML 5.6%Language:Dockerfile 1.8%Language:JavaScript 1.6%Language:Shell 0.8%