File: index.rst

package info (click to toggle)
python-ewoks 0.6.0-4
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid, trixie
  • size: 552 kB
  • sloc: python: 1,311; makefile: 5
file content (100 lines) | stat: -rw-r--r-- 2,994 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
ewoks |version|
===============

.. image:: https://zenodo.org/badge/DOI/10.5281/zenodo.6075053.svg
   :target: https://doi.org/10.5281/zenodo.6075053

Many `workflow management systems <https://s.apache.org/existing-workflow-systems>`_ exist to deal with data processing
problems that can be expressed as a graph of tasks, also referred to as a *computational graph* or *workflow*. The main
purpose of a workflow management system is to provide a framework for implementing tasks, creating graphs of tasks and
executing these graphs.

The purpose of *ewoks* (Extensible Workflow System) is to provide an abstraction layer between graph representation and execution.
This allows using the same tasks and graphs in different workflow management systems.

*ewoks* has been developed by the `Software group <http://www.esrf.eu/Instrumentation/software>`_ of the `European Synchrotron <https://www.esrf.eu/>`_.

Getting started
---------------

Install *ewoks*

.. code:: bash

	pip install ewoks

Create a test workflow in JSON format (“acyclic1” is an test workflow that ships with ewoks)

.. code:: bash

	ewoks convert acyclic1 --test test.json

Execute the test workflow and print the output of all tasks

.. code:: bash

	ewoks execute test.json --outputs all

For a desktop GUI, install *ewoks* with the orange binding

.. code:: bash

	pip install ewoks[orange]

Open the test workflow in the GUI

.. code:: bash

	ewoks execute test.json --engine orange

For a web GUI, install *ewoksserver* with the frontend

.. code:: bash

	pip install ewoksserver[frontend]

Start the *ewoks* web server, open the link in a web browser and load the `test.json` file

.. code:: bash

	ewoks-server


.. toctree::
    :hidden:
    
    hello_world
    cli
    howtoguides
    api



Further Ewoks documentation
---------------------------

About creating and editing workflows
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

* `ewoks tutorial on workflow creation <https://ewoks.esrf.fr/en/latest/tutorials/create_workflow.html>`_: create a workflow from the Python interface
* `ewoksorange <https://ewoksorange.readthedocs.io/>`_ : create and execute workflows with a desktop GUI
* `ewoksweb <https://ewoksweb.readthedocs.io/>`_: web frontend to create, visualize and execute workflows
* `ewokscore <https://ewokscore.readthedocs.io/>`_ : create workflows and implement tasks

About executing workflows
^^^^^^^^^^^^^^^^^^^^^^^^^

* `ewoksppf <https://ewoksppf.readthedocs.io/>`_ : execute cyclic workflows
* `ewoksdask <https://ewoksdask.readthedocs.io/>`_ : parallelize workflow execution

About setting up infrastructure for workflow execution
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

* `ewoksjob <https://ewoksjob.readthedocs.io/>`_: distribute workflow execution
* `ewoksserver <https://ewoksserver.readthedocs.io/>`_: REST server to manage and execute workflows

About developping Ewoks
^^^^^^^^^^^^^^^^^^^^^^^

* `ewoksutils <https://ewoksutils.readthedocs.io/>`_ : developer utilities