This branch is an attempt to separate the node interface from computation. Much progress was made, but this refactor is dormant, but may serve as a useful proof-of-concept to future developers.
Motivation for this project was:
1) Enable use of multiprocessing on Windows using the ForkServer (introduced in Python 3). This could not be done using the existing framework, because Python requires all objects for multiprocessing to be pickle-able (bound methods are not).
2) Make it easier to implement a self-testing structure for nodes.
3) Enable a future transition to a client-server structure for the framework; running remote nodes, node parallelism, new interfaces, etc.
This branch is an attempt to separate the node interface from computation. Much progress was made, but this refactor is dormant, but may serve as a useful proof-of-concept to future developers.
Motivation for this project was: 1) Enable use of multiprocessing on Windows using the ForkServer (introduced in Python 3). This could not be done using the existing framework, because Python requires all objects for multiprocessing to be pickle-able (bound methods are not). 2) Make it easier to implement a self-testing structure for nodes. 3) Enable a future transition to a client-server structure for the framework; running remote nodes, node parallelism, new interfaces, etc.