ewoksjob


Nameewoksjob JSON
Version 0.6.1 PyPI version JSON
download
home_pagehttps://gitlab.esrf.fr/workflow/ewoks/ewoksjob/
SummaryAsynchronous and distributed scheduling of Ewoks workflows from python
upload_time2024-12-21 20:02:46
maintainerNone
docs_urlNone
authorESRF
requires_python>=3.6
licenseMIT
keywords
VCS
bugtrack_url
requirements No requirements were recorded.
Travis-CI No Travis.
coveralls test coverage No coveralls.
            # ewoksjob

Utilities for job scheduling of [ewoks](https://ewoks.readthedocs.io/) workflows.

Ewoksjob provides an ewoks interface for asynchronous and distributed scheduling of [ewoks](https://ewoks.readthedocs.io/) from python.

Note that *ewoksjob* distributes the execution of workflows while [ewoksdask](https://ewoks.readthedocs.io/)
distributes the execution of tasks in a workflow. So in the context of workflows, job scheduling exists on two levels.

The primary clients that need to schedule workflows are
* [Ewoksserver](https://gitlab.esrf.fr/workflow/ewoks/ewoksserver): web backend for ewoks.
* [Bliss](https://gitlab.esrf.fr/bliss/bliss): the ESRF beamline control system.
* [Daiquiri](https://gitlab.esrf.fr/ui/daiquiri): web backend for Bliss.

## Installation

Install on the client side

```bash
pip install ewoksjob
```

Install on the worker side

```bash
pip install ewoksjob[worker]
```

## Getting started

Start a worker pool that can execute ewoks graphs

```bash
ewoksjob worker
```

Start a workflow on the client side

```python
from ewoksjob.client import submit

workflow = {"graph": {"id": "mygraph"}}
future = submit(args=(workflow,))
result = future.get()
```

Note that both environments need to be able to import `celeryconfig` which
contains celery configuration (mainly the message broker and result backend URL's).

## Hello world example

Clone the git repository and start a worker pool

```bash
scripts/worker.sh --sql
```

Submit workflows

```bash
scripts/runjobs.sh --sql
```

## Tests

```bash
pytest --pyargs ewoksjob
```

To run the redis tests you need `redis-server` (e.g. `conda install redis-server`).

## Documentation

https://ewoksjob.readthedocs.io/

            

Raw data

            {
    "_id": null,
    "home_page": "https://gitlab.esrf.fr/workflow/ewoks/ewoksjob/",
    "name": "ewoksjob",
    "maintainer": null,
    "docs_url": null,
    "requires_python": ">=3.6",
    "maintainer_email": null,
    "keywords": null,
    "author": "ESRF",
    "author_email": "wout.de_nolf@esrf.fr",
    "download_url": "https://files.pythonhosted.org/packages/fb/f7/48ebd1c55f6edb4b37c4a332aedeb03f1c90ecd25ad72cdb703f1d8f92fc/ewoksjob-0.6.1.tar.gz",
    "platform": null,
    "description": "# ewoksjob\n\nUtilities for job scheduling of [ewoks](https://ewoks.readthedocs.io/) workflows.\n\nEwoksjob provides an ewoks interface for asynchronous and distributed scheduling of [ewoks](https://ewoks.readthedocs.io/) from python.\n\nNote that *ewoksjob* distributes the execution of workflows while [ewoksdask](https://ewoks.readthedocs.io/)\ndistributes the execution of tasks in a workflow. So in the context of workflows, job scheduling exists on two levels.\n\nThe primary clients that need to schedule workflows are\n* [Ewoksserver](https://gitlab.esrf.fr/workflow/ewoks/ewoksserver): web backend for ewoks.\n* [Bliss](https://gitlab.esrf.fr/bliss/bliss): the ESRF beamline control system.\n* [Daiquiri](https://gitlab.esrf.fr/ui/daiquiri): web backend for Bliss.\n\n## Installation\n\nInstall on the client side\n\n```bash\npip install ewoksjob\n```\n\nInstall on the worker side\n\n```bash\npip install ewoksjob[worker]\n```\n\n## Getting started\n\nStart a worker pool that can execute ewoks graphs\n\n```bash\newoksjob worker\n```\n\nStart a workflow on the client side\n\n```python\nfrom ewoksjob.client import submit\n\nworkflow = {\"graph\": {\"id\": \"mygraph\"}}\nfuture = submit(args=(workflow,))\nresult = future.get()\n```\n\nNote that both environments need to be able to import `celeryconfig` which\ncontains celery configuration (mainly the message broker and result backend URL's).\n\n## Hello world example\n\nClone the git repository and start a worker pool\n\n```bash\nscripts/worker.sh --sql\n```\n\nSubmit workflows\n\n```bash\nscripts/runjobs.sh --sql\n```\n\n## Tests\n\n```bash\npytest --pyargs ewoksjob\n```\n\nTo run the redis tests you need `redis-server` (e.g. `conda install redis-server`).\n\n## Documentation\n\nhttps://ewoksjob.readthedocs.io/\n",
    "bugtrack_url": null,
    "license": "MIT",
    "summary": "Asynchronous and distributed scheduling of Ewoks workflows from python",
    "version": "0.6.1",
    "project_urls": {
        "Documentation": "https://ewoksjob.readthedocs.io/",
        "Homepage": "https://gitlab.esrf.fr/workflow/ewoks/ewoksjob/",
        "Source": "https://gitlab.esrf.fr/workflow/ewoks/ewoksjob/",
        "Tracker": "https://gitlab.esrf.fr/workflow/ewoks/ewoksjob/issues/"
    },
    "split_keywords": [],
    "urls": [
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "fbf748ebd1c55f6edb4b37c4a332aedeb03f1c90ecd25ad72cdb703f1d8f92fc",
                "md5": "f6f16f4792360ec9cbf8d769d1cbeec3",
                "sha256": "0d5d405535fc3e001499294980177dc18ab401833194c8d6a9849722860d4f90"
            },
            "downloads": -1,
            "filename": "ewoksjob-0.6.1.tar.gz",
            "has_sig": false,
            "md5_digest": "f6f16f4792360ec9cbf8d769d1cbeec3",
            "packagetype": "sdist",
            "python_version": "source",
            "requires_python": ">=3.6",
            "size": 24835,
            "upload_time": "2024-12-21T20:02:46",
            "upload_time_iso_8601": "2024-12-21T20:02:46.844256Z",
            "url": "https://files.pythonhosted.org/packages/fb/f7/48ebd1c55f6edb4b37c4a332aedeb03f1c90ecd25ad72cdb703f1d8f92fc/ewoksjob-0.6.1.tar.gz",
            "yanked": false,
            "yanked_reason": null
        }
    ],
    "upload_time": "2024-12-21 20:02:46",
    "github": false,
    "gitlab": false,
    "bitbucket": false,
    "codeberg": false,
    "lcname": "ewoksjob"
}
        
Elapsed time: 4.42381s