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.1.1.tar.gz (42.7 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.1.1-py3-none-any.whl (50.5 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: smallgraphlib-1.1.1.tar.gz
  • Upload date:
  • Size: 42.7 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.1.1.tar.gz
Algorithm Hash digest
SHA256 24f35903519fb65c3aabb7a00409f5aafd97ea7caf8b0c9fcf6589add4f381cf
MD5 c17b82ce481353f3f9465fafe10d9f4a
BLAKE2b-256 b0bc9f24562ebf9913b033fb8e66b5f6c109dac6dec516382c26acad53665e09

See more details on using hashes here.

File details

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

File metadata

  • Download URL: smallgraphlib-1.1.1-py3-none-any.whl
  • Upload date:
  • Size: 50.5 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.1.1-py3-none-any.whl
Algorithm Hash digest
SHA256 84d88cd665e7949d586a768678048ffed19d90e54d5d295ba78ca70927f00836
MD5 0c08478f525f34f0b368afd74c6ddec6
BLAKE2b-256 1559d301bc90936561a46edca7ef1ed2e7fe2592a83659455e72c4a646eb07be

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