Skip to main content

A graph theory library written in Cython

Project description


A graph theory library implemented in Cython


First, try:

pip install cygraph

if that doesn't work, try:

pip install git+



Here is an example Python script that utilizes some of the features of cygraph.

import cygraph as cg
import cygraph.algorithms as alg

G = cg.graph(vertices=list(range(4)))
G.add_edges({(1, 2), (2, 3), (3, 1)})
children = G.get_children(1)
components = alg.get_number_connected_components(G)

It should output:

children={2, 3}


Here is the above script but with static typing in Cython.

#cython: language_level=3
import cygraph as cg  # cg.graph function.
cimport cygraph.graph_ as gp  # StaticGraph and DynamicGraph types.
cimport cygraph.algorithms as alg

cdef gp.DynamicGraph G = cg.graph(vertices=list(range(4)))
G.add_edges({(1, 2), (2, 3), (3, 1)})
cdef set children = G.get_children(1)
cdef int components = alg.get_number_connected_components(G)

For more information on the Python and Cython APIs, see the documentation


The current documentation is not up-to-date.


I am currently not accepting any pull requests. This project is still in its very early stages and I have many things in mind to do with it. Once I get those things done, I will add contribution guidelines.

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

cygraph-0.2.1.tar.gz (743.0 kB view hashes)

Uploaded source

Built Distribution

Supported by

AWS AWS Cloud computing Datadog Datadog Monitoring Facebook / Instagram Facebook / Instagram PSF Sponsor Fastly Fastly CDN Google Google Object Storage and Download Analytics Huawei Huawei PSF Sponsor Microsoft Microsoft PSF Sponsor NVIDIA NVIDIA PSF Sponsor Pingdom Pingdom Monitoring Salesforce Salesforce PSF Sponsor Sentry Sentry Error logging StatusPage StatusPage Status page