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.2.tar.gz (949.2 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

algorithmx-2.0.2-py3-none-any.whl (1.6 MB view details)

Uploaded Python 3

File details

Details for the file algorithmx-2.0.2.tar.gz.

File metadata

  • Download URL: algorithmx-2.0.2.tar.gz
  • Upload date:
  • Size: 949.2 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.2.0 pkginfo/1.6.1 requests/2.25.0 setuptools/39.0.1 requests-toolbelt/0.9.1 tqdm/4.53.0 CPython/3.7.0

File hashes

Hashes for algorithmx-2.0.2.tar.gz
Algorithm Hash digest
SHA256 4ea4cf98eb957b95edaa72cb4e904aa0c3ef1f23912f024df99073a971a798f6
MD5 b153c5e0a17250a7f58a0c2c4881e19a
BLAKE2b-256 9a34eceb18556fb561339f866e67ea27ea0371363a0d268836748f7fa8862d7f

See more details on using hashes here.

File details

Details for the file algorithmx-2.0.2-py3-none-any.whl.

File metadata

  • Download URL: algorithmx-2.0.2-py3-none-any.whl
  • Upload date:
  • Size: 1.6 MB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.2.0 pkginfo/1.6.1 requests/2.25.0 setuptools/39.0.1 requests-toolbelt/0.9.1 tqdm/4.53.0 CPython/3.7.0

File hashes

Hashes for algorithmx-2.0.2-py3-none-any.whl
Algorithm Hash digest
SHA256 0127b8d462512fb620a2817622c50aa402410f60fedb5de3494a93509914b0fc
MD5 93587455ba993390e4bd813bd6994240
BLAKE2b-256 2bfc5227d90b698262a9c25c27926cbc08de53616f08a49c6f305b2fb371e410

See more details on using hashes here.

Supported by

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