exorcist
Daemonless campaign-scale simulation orchestration.
Why exorcist
There are many orchestration tools for tasks. Solutions like alchemiscale enable execution of large alchemical networks but requires running separate infrastructure. This project aims to remove this barrier for most users by providing an open and lightweight library for building out simple task orchestration while still allowing for scaling to larger orchestration in the future.
Architecture
exorcist aims to be as minimal as possible in implementation with the high-level goal of ingesting networkx DAGs and serializing them into a SQLAlchemy database.
This means that any SQLAlchemy adapter can hold tasks for execution, in this repo we provide testing for both Postgres and SQLite.
exorcist creates two database tables, tasks and dependencies.
The tasks table is the main thing you'll be interested in. It has columns for
the task ID (a string labeling the task), the task status (see
models.py),
last modified (which will be not-a-time until the first update), the number of
tries so far, the maximum number tries allowed, and a task_type string for
application-defined routing metadata. Exorcist stores task_type, but does not
interpret or validate its values.
The dependencies table gives details on the dependencies in the DAG. Each entry
in this table has a task ID for the "from" side of the edge and the "to" side
of the edge, as well as a boolean "blocking" column. The "from" task must be
completed before the "to" task can begin. When the "from" task has been
completed, the entry should be updated so the "blocking" is False.
Metadata
Release files for exorcist 0.1.1
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| exorcist-0.1.1.tar.gz | 31.3 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| exorcist-0.1.1-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 49.4 kB
Release files / exorcist-0.1.1.tar.gz
| Download URL | exorcist-0.1.1.tar.gz |
|---|---|
| Size | 31.3 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
a902666e578d5b31c1c75296b56682d191932d14b967324f097ee463ec62ee9b
|
|
BLAKE2b-256 checksum How to use checksums |
0c390563d8c7d8a4be37cdc13ceae60b2273b41aa9f0c6dd76f3fc03b0df07c7
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Oct 14, 2026.
Transparency logRelease files / exorcist-0.1.1-py3-none-any.whl
| Download URL | exorcist-0.1.1-py3-none-any.whl |
|---|---|
| Size | 18.1 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
16b226f5feb334ae9ca6e8269f9d088eecc404248b41822d3db84b4f1519e212
|
|
BLAKE2b-256 checksum How to use checksums |
c40607153f0d67c158e9d3c8b291efdbb0318720855cd2fe615b5a7b2f0596a7
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Oct 14, 2026.
Transparency log