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 too complex, Tikz code may be generated:
>>> g.as_tikz()
...
Development
-
Get last version:
$ git clone https://github.com/wxgeo/smallgraphlib
-
Install Poetry.
Poetry is a tool for dependency management and packaging in Python.
Installation instructions are here: https://python-poetry.org/docs/#installation
-
Install developments tools:
$ poetry install
-
Optionally, update development tools:
$ poetry update
-
Optionally, install library in editable mode:
$ pip install -e smallgraphlib
-
Make changes, add tests.
-
Launch tests:
$ tox
-
Everything's OK ? Commit. :)
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
smallgraphlib-0.9.0.tar.gz
(37.7 kB
view hashes)
Built Distribution
Close
Hashes for smallgraphlib-0.9.0-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 9fbfb5136fd42b94fb8aa84fadb6e70883205a2e0d3adb91799c5a1807258b2e |
|
MD5 | ff3a8afcfc3f5f1af78d9b508a3d28f6 |
|
BLAKE2b-256 | 7e31b99e2c749146e22181afffd91501decb9dc9e0d01a1f044b96a84eb99a52 |