Skip to main content

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

Project description

Small Graph Lib

Installing

Basic installation

Smallgraphlib is on PyPI, so you can download and install it with pip, as any usual python package.

pip install smallgraphlib

Development version

For development, please clone the last version from Github:

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

You will then need uv to manage the development process. If needed, install it on Linux or Mac with:

curl -LsSf https://astral.sh/uv/install.sh | sh

More information on uv installation

It is also recommended to install just command runner, to execute the recipes of the justfile.

uv tool install rust-just

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

  1. Get development version and uv

  2. Install dependencies including development tools:

uv sync
  1. Optionally, update dependencies and development tools:
uv sync --upgrade
  1. Optionally, install library in editable mode:
uv pip install -e smallgraphlib
  1. Make changes, add tests.

  2. Launch tests:

just test
  1. Everything 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-1.4.0.tar.gz (44.2 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

smallgraphlib-1.4.0-py3-none-any.whl (52.1 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: smallgraphlib-1.4.0.tar.gz
  • Upload date:
  • Size: 44.2 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.9.26 {"installer":{"name":"uv","version":"0.9.26","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Debian GNU/Linux","version":"12","id":"bookworm","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}

File hashes

Hashes for smallgraphlib-1.4.0.tar.gz
Algorithm Hash digest
SHA256 6980f9c18ef1a6aad155aace851c1e059c72c8f0b70e7b952c41282b3e3d6f7a
MD5 865446cf55a1b7a04147194662ac72e1
BLAKE2b-256 d33a87495d06dc3d320ddaf3d5a71639d2ea3e84f35cac52225cc66d6154efd5

See more details on using hashes here.

File details

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

File metadata

  • Download URL: smallgraphlib-1.4.0-py3-none-any.whl
  • Upload date:
  • Size: 52.1 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.9.26 {"installer":{"name":"uv","version":"0.9.26","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Debian GNU/Linux","version":"12","id":"bookworm","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}

File hashes

Hashes for smallgraphlib-1.4.0-py3-none-any.whl
Algorithm Hash digest
SHA256 20509e3c1ac99d37366434c0231b8b553b747c48e029fb9eb0d9c1313a6cca66
MD5 e55219790c9b7af8c1ab71d38dd1cb07
BLAKE2b-256 b09a955dc148ce4a6f8fd4060589da5cc7075868df99d00a368bd1ba3d0bc103

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page