Skip to main content

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.

Source Distribution

graffunc-0.2.2.tar.gz (22.4 kB view hashes)

Uploaded source

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