Skip to main content
Join the official 2020 Python Developers SurveyStart the survey!

high level graph of function

Project description

# Graffunc -- The graph of function data structure
Python package allowing manipulation of data by graph pathfinding.

## usage example
(see more in [tests](graffunc/test/) and [examples](examples/))

from graffunc import graffunc, InconvertibleError

def my_a_to_b_converter(a):
b = a.upper()
return {'b': b}
def my_b_to_c_converter(b):
c = 'payload: ' + b + '/payload'
return {'c': c}
def my_a_to_c_converter(a):
raise InconvertibleError()

# creation of the main object
grfc = graffunc({
('a',): {('b',): my_a_to_b_converter},
# dynamic modification of the object
grfc.add(my_b_to_c_converter, sources={'b'}, targets={'c'})
grfc.add(my_a_to_c_converter, sources={'a'}, targets={'c'})

assert {'a', 'b', 'c'} == grfc.reachables_types(sources={'a'})
assert {'b', 'c'} == grfc.reachables_types(sources={'b'})
assert {'c'} == grfc.reachables_types(sources={'c'})

assert {'b': 'HELLO'} == grfc.convert(sources={'a': 'hello'}, targets={'b'})
assert {'c': 'payload: HELLO/payload'} == grfc.convert(sources={'a': 'hello'}, targets={'c'})

## installation

pip install graffunc

## links
[github]( and [pypi](

Project details

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Files for graffunc, version 0.2.2
Filename, size File type Python version Upload date Hashes
Filename, size graffunc-0.2.2.tar.gz (22.4 kB) File type Source Python version None Upload date Hashes View

Supported by

Pingdom Pingdom Monitoring Google Google Object Storage and Download Analytics Sentry Sentry Error logging AWS AWS Cloud computing DataDog DataDog Monitoring Fastly Fastly CDN DigiCert DigiCert EV certificate StatusPage StatusPage Status page