# 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 websocket.
## 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": "",
"docs_url": null,
"requires_python": ">=3.7",
"maintainer_email": "",
"keywords": "",
"author": "ESRF",
"author_email": "",
"download_url": "https://files.pythonhosted.org/packages/07/c5/8bd65c9e21a9f769f15cde00da7d749a83a47e77eb9bddb1b886161c3b83/ewoksserver-0.5.0.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 websocket.\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": "0.5.0",
"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": "07c58bd65c9e21a9f769f15cde00da7d749a83a47e77eb9bddb1b886161c3b83",
"md5": "7f660bbfa8fdb527f4ba57588231e2d8",
"sha256": "06736ad5e74f8b40158f7744ce573584e770fef83c9c6b12d3eb86b22f8e24f2"
},
"downloads": -1,
"filename": "ewoksserver-0.5.0.tar.gz",
"has_sig": false,
"md5_digest": "7f660bbfa8fdb527f4ba57588231e2d8",
"packagetype": "sdist",
"python_version": "source",
"requires_python": ">=3.7",
"size": 29494,
"upload_time": "2023-10-04T14:52:21",
"upload_time_iso_8601": "2023-10-04T14:52:21.068946Z",
"url": "https://files.pythonhosted.org/packages/07/c5/8bd65c9e21a9f769f15cde00da7d749a83a47e77eb9bddb1b886161c3b83/ewoksserver-0.5.0.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2023-10-04 14:52:21",
"github": false,
"gitlab": false,
"bitbucket": false,
"codeberg": false,
"lcname": "ewoksserver"
}