# ewoksserver
ewoksserver is a REST server to manage and execute [ewoks](https://ewoks.readthedocs.io/) workflows.
It serves as a backend for [ewoksweb](https://ewoksweb.readthedocs.io/) and emits ewoks execution events over Socket.IO.
## Getting started
Install the [ewoksserver](https://ewoksserver.readthedocs.io/en/latest/) Python package
```
pip install ewoksserver
```
## Development
Install from source
```bash
pip install -e .[dev]
```
Run tests
```bash
pytest
```
Launch the backend
```bash
ewoks-server
```
or for an installation with the system python
```bash
python3 -m ewoksserver.server
```
## Configuration
The configuration keys are uppercase variables in a python script:
```python
# /tmp/config.py
RESOURCE_DIRECTORY = "/path/to/resource/directory/"
EWOKS = {"handlers": ...}
CELERY = {"broker_url":...}
```
Specify the configuration file through the CLI
```bash
ewoks-server --config /tmp/config.py
```
or using the environment variable EWOKSSERVER_SETTINGS
```bash
export EWOKSSERVER_SETTINGS=/tmp/config.py
ewoks-server
```
### Example
```python
import os
_SCRIPT_DIR = os.path.abspath(os.path.dirname(__file__))
RESOURCE_DIRECTORY = os.path.join(_SCRIPT_DIR, "resources")
EWOKS = {
"handlers": [
{
"class": "ewokscore.events.handlers.Sqlite3EwoksEventHandler",
"arguments": [
{
"name": "uri",
"value": "file:" + os.path.join(_SCRIPT_DIR, "ewoks_events.db"),
}
],
}
]
}
```
## Documentation
https://ewoksserver.readthedocs.io/
Raw data
{
"_id": null,
"home_page": "https://gitlab.esrf.fr/workflow/ewoks/ewoksserver",
"name": "ewoksserver",
"maintainer": null,
"docs_url": null,
"requires_python": ">=3.7",
"maintainer_email": null,
"keywords": null,
"author": "ESRF",
"author_email": null,
"download_url": "https://files.pythonhosted.org/packages/32/6b/9233c1e6d385d1bc8f97f62ae15cd5815fff82866a184784ccdf4e00c82c/ewoksserver-1.4.1.tar.gz",
"platform": null,
"description": "# ewoksserver\n\newoksserver is a REST server to manage and execute [ewoks](https://ewoks.readthedocs.io/) workflows.\n\nIt serves as a backend for [ewoksweb](https://ewoksweb.readthedocs.io/) and emits ewoks execution events over Socket.IO.\n\n## Getting started\n\nInstall the [ewoksserver](https://ewoksserver.readthedocs.io/en/latest/) Python package\n\n```\npip install ewoksserver\n```\n\n## Development\n\nInstall from source\n\n```bash\npip install -e .[dev]\n```\n\nRun tests\n\n```bash\npytest\n```\n\nLaunch the backend\n\n```bash\newoks-server\n```\n\nor for an installation with the system python\n\n```bash\npython3 -m ewoksserver.server\n```\n\n## Configuration\n\nThe configuration keys are uppercase variables in a python script:\n\n```python\n# /tmp/config.py\nRESOURCE_DIRECTORY = \"/path/to/resource/directory/\"\n\nEWOKS = {\"handlers\": ...}\n\nCELERY = {\"broker_url\":...}\n```\n\nSpecify the configuration file through the CLI\n\n```bash\newoks-server --config /tmp/config.py\n```\n\nor using the environment variable EWOKSSERVER_SETTINGS\n\n```bash\nexport EWOKSSERVER_SETTINGS=/tmp/config.py\newoks-server\n```\n\n### Example\n\n```python\nimport os\n\n_SCRIPT_DIR = os.path.abspath(os.path.dirname(__file__))\n\nRESOURCE_DIRECTORY = os.path.join(_SCRIPT_DIR, \"resources\")\n\nEWOKS = {\n \"handlers\": [\n {\n \"class\": \"ewokscore.events.handlers.Sqlite3EwoksEventHandler\",\n \"arguments\": [\n {\n \"name\": \"uri\",\n \"value\": \"file:\" + os.path.join(_SCRIPT_DIR, \"ewoks_events.db\"),\n }\n ],\n }\n ]\n}\n```\n\n## Documentation\n\nhttps://ewoksserver.readthedocs.io/\n",
"bugtrack_url": null,
"license": "MIT",
"summary": "Backend for ewoksweb",
"version": "1.4.1",
"project_urls": {
"Documentation": "https://workflow.gitlab-pages.esrf.fr/ewoks/ewoksserver",
"Homepage": "https://gitlab.esrf.fr/workflow/ewoks/ewoksserver",
"Source": "https://gitlab.esrf.fr/workflow/ewoks/ewoksserver",
"Tracker": "https://gitlab.esrf.fr/workflow/ewoks/ewoksserver/issues"
},
"split_keywords": [],
"urls": [
{
"comment_text": "",
"digests": {
"blake2b_256": "326b9233c1e6d385d1bc8f97f62ae15cd5815fff82866a184784ccdf4e00c82c",
"md5": "490cb6fae48bd20d6ba76d2a3b18c5ab",
"sha256": "b825f697934f75211d1826aec0c552e8a205527c8c63fb20518b3d404fd88990"
},
"downloads": -1,
"filename": "ewoksserver-1.4.1.tar.gz",
"has_sig": false,
"md5_digest": "490cb6fae48bd20d6ba76d2a3b18c5ab",
"packagetype": "sdist",
"python_version": "source",
"requires_python": ">=3.7",
"size": 39771,
"upload_time": "2024-12-21T16:13:02",
"upload_time_iso_8601": "2024-12-21T16:13:02.405627Z",
"url": "https://files.pythonhosted.org/packages/32/6b/9233c1e6d385d1bc8f97f62ae15cd5815fff82866a184784ccdf4e00c82c/ewoksserver-1.4.1.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2024-12-21 16:13:02",
"github": false,
"gitlab": false,
"bitbucket": false,
"codeberg": false,
"lcname": "ewoksserver"
}