Big refactoring, way simpler management of transformations. Early branch for upcoming version 0.2.

This commit is contained in:
Romain Dorgueil
2017-01-17 22:45:10 +01:00
parent b6e84c66e3
commit 8532520aae
41 changed files with 627 additions and 433 deletions

70
ROADMAP.rst Normal file
View File

@ -0,0 +1,70 @@
Roadmap
=======
Milestones
::::::::::
* Class-tree for Graph and Nodes
* Class-tree for execution contexts:
* GraphExecutionContext
* NodeExecutionContext
* PluginExecutionContext
* Class-tree for ExecutionStrategies
* NaiveStrategy
* PoolExecutionStrategy
* ThreadPoolExecutionStrategy
* ProcesPoolExecutionStrategy
* ThreadExecutionStrategy
* ProcessExecutionStrategy
* Class-tree for bags
* Bag
* ErrorBag
* InheritingBag
*
* Co-routines: for unordered, or even ordered but long io.
* "context processors": replace initialize/finalize by a generator that yields only once
* "execute" function:
.. code-block:: python
def execute(graph: Graph, *, strategy: ExecutionStrategy, plugins: List[Plugin]) -> Execution:
pass
Version 0.2
:::::::::::
* Changelog
* Migration guide
* Update documentation
* Threaded does not terminate anymore
* More tests
Configuration
:::::::::::::
* Support for position arguments (options), required options are good candidates.
Context processors
::::::::::::::::::
* Be careful with order, especially with python 3.5.
* @contextual decorator is not clean enough. Once the behavior is right, find a way to use regular inheritance, without meta.
* ValueHolder API not clean. Find a better way.