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)
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)
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
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
9c9e9eede25f567ada0c55d29f715eb6f36343c4e35d5156262d28646532996b
|
|
| MD5 |
89c94c028c4f35bd3d46d6ac8e85264a
|
|
| BLAKE2b-256 |
a744aed1c910f7bba3f855e75a6c649a0e70adf6b1b12969adf5f94deafea088
|