Skip to main content

A graph theory library written in Cython

Project description

cygraph

A graph theory library implemented in Cython

Installation

pip install cygraph

Usage

Python

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_edge(1, 2)
G.add_edge(2, 3)
G.add_edge(3, 1)
children = G.get_children(1)
print(f'{children=}')
components = alg.get_number_components(G)
print(f'{components=}')

It should output:

children={2, 3}
components=2

Cython

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

#!python
#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_edge(1, 2)
G.add_edge(2, 3)
G.add_edge(3, 1)
cdef set children = G.get_children(1)
print(f'children={str(children)}')
cdef int components = alg.get_number_components(G)
print(f'components={components}')

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

Contribution

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.1.6.tar.gz (694.4 kB view hashes)

Uploaded Source

Built Distribution

cygraph-0.1.6-cp38-cp38-macosx_10_9_x86_64.whl (1.2 MB view hashes)

Uploaded CPython 3.8 macOS 10.9+ x86-64

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