schedula: An intelligent function scheduler¶
release: | 0.3.7 |
---|---|
date: | 2019-12-06 15:50:00 |
repository: | |
pypi-repo: | |
docs: | |
wiki: | |
download: | |
keywords: | scheduling, dispatch, dataflow, processing, calculation, dependencies, scientific, engineering, simulink, graph theory |
developers: |
|
license: |
What is schedula?¶
Schedula implements a intelligent function scheduler, which selects and executes functions. The order (workflow) is calculated from the provided inputs and the requested outputs. A function is executed when all its dependencies (i.e., inputs, input domain) are satisfied and when at least one of its outputs has to be calculated.
Note
Schedula is performing the runtime selection of the minimum-workflow to be invoked. A workflow describes the overall process - i.e., the order of function execution - and it is defined by a directed acyclic graph (DAG). The minimum-workflow is the DAG where each output is calculated using the shortest path from the provided inputs. The path is calculated on the basis of a weighed directed graph (data-flow diagram) with a modified Dijkstra algorithm.
Installation¶
To install it use (with root privileges):
$ pip install schedula
Or download the last git version and use (with root privileges):
$ python setup.py install
Install extras¶
Some additional functionality is enabled installing the following extras:
- plot: enables the plot of the Dispatcher model and workflow
(see
plot()
). - web: enables to build a dispatcher Flask app (see
web()
). - sphinx: enables the sphinx extension directives (i.e., autosummary and dispatcher).
- parallel: enables the parallel execution of Dispatcher model.
To install schedula and all extras, do:
$ pip install schedula[all]
Note
plot
extra requires Graphviz. Make sure that the directory
containing the dot
executable is on your systems’ path. If you have not
you can install it from its download page.
- 1. What is schedula?
- 2. Installation
- 3. Why may I use schedula?
- 4. Very simple example
- 5. Advanced example (circular system)
- 6. Asynchronous and Parallel dispatching
- 7. Next moves
- 8. API Reference
- 8.1. dispatcher
- 8.1.1. Dispatcher
- 8.1.1.1. __init__
- 8.1.1.2. add_data
- 8.1.1.3. add_dispatcher
- 8.1.1.4. add_from_lists
- 8.1.1.5. add_func
- 8.1.1.6. add_function
- 8.1.1.7. blue
- 8.1.1.8. copy
- 8.1.1.9. copy_structure
- 8.1.1.10. dispatch
- 8.1.1.11. extend
- 8.1.1.12. get_node
- 8.1.1.13. get_sub_dsp
- 8.1.1.14. get_sub_dsp_from_workflow
- 8.1.1.15. plot
- 8.1.1.16. search_node_description
- 8.1.1.17. set_default_value
- 8.1.1.18. shrink_dsp
- 8.1.1.19. web
- 8.1.1.20. data_nodes
- 8.1.1.21. function_nodes
- 8.1.1.22. sub_dsp_nodes
- 8.1.1. Dispatcher
- 8.2. utils
- 8.2.1. alg
- 8.2.2. asy
- 8.2.3. base
- 8.2.4. blue
- 8.2.5. cst
- 8.2.6. des
- 8.2.7. drw
- 8.2.7.1. nodes
- 8.2.7.2. autoplot_callback
- 8.2.7.3. autoplot_function
- 8.2.7.4. basic_app
- 8.2.7.5. before_request
- 8.2.7.6. cached_view
- 8.2.7.7. jinja2_format
- 8.2.7.8. render_output
- 8.2.7.9. run_server
- 8.2.7.10. site_view
- 8.2.7.11. uncpath
- 8.2.7.12. update_filenames
- 8.2.7.13. valid_filename
- 8.2.7.14. FolderNode
- 8.2.7.15. Site
- 8.2.7.16. SiteFolder
- 8.2.7.17. SiteIndex
- 8.2.7.18. SiteMap
- 8.2.7.19. SiteNode
- 8.2.8. dsp
- 8.2.8.1. add_function
- 8.2.8.2. are_in_nested_dicts
- 8.2.8.3. bypass
- 8.2.8.4. combine_dicts
- 8.2.8.5. combine_nested_dicts
- 8.2.8.6. get_nested_dicts
- 8.2.8.7. kk_dict
- 8.2.8.8. map_dict
- 8.2.8.9. map_list
- 8.2.8.10. parent_func
- 8.2.8.11. replicate_value
- 8.2.8.12. selector
- 8.2.8.13. stack_nested_keys
- 8.2.8.14. stlp
- 8.2.8.15. summation
- 8.2.8.16. DispatchPipe
- 8.2.8.17. NoSub
- 8.2.8.18. SubDispatch
- 8.2.8.19. SubDispatchFunction
- 8.2.8.20. SubDispatchPipe
- 8.2.8.21. add_args
- 8.2.8.22. inf
- 8.2.9. exc
- 8.2.10. gen
- 8.2.11. io
- 8.2.12. sol
- 8.2.13. web
- 8.3. ext
- 8.1. dispatcher
- 9. Changelog
- 9.1. v0.3.7 (2019-12-06)
- 9.2. v0.3.6 (2019-10-18)
- 9.3. v0.3.4 (2019-07-15)
- 9.4. v0.3.3 (2019-04-02)
- 9.5. v0.3.2 (2019-02-23)
- 9.6. v0.3.1 (2018-12-10)
- 9.7. v0.3.0 (2018-12-08)
- 9.8. v0.2.8 (2018-10-09)
- 9.9. v0.2.7 (2018-09-13)
- 9.10. v0.2.6 (2018-09-13)
- 9.11. v0.2.5 (2018-09-13)
- 9.12. v0.2.4 (2018-09-13)
- 9.13. v0.2.3 (2018-08-02)
- 9.14. v0.2.2 (2018-08-02)
- 9.15. v0.2.1 (2018-07-24)
- 9.16. v0.2.0 (2018-07-19)
- 9.17. v0.1.19 (2018-06-05)
- 9.18. v0.1.18 (2018-05-28)
- 9.19. v0.1.17 (2018-05-18)
- 9.20. v0.1.16 (2017-09-26)
- 9.21. v0.1.15 (2017-09-26)
- 9.22. v0.1.14 (2017-07-11)
- 9.23. v0.1.13 (2017-06-26)
- 9.24. v0.1.12 (2017-05-04)
- 9.25. v0.1.11 (2017-05-04)
- 9.26. v0.1.10 (2017-04-03)
- 9.27. v0.1.9 (2017-02-09)
- 9.28. v0.1.8 (2017-02-09)
- 9.29. v0.1.7 (2017-02-08)
- 9.30. v0.1.6 (2017-02-08)
- 9.31. v0.1.5 (2017-02-06)
- 9.32. v0.1.4 (2017-01-31)
- 9.33. v0.1.3 (2017-01-29)
- 9.34. v0.1.2 (2017-01-28)
- 9.35. v0.1.1 (2017-01-21)