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 too 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.10.0.tar.gz (40.3 kB view details)

Uploaded Source

Built Distribution

smallgraphlib-0.10.0-py3-none-any.whl (46.0 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: smallgraphlib-0.10.0.tar.gz
  • Upload date:
  • Size: 40.3 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/1.7.1 CPython/3.11.2 Linux/6.1.0-17-amd64

File hashes

Hashes for smallgraphlib-0.10.0.tar.gz
Algorithm Hash digest
SHA256 afa541aba68aade0ceb415fb722ecf522210044eb111c2c74d181fda5990172c
MD5 23b2292cf383a3345015b85fdd130686
BLAKE2b-256 aefade3776859e4ccccd1498a2a7e5cb04cac68ca650e1023089c794b0b68405

See more details on using hashes here.

File details

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

File metadata

  • Download URL: smallgraphlib-0.10.0-py3-none-any.whl
  • Upload date:
  • Size: 46.0 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/1.7.1 CPython/3.11.2 Linux/6.1.0-17-amd64

File hashes

Hashes for smallgraphlib-0.10.0-py3-none-any.whl
Algorithm Hash digest
SHA256 2b45f1d69f511efb0d21fd0e1d52fe825862d8b24420510cc4f545154e531b81
MD5 5677bf6dd2391754b6c6a7795717960d
BLAKE2b-256 01ce146efce4a47acd78618244224758568616a2b8830998d0fa78227fc8651d

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