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](http://github.com/aluriak/graffunc) and [pypi](http://pypi.python.org/pypi/graffunc)

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 details)

Uploaded Source

File details

Details for the file graffunc-0.2.2.tar.gz.

File metadata

  • Download URL: graffunc-0.2.2.tar.gz
  • Upload date:
  • Size: 22.4 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No

File hashes

Hashes for graffunc-0.2.2.tar.gz
Algorithm Hash digest
SHA256 9c9e9eede25f567ada0c55d29f715eb6f36343c4e35d5156262d28646532996b
MD5 89c94c028c4f35bd3d46d6ac8e85264a
BLAKE2b-256 a744aed1c910f7bba3f855e75a6c649a0e70adf6b1b12969adf5f94deafea088

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page