Skip to main content

Simple library for handling small graphs, including Tikz code generation.

Project description

Small Graph Lib

Installing

$ git clone https://github.com/wxgeo/smallgraphlib

$ pip install --user smallgraphlib

Usage

Main classes are Graph, DirectedGraph, WeightedGraph and WeightedDirectedGraph:

>>> from smallgraphlib import DirectedGraph
>>> g = DirectedGraph(["A", "B", "C"], ("A", "B"), ("B", "A"), ("B", "C"))
>>> g.is_simple
True
>>> g.is_complete
False
>>> g.is_directed
True
>>> g.adjacency_matrix
[[0, 1, 0], [1, 0, 1], [0, 0, 0]]
>>> g.degree
3
>>> g.order
3
>>> g.is_eulerian
False
>>> g.is_semi_eulerian
True

Special graphs may be generated using factory functions:

>>> from smallgraphlib import complete_graph, complete_bipartite_graph
>>> K5 = complete_graph(5)
>>> len(K5.greedy_coloring)
5
>>> K33 = complete_bipartite_graph(3, 3)
>>> K33.degree
6
>>> K33.diameter
2

If the graph is not to complex, Tikz code may be generated:

>>> g.as_tikz()
...

Development

  1. Get last version:

    $ git clone https://github.com/wxgeo/smallgraphlib
    
  2. Install Poetry.

    Poetry is a tool for dependency management and packaging in Python.

    Installation instructions are here: https://python-poetry.org/docs/#installation

  3. Install developments tools:

    $ poetry install
    
  4. Optionally, update development tools:

    $ poetry update
    
  5. Optionally, install library in editable mode:

    $ pip install -e smallgraphlib
    
  6. Make changes, add tests.

  7. Launch tests:

     $ tox
    
  8. Everything's OK ? Commit. :)

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

smallgraphlib-0.3.1.tar.gz (9.8 kB view details)

Uploaded Source

Built Distribution

smallgraphlib-0.3.1-py3-none-any.whl (10.0 kB view details)

Uploaded Python 3

File details

Details for the file smallgraphlib-0.3.1.tar.gz.

File metadata

  • Download URL: smallgraphlib-0.3.1.tar.gz
  • Upload date:
  • Size: 9.8 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/1.1.13 CPython/3.8.10 Linux/5.13.0-41-generic

File hashes

Hashes for smallgraphlib-0.3.1.tar.gz
Algorithm Hash digest
SHA256 b8a65f47187717a70b1ee604add0161dce120b96e656aaaf1a01e7e22c68e40d
MD5 df8d803f326b4ff69fb7dd3d2d493177
BLAKE2b-256 4cd436438a05f56f23fa16af173cd3f2d3e5867d4a5da1ffccc5d73f1a8d5e5b

See more details on using hashes here.

File details

Details for the file smallgraphlib-0.3.1-py3-none-any.whl.

File metadata

  • Download URL: smallgraphlib-0.3.1-py3-none-any.whl
  • Upload date:
  • Size: 10.0 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/1.1.13 CPython/3.8.10 Linux/5.13.0-41-generic

File hashes

Hashes for smallgraphlib-0.3.1-py3-none-any.whl
Algorithm Hash digest
SHA256 17dd5e1cc13e750d4bf1f6de5c03c239be7f6b8cf42f1652875ca708f21ba274
MD5 7d258411b99fc35910bfcf6f6ca73840
BLAKE2b-256 a9a398f4c241c34d08655ac846e34a209f578c8cd5c634c79b9de6e10df394e5

See more details on using hashes here.

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