Skip to content

A graph theory library for Python. Includes a graph implementation and several graph theoretic algorithm methods.

License

Notifications You must be signed in to change notification settings

nathan-gilbert/graphworks

Repository files navigation

Graphworks

Python package

A Python module for efficient graph theoretic programming

Usage

See the wiki

TLDR

First, pip install graphworks

import json
from src.graphworks.graph import Graph

json_graph = {"label": "my graph", "edges": {"A": ["B"], "B": []}}
graph = Graph("my graph", input_graph=json.dumps(json_graph))
print(graph)

Development

Requirements

  • Python 3.8+
  • virtualenv
  • numpy
  • graphviz

Install the required packages

pip install virtualenv
virtualenv env

Start the virtualenv

source ./env/bin/activate

You can deactivate the virtualenv with

deactivate

Lastly, install the required libraries

pip install -r requirements.txt

Building the package

  • Update the version number in graphworks.__init__.py
  • Run python -m build
  • Run twine check dist/*
  • Upload to test PyPi: twine upload --repository-url https://test.pypi.org/legacy/ dist/*
  • Upload to PyPi main: twine upload --skip-existing dist/*
  • To autopublish, tag commit with git tag -a vX.Y.Z -m 'release message
  • Then git push --tags

Diagnostics

  • Run the unit tests: python -m unittest discover tests '*_tests.py'
  • Run unit test coverage: coverage run --source=graphworks/ -m unittest discover tests '*_tests.py'
  • Generate test coverage reports (either works):
    • coverage report --omit="*/test*,*/venv/*"
    • coverage html --omit="*/test*,*/venv/*"

TODO

About

A graph theory library for Python. Includes a graph implementation and several graph theoretic algorithm methods.

Topics

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages