Skip to main content

Graph theoretic classes and helper functions.

Project description

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

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

graphworks-0.5.0.tar.gz (10.9 kB view hashes)

Uploaded Source

Built Distribution

graphworks-0.5.0-py3-none-any.whl (12.3 kB 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