A library for network visualization and algorithm simulation.
Project description
AlgorithmX Python
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
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
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
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
4ea4cf98eb957b95edaa72cb4e904aa0c3ef1f23912f024df99073a971a798f6
|
|
| MD5 |
b153c5e0a17250a7f58a0c2c4881e19a
|
|
| BLAKE2b-256 |
9a34eceb18556fb561339f866e67ea27ea0371363a0d268836748f7fa8862d7f
|
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
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
0127b8d462512fb620a2817622c50aa402410f60fedb5de3494a93509914b0fc
|
|
| MD5 |
93587455ba993390e4bd813bd6994240
|
|
| BLAKE2b-256 |
2bfc5227d90b698262a9c25c27926cbc08de53616f08a49c6f305b2fb371e410
|